Module: DTK::Client::PuppetForgeMixin

Included in:
ModuleMixin
Defined in:
lib/commands/common/thor/puppet_forge.rb

Constant Summary collapse

NAME_REGEX =
/\w*\-\w/

Instance Method Summary collapse

Instance Method Details

#puppet_forge_install_aux(context_params, pf_module_name, module_name, namespace, version, module_type) ⇒ Object

Raises:



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# 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