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