module HammerCLIKatello::HostKickstartRepositoryOptions

Public Class Methods

included(base) click to toggle source
# File lib/hammer_cli_katello/host_kickstart_repository_options.rb, line 3
def self.included(base)
  base.option "--kickstart-repository", "REPOSITORY_NAME",
         _("Kickstart repository name "),
         :attribute_name => :option_kickstart_repository
end

Public Instance Methods

fetch_repo_id(cv_id, env_id, repo_name) click to toggle source
# File lib/hammer_cli_katello/host_kickstart_repository_options.rb, line 34
def fetch_repo_id(cv_id, env_id, repo_name)
  repo_resource = HammerCLIForeman.foreman_resource(:repositories)
  index_options = {
    :content_view_id => cv_id,
    :environment_id => env_id,
    :name => repo_name
  }
  repos = repo_resource.call(:index, index_options)["results"]
  if repos.empty?
    raise _("No such repository with name %{name}, in lifecycle environment"\
              " %{environment_id} and content view %{content_view_id}" % index_options)
  end
  repos.first["id"]
end
request_params() click to toggle source
Calls superclass method
# File lib/hammer_cli_katello/host_kickstart_repository_options.rb, line 9
def request_params
  super.tap do |mod|
    resource_name = resource.singular_name
    if option_kickstart_repository && !option_kickstart_repository_id
      resource_hash = if resource_name == "hostgroup"
                        mod[resource_name]
                      else
                        mod[resource_name]["content_facet_attributes"]
                      end

      resource_hash ||= {}

      env_id = resource_hash["lifecycle_environment_id"]
      cv_id = resource_hash["content_view_id"]

      raise _("Please provide --lifecycle-environment-id") unless env_id

      raise _("Please provide --content-view-id") unless cv_id

      resource_hash["kickstart_repository_id"] = fetch_repo_id(cv_id, env_id,
                                                               option_kickstart_repository)
    end
  end
end