Class: Bolt::ModuleInstaller::Resolver
- Inherits:
-
Object
- Object
- Bolt::ModuleInstaller::Resolver
- Defined in:
- lib/bolt/module_installer/resolver.rb
Instance Method Summary collapse
-
#resolve(specs, config = {}) ⇒ Object
Resolves module specs and returns a Puppetfile object.
Instance Method Details
#resolve(specs, config = {}) ⇒ Object
Resolves module specs and returns a Puppetfile object.
12 13 14 15 16 17 18 19 20 21 22 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 |
# File 'lib/bolt/module_installer/resolver.rb', line 12 def resolve(specs, config = {}) require 'puppetfile-resolver' # Build the document model from the specs. document = PuppetfileResolver::Puppetfile::Document.new('') unresolved = [] specs.specs.each do |spec| if spec.resolve document.add_module(spec.to_resolver_module) else unresolved << spec end end # Make sure the document model is valid. unless document.valid? = " Unable to resolve module specifications:\n\n \#{document.validation_errors.map(&:message).join(\"\\n\")}\n MESSAGE\n\n raise Bolt::Error.new(message, 'bolt/module-resolver-error')\n end\n\n # Create the resolver using the Puppetfile model. nil disables Puppet\n # version restrictions.\n resolver = PuppetfileResolver::Resolver.new(document, nil)\n\n # Configure and resolve the dependency graph, catching any errors\n # raised by puppetfile-resolver and re-raising them as Bolt errors.\n begin\n result = resolver.resolve(\n cache: nil,\n ui: nil,\n allow_missing_modules: false,\n spec_searcher_configuration: spec_searcher_config(config)\n )\n rescue StandardError => e\n raise Bolt::Error.new(e.message, 'bolt/module-resolver-error')\n end\n\n # Create the Puppetfile object.\n generate_puppetfile(specs, result.specifications.values, unresolved)\nend\n".chomp |