lib/vagrant-vcloud/action/inventory_check.rb in vagrant-vcloud-0.3.3 vs lib/vagrant-vcloud/action/inventory_check.rb in vagrant-vcloud-0.4.0

- old
+ new

@@ -18,31 +18,38 @@ def vcloud_upload_box(env) cfg = env[:machine].provider_config cnx = cfg.vcloud_cnx.driver box_dir = env[:machine].box.directory.to_s - box_file = env[:machine].box.name.to_s + if env[:machine].box.name.to_s.include? '/' + box_file = env[:machine].box.name.rpartition('/').last.to_s + box_name = env[:machine].box.name.to_s + else + box_file = env[:machine].box.name.to_s + box_name = box_file + end + box_ovf = "#{box_dir}/#{box_file}.ovf" # Still relying on ruby-progressbar because report_progress # basically sucks. @logger.debug("OVF File: #{box_ovf}") upload_ovf = cnx.upload_ovf( cfg.vdc_id, - env[:machine].box.name.to_s, + box_name, 'Vagrant Box', box_ovf, cfg.catalog_id, { :progressbar_enable => true, :chunksize => (cfg.upload_chunksize || 1_048_576) } ) env[:ui].info( - "Adding [#{env[:machine].box.name.to_s}] to " + + "Adding [#{box_name}] to " + "Catalog [#{cfg.catalog_name}]" ) add_ovf_to_catalog = cnx.wait_task_completion(upload_ovf) unless add_ovf_to_catalog[:errormsg].nil? @@ -51,11 +58,11 @@ end # Retrieve catalog_item ID cfg.catalog_item = cnx.get_catalog_item_by_name( cfg.catalog_id, - env[:machine].box.name.to_s + box_name ) end def vcloud_create_catalog(env) cfg = env[:machine].provider_config @@ -80,10 +87,18 @@ # Will check each mandatory config value against the vCloud Director # Instance and will setup the global environment config values cfg = env[:machine].provider_config cnx = cfg.vcloud_cnx.driver + if env[:machine].box.name.to_s.include? '/' + box_file = env[:machine].box.name.rpartition('/').last.to_s + box_name = env[:machine].box.name.to_s + else + box_file = env[:machine].box.name.to_s + box_name = box_file + end + cfg.org = cnx.get_organization_by_name(cfg.org_name) cfg.org_id = cnx.get_organization_id_by_name(cfg.org_name) cfg.vdc = cnx.get_vdc_by_name(cfg.org, cfg.vdc_name) cfg.vdc_id = cnx.get_vdc_id_by_name(cfg.org, cfg.vdc_name) @@ -111,15 +126,15 @@ end end @logger.debug( "Getting catalog item with cfg.catalog_id: [#{cfg.catalog_id}] " + - "and machine name [#{env[:machine].box.name.to_s}]" + "and machine name [#{box_name}]" ) cfg.catalog_item = cnx.get_catalog_item_by_name( cfg.catalog_id, - env[:machine].box.name.to_s + box_name ) @logger.debug("Catalog item is now #{cfg.catalog_item}") # This only works with Org Admin role or higher @@ -146,22 +161,22 @@ @logger.info("Catalog [#{cfg.catalog_name}] exists") end if !cfg.catalog_item env[:ui].warn( - "Catalog item [#{env[:machine].box.name.to_s}] " + + "Catalog item [#{box_name}] " + "in Catalog [#{cfg.catalog_name}] does not exist!" ) user_input = env[:ui].ask( - "Would you like to upload the [#{env[:machine].box.name.to_s}] " + + "Would you like to upload the [#{box_name}] " + "box to [#{cfg.catalog_name}] Catalog?\n" + 'Choice (yes/no): ' ) if user_input.downcase == 'yes' || user_input.downcase == 'y' - env[:ui].info("Uploading [#{env[:machine].box.name.to_s}]...") + env[:ui].info("Uploading [#{box_name}]...") vcloud_upload_box(env) else env[:ui].error('Catalog item not available, exiting...') # FIXME: wrong error message @@ -169,10 +184,10 @@ :message => 'Catalog item not available, exiting...' end else @logger.info( - "Using catalog item [#{env[:machine].box.name.to_s}] " + + "Using catalog item [#{box_name}] " + "in Catalog [#{cfg.catalog_name}]..." ) end end end