module DTK::Client::PuppetForgeMixin

Constants

NAME_REGEX

Public Instance Methods

puppet_forge_install_aux(context_params, pf_module_name, module_name, namespace, version, module_type) click to toggle source
# File lib/commands/common/thor/puppet_forge.rb, line 23
  def puppet_forge_install_aux(context_params, pf_module_name, module_name, namespace, version, module_type)
    post_body_hash = {
      :puppetf_module_name => pf_module_name,
      :module_name?        => module_name,
      :module_version?     => version,
      :module_namespace?   => namespace
    }

    raise DtkError, "Puppet forge module name should be in format NAMESPACE-MODULENAME" unless pf_module_name.match(NAME_REGEX)

    response = poller_response do
      post rest_url("component_module/install_puppet_forge_modules"), PostBody.new(post_body_hash)
    end

    return response unless response.ok?


    installed_modules = response.data(:installed_modules)

    print_modules(response.data(:found_modules), 'using')
    print_modules(installed_modules, 'installed')

    main_module = response.data(:main_module)

    unless installed_modules.empty?
      # clone_deps = Console.confirmation_prompt("\nDo you want to clone newly installed dependencies?")
      # if clone_deps
      installed_modules.each do |im|
        clone_aux(im['type'], im['id'], im['version'], true, true, {:backup_if_exist => true})
      end
      # end
    end

    clone_aux(main_module['type'], main_module['id'], main_module['version'], true, true, {:print_imported => true, :backup_if_exist => true})
    nil
end

Private Instance Methods

print_modules(modules, action_name) click to toggle source