class GoogleSslCert::CLI::Prune
Public Instance Methods
base_options()
click to toggle source
# File lib/google_ssl_cert/cli/prune.rb, line 75 def base_options options = { project: ENV['GOOGLE_PROJECT'] } options[:region] = ENV['GOOGLE_REGION'] unless global? options end
cert_base_name()
click to toggle source
# File lib/google_ssl_cert/cli/prune.rb, line 63 def cert_base_name @cert_base_name = GoogleSslCert::Name.new(@options).base_name end
delete(cert)
click to toggle source
# File lib/google_ssl_cert/cli/prune.rb, line 41 def delete(cert) options = base_options.merge(ssl_certificate: cert.name) ssl_service.delete(options) logger.info "Deleted #{type} cert: #{cert.name}" end
match?(name)
click to toggle source
# File lib/google_ssl_cert/cli/prune.rb, line 59 def match?(name) !!(name =~ Regexp.new("^#{cert_base_name}-\\d{14}$")) end
perform_delete(certs)
click to toggle source
# File lib/google_ssl_cert/cli/prune.rb, line 35 def perform_delete(certs) certs.each do |cert| delete(cert) end end
preview_delete(certs)
click to toggle source
# File lib/google_ssl_cert/cli/prune.rb, line 28 def preview_delete(certs) logger.info "Will delete the following #{type} certs:" certs.each do |cert| logger.info " #{cert.name}" end end
run()
click to toggle source
# File lib/google_ssl_cert/cli/prune.rb, line 5 def run keep = @options[:keep] || 1 right = -1 - keep certs = ssl_certs[0..right] || [] # delete all except the last cert if certs.empty? unless ssl_certs.empty? logger.info "Found certs:" ssl_certs.each do |cert| logger.info " #{cert.name}" end end cert_word = keep == 1 ? "cert" : "certs" logger.info "Keeping #{keep} #{cert_word}." logger.info "No certs to prune with base cert name: #{cert_base_name}" return end preview_delete(certs) unless @options[:yes] sure? perform_delete(certs) end
ssl_certs()
click to toggle source
sadly the filter option doesnt support globs or regexp so will have to filter with ruby
# File lib/google_ssl_cert/cli/prune.rb, line 52 def ssl_certs resp = ssl_service.list(base_options) resp.select do |ssl| match?(ssl.name) end.sort_by(&:name) end
ssl_service()
click to toggle source
# File lib/google_ssl_cert/cli/prune.rb, line 67 def ssl_service if global? ssl_certificates else region_ssl_certificates end end
type()
click to toggle source
# File lib/google_ssl_cert/cli/prune.rb, line 47 def type global? ? "global" : "region" end
Private Instance Methods
sure?(message="Are you sure?")
click to toggle source
# File lib/google_ssl_cert/cli/prune.rb, line 82 def sure?(message="Are you sure?") if @options[:yes] sure = 'y' else print "#{message} (y/N) " sure = $stdin.gets end unless sure =~ /^y/ puts "Whew! Exiting." exit 0 end end