lib/vagrant-vcenter/action/is_created.rb in vagrant-vcenter-0.2.1 vs lib/vagrant-vcenter/action/is_created.rb in vagrant-vcenter-0.3.0

- old
+ new

@@ -9,12 +9,37 @@ end def call(env) vm_id = env[:machine].id if vm_id + + # VM is in the vagrant registry, now we need to check if it's + # actually in vcenter + + # FIXME: this part needs some cleanup + config = env[:machine].provider_config + + # FIXME: Raise a correct exception + dc = config.vcenter_cnx.serviceInstance.find_datacenter( + config.datacenter_name) or abort 'datacenter not found' + + root_vm_folder = dc.vmFolder + + vm = root_vm_folder.findByUuid(env[:machine].id) + + unless vm + @logger.info('VM is in the vagrant registry but not in vcenter') + # Clear the ID + env[:machine].id = nil + env[:result] = false + end + + # VM is in the registry AND in vcenter @logger.info("VM has been created and ID is: [#{vm_id}]") env[:result] = true + else + # VM is not in the registry @logger.warn('VM has not been created') env[:result] = false end @app.call env