X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fcertregen%2Flib%2Fpuppet_x%2Fcertregen%2Fcertificate.rb;fp=3rdparty%2Fmodules%2Fcertregen%2Flib%2Fpuppet_x%2Fcertregen%2Fcertificate.rb;h=56ad97041db15a70c51d9d597fae89517d7f3d09;hb=8c20cc97eaf30a0aaf9abfba2f33d5b5f9f06ae2;hp=0000000000000000000000000000000000000000;hpb=1f80b78f88d98160faf661374fc8e760252d131b;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/certregen/lib/puppet_x/certregen/certificate.rb b/3rdparty/modules/certregen/lib/puppet_x/certregen/certificate.rb new file mode 100644 index 000000000..56ad97041 --- /dev/null +++ b/3rdparty/modules/certregen/lib/puppet_x/certregen/certificate.rb @@ -0,0 +1,42 @@ +require 'puppet_x/certregen/util' + +module PuppetX + module Certregen + module Certificate + module_function + + # @param cert [Puppet::SSL::Certificate] + # @return [Hash] + def expiry(cert) + if cert.content.not_after < Time.now + status = :expired + elsif expiring?(cert) + status = :expiring + else + status = :ok + end + + data = { + :status => status, + :expiration_date => cert.content.not_after + } + + if status != :expired + data[:expires_in] = PuppetX::Certregen::Util.duration(cert.content.not_after - Time.now) + end + + data + end + + # Is this certificate expiring or expired? + # + # @param cert [Puppet::SSL::Certificate] + # @param percent [Integer] + def expiring?(cert, percent = 10) + remaining = cert.content.not_after - Time.now + lifetime = cert.content.not_after - (cert.content.not_before + 86400) + remaining / lifetime < (percent / 100.0) + end + end + end +end