ManageIQ/httpd_configmap_generator

View on GitHub
lib/httpd_configmap_generator/oidc.rb

Summary

Maintainability
A
0 mins
Test Coverage
F
42%
module HttpdConfigmapGenerator
  class Oidc < Base

    AUTH = {
      :type    => "openid-connect",
      :subtype => "oidc"
    }.freeze

    def required_options
      super.merge(
        :oidc_url           => { :description => "OpenID-Connect Provider URL", 
                                 :short       => "-u" },
        :oidc_client_id     => { :description => "OpenID-Connect Provider Client ID",
                                 :short       => "-i" },
        :oidc_client_secret => { :description => "OpenID-Connect Provider Client Secret",
                                 :short       => "-s" },
      )
    end

    def configure(opts)
      auth_oidc_data = {}
      auth_oidc_data["auth-oidc-provider-metadata-url"] = opts[:oidc_url]
      auth_oidc_data["auth-oidc-client-id"] = opts[:oidc_client_id]
      auth_oidc_data["auth-oidc-client-secret"] = opts[:oidc_client_secret]

      config_map = ConfigMap.new(opts)
      config_map.generate(AUTH[:type], nil, nil, auth_oidc_data )
      config_map.save(opts[:output])
    rescue => err
      log_command_error(err)
      raise err
    end

    def validate_options(opts)
      super(opts)
    end

    def configured?
      false
    end

    def unconfigure
      return unless configured?
    end

  end
end