Class: KingslyCertbot::Runner
- Inherits:
-
Object
- Object
- KingslyCertbot::Runner
- Defined in:
- lib/kingsly_certbot/runner.rb
Instance Attribute Summary collapse
-
#configuration ⇒ Object
readonly
Returns the value of attribute configuration.
Instance Method Summary collapse
- #configure ⇒ Object
- #execute ⇒ Object
-
#initialize(args) ⇒ Runner
constructor
A new instance of Runner.
Constructor Details
#initialize(args) ⇒ Runner
Returns a new instance of Runner.
7 8 9 10 11 12 13 14 |
# File 'lib/kingsly_certbot/runner.rb', line 7 def initialize(args) raise 'Argument passed is not of type Array' if args.class != Array raise '--config argument missing' if args[0].nil? || args[0].strip == '' raise "Unknown argument '#{args[0]}'" if args[0] != '--config' raise "Config file does not exist at '#{args[1]}'" unless File.exist?(args[1]) @config_path = args[1] end |
Instance Attribute Details
#configuration ⇒ Object (readonly)
Returns the value of attribute configuration.
5 6 7 |
# File 'lib/kingsly_certbot/runner.rb', line 5 def configuration @configuration end |
Instance Method Details
#configure ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/kingsly_certbot/runner.rb', line 16 def configure begin local_config = YAML.load_file(@config_path) $logger.info("Loaded config file from #{@config_path}") rescue Psych::SyntaxError => e raise StandardError, "Invalid YAML config file '#{@config_path}', original message: '#{e.message}'" end @configuration = KingslyCertbot::Configuration.new(local_config) $logger.info("Loaded configuration: #{@configuration}") Raven.configure do |config| config.dsn = @configuration.sentry_dsn config.encoding = 'json' config.environments = %w[production integration] config.current_environment = @configuration.environment config.logger = $logger config.release = KingslyCertbot::VERSION end self end |
#execute ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/kingsly_certbot/runner.rb', line 37 def execute @configuration.validate! $logger.info("Querying Kingsly server for certificate to domain #{@configuration.sub_domain}.#{@configuration.top_level_domain}") cert_bundle = KingslyClient.get_cert_bundle( kingsly_server_host: @configuration.kingsly_server_host, kingsly_server_user: @configuration.kingsly_server_user, kingsly_server_password: @configuration.kingsly_server_password, top_level_domain: @configuration.top_level_domain, sub_domain: @configuration.sub_domain, kingsly_http_read_timeout: @configuration.kingsly_http_read_timeout, kingsly_http_open_timeout: @configuration.kingsly_http_open_timeout ) $logger.info("Updating assets for server type #{@configuration.server_type}") adapter = case @configuration.server_type when 'ipsec' IpSecCertAdapter.new(cert_bundle, @configuration.ipsec_root) else raise "Unsupported server type #{@configuration.server_type}" end adapter.update_assets adapter.restart_service $logger.info("Updated assets for server type #{@configuration.server_type}") rescue StandardError => e $logger.error('FAILED - Kingsly Certbot execution failed for following reason:') $logger.error(e.) $logger.error e.backtrace.join("\n") Raven.capture_exception(e, 'Failed in KingslyCertbot::Runner.execute operation') end |