Sha256: 436dd9bc11f2846c17c4a724c5111ef3cff57de6d136c0683494e9620a55db70

Contents?: true

Size: 1.83 KB

Versions: 27

Compression:

Stored size: 1.83 KB

Contents

require 'hammer_cli_foreman/smart_class_parameter'
require 'hammer_cli_foreman/smart_variable'

module HammerCLIForeman

  class PuppetClass < HammerCLIForeman::Command

    resource :puppetclasses

    class ListCommand < HammerCLIForeman::ListCommand

      output do
        field :id, _("Id")
        field :name, _("Name")
      end

      def send_request
        self.class.unhash_classes(super)
      end

      def self.unhash_classes(classes)
        clss = classes.first.inject([]) { |list, (pp_module, pp_module_classes)| list + pp_module_classes }

        HammerCLI::Output::RecordCollection.new(clss, :meta => classes.meta)

      end

      build_options
    end


    class InfoCommand < HammerCLIForeman::InfoCommand
      output ListCommand.output_definition do
        collection :smart_variables, _("Smart variables") do
          field :key, _("Parameter")
          field :default_value, _("Default value")
        end
        collection :smart_class_parameters, _("Smart class parameters"), :numbered => false do
          custom_field Fields::Reference, :name_key => :parameter
        end
        HammerCLIForeman::References.hostgroups(self)
        HammerCLIForeman::References.environments(self)
        HammerCLIForeman::References.parameters(self)
      end

      build_options
    end


    class SCParamsCommand < HammerCLIForeman::SmartClassParametersBriefList
      build_options_for :puppetclasses

      def validate_options
        super
        validator.any(:option_puppetclass_name, :option_puppetclass_id).required
      end
    end

    class SmartVariablesCommand < HammerCLIForeman::SmartVariablesBriefList
      build_options_for :puppetclasses

      def validate_options
        super
        validator.any(:option_puppetclass_name, :option_puppetclass_id).required
      end
    end


    autoload_subcommands
  end

end



Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
hammer_cli_foreman-0.17.1 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.17.0 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.15.2 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.16.0 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.15.1 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.15.0 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.14.0 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.13.2 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.13.1 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.13.0 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.12.1 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.12.0 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.11.0 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.10.2 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.10.1 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.10.0 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.9.0 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.8.0 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.7.0 lib/hammer_cli_foreman/puppet_class.rb
hammer_cli_foreman-0.6.2 lib/hammer_cli_foreman/puppet_class.rb