Sha256: a82f4c3db3ab2c54bfcc92973308105aa1d19fed324cdb07d05126a2e302456a
Contents?: true
Size: 1.46 KB
Versions: 4
Compression:
Stored size: 1.46 KB
Contents
module Vcloud module Launcher class Launch def initialize @config_loader = Vcloud::Core::ConfigLoader.new end def run(config_file = nil, cli_options = {}) config = @config_loader.load_config(config_file, config_schema) config[:vapps].each do |vapp_config| Vcloud::Launcher.logger.info("\n") Vcloud::Launcher.logger.info("Provisioning vApp #{vapp_config[:name]}.") begin vapp = ::Vcloud::Launcher::VappOrchestrator.provision(vapp_config) #methadone sends option starting with 'no' as false. vapp.power_on unless cli_options["dont-power-on"] Vcloud::Launcher.logger.info("Done! Provisioned vApp #{vapp_config[:name]} successfully.") Vcloud::Launcher.logger.info("=" * 70) rescue RuntimeError => e Vcloud::Launcher.logger.error("Failure : Could not provision vApp: #{e.message}") Vcloud::Launcher.logger.info("=" * 70) break unless cli_options["continue-on-error"] end end end def config_schema { type: 'hash', allowed_empty: false, permit_unknown_parameters: true, internals: { vapps: { type: 'array', required: false, allowed_empty: true, each_element_is: ::Vcloud::Launcher::VappOrchestrator.provision_schema }, } } end end end end
Version data entries
4 entries across 4 versions & 1 rubygems