class DTK::Client::Operation::Module::Install::DependentModules::RemoteDependencies

Constants

BaseRoute

Public Class Methods

install_or_pull?(component_module_ref, prompt_helper, print_helper) click to toggle source
# File lib/client/operation/module/install/dependent_modules/remote_dependencies.rb, line 31
def self.install_or_pull?(component_module_ref, prompt_helper, print_helper)
  remote_response = nil
  begin
    hash = {
      :module_name => component_module_ref.module_name,
      :namespace   => component_module_ref.namespace,
      :rsa_pub_key => SSHUtil.rsa_pub_key_content,
      :version?    => component_module_ref.version
    }
    remote_response = rest_get "#{BaseRoute}/module_dependencies", QueryStringHash.new(hash)
  rescue Error::ServerNotOkResponse => e
    # temp fix for issue when dependent module is imported from puppet forge
    if errors = e.response && e.response['errors']
      remote_response = nil if errors.first.include?('not found')
    else
      raise e
    end
  end

  if remote_required = remote_response.data(:required_modules)
    remote_required.each do |req_module|
      unless Install::DependentModules.resolved.include?("#{req_module['namespace']}:#{req_module['name']}")
        Install::DependentModules.add_to_resolved("#{req_module['namespace']}:#{req_module['name']}")
        req_ref = Install::DependentModules.create_module_ref(req_module)
        new_print_helper = Install::PrintHelper.new(:module_ref => req_ref, :source => :remote)
        if prompt_helper.pull_module_update?(new_print_helper)
          ComponentModule.install_or_pull_new?(req_ref, prompt_helper, new_print_helper) unless req_ref.is_base_module?
        end
      end
    end
  end
end
new(module_ref, prompt_helper, print_helper) click to toggle source
# File lib/client/operation/module/install/dependent_modules/remote_dependencies.rb, line 24
def initialize(module_ref, prompt_helper, print_helper)
  @module_ref    = module_ref
  @prompt_helper = prompt_helper
  @print_helper  = print_helper.set_module_ref!(module_ref)
end