From e26803197423b4592899d8bb859f7a781468c015 Mon Sep 17 00:00:00 2001 From: "Carlos J. Herrera" Date: Mon, 29 Mar 2021 17:15:28 -0400 Subject: [PATCH] F #~: fix problems with marketplaceapp in vCenter (#1041) Signed-off-by: Carlos Herrera --- src/cli/onemarketapp | 6 +--- src/oca/ruby/opennebula/marketplaceapp_ext.rb | 29 +++++++++++++++++-- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/cli/onemarketapp b/src/cli/onemarketapp index bedf7697fd..d948c2feb8 100755 --- a/src/cli/onemarketapp +++ b/src/cli/onemarketapp @@ -45,9 +45,6 @@ require 'one_helper/onemarketapp_helper' require 'one_helper/onemarket_helper' require 'one_helper/onedatastore_helper' -require 'vcenter_driver' -CONFIG = VCenterConf.new - CommandParser::CmdParser.new(ARGV) do usage '`onemarket` [] []' version OpenNebulaHelper::ONE_VERSION @@ -287,8 +284,7 @@ CommandParser::CmdParser.new(ARGV) do :vmtemplate_name => options[:vmname], :url_args => tag, :notemplate => options[:no] == 'no', - :template => options[:template], - :default_template => CONFIG[:default_template] + :template => options[:template] ) if OpenNebula.is_error?(rc) diff --git a/src/oca/ruby/opennebula/marketplaceapp_ext.rb b/src/oca/ruby/opennebula/marketplaceapp_ext.rb index 6da36d8e74..6db476e8ec 100644 --- a/src/oca/ruby/opennebula/marketplaceapp_ext.rb +++ b/src/oca/ruby/opennebula/marketplaceapp_ext.rb @@ -155,6 +155,31 @@ module OpenNebula::MarketPlaceAppExt is_vcenter = !OpenNebula.is_error?(rc) && (ds['TEMPLATE/DRIVER'] == 'vcenter') + if is_vcenter && options[:template].nil? + vcenterrc_path = + "#{VAR_LOCATION}/remotes/etc/vmm/vcenter/vcenterrc" + + if File.file?(vcenterrc_path) + config_vcenter = YAML.load_file(vcenterrc_path) + + if config_vcenter.key?(:default_template) + options[:template] = + config_vcenter[:default_template] + else + raise "Couldn't find default_template " \ + 'configuration in vcenterrc conf ' \ + 'file. Please use the --template ' \ + 'file to define a VM Template ID if ' \ + 'needed or add default_template to' \ + ' vcenterrc conf file' + end + else + raise "Couldn't find vcenterrc conf file. " \ + ' Please use the --template file to define' \ + ' a VM Template ID if needed.' + end + end + #--------------------------------------------------------------- # Allocate the image in OpenNebula #--------------------------------------------------------------- @@ -188,8 +213,8 @@ module OpenNebula::MarketPlaceAppExt if !options[:template].nil? template_id = options[:template] - if template_id == -1 - template_id = options[:default_template] + if template_id < 0 + raise 'Invalid option, template_id must be a valid ID' end template = Template.new_with_id(template_id, @client)