- vm_moref_id = None
- vm_vcenter = None
- vm_vcenter_username = None
- vm_vcenter_port = None
-
- vm_details = self.get_vapp_details_rest(vapp_uuid, need_admin_access=True)
- if vm_details and "vm_vcenter_info" in vm_details:
- vm_moref_id = vm_details["vm_vcenter_info"]["vm_moref_id"]
- vim_server_href = vm_details["vm_vcenter_info"]["vim_server_href"]
-
- if vim_server_href:
- vca = self.connect_as_admin()
- if not vca:
- raise vimconn.vimconnConnectionException("self.connect() is failed")
- if vim_server_href is None:
- self.logger.error("No url to get vcenter details")
-
- if vca.vcloud_session and vca.vcloud_session.organization:
- response = Http.get(url=vim_server_href,
- headers=vca.vcloud_session.get_vcloud_headers(),
- verify=vca.verify,
- logger=vca.logger)
-
- if response.status_code != requests.codes.ok:
- self.logger.debug("GET REST API call {} failed. Return status code {}".format(vim_server_href,
- response.status_code))
- try:
- namespaces={"vmext":"http://www.vmware.com/vcloud/extension/v1.5",
- "vcloud":"http://www.vmware.com/vcloud/v1.5"
- }
- xmlroot_respond = XmlElementTree.fromstring(response.content)
- vm_vcenter_username = xmlroot_respond.find('vmext:Username', namespaces).text
- vcenter_url = xmlroot_respond.find('vmext:Url', namespaces).text
- vm_vcenter_port = vcenter_url.split(":")[2]
- vm_vcenter = vcenter_url.split(":")[1].split("//")[1]
+ vm_vcenter_info = {}
+
+ if self.vcenter_ip is not None:
+ vm_vcenter_info["vm_vcenter_ip"] = self.vcenter_ip
+ else:
+ raise vimconn.vimconnException(message="vCenter IP is not provided."\
+ " Please provide vCenter IP while attaching datacenter to tenant in --config")
+ if self.vcenter_port is not None:
+ vm_vcenter_info["vm_vcenter_port"] = self.vcenter_port
+ else:
+ raise vimconn.vimconnException(message="vCenter port is not provided."\
+ " Please provide vCenter port while attaching datacenter to tenant in --config")
+ if self.vcenter_user is not None:
+ vm_vcenter_info["vm_vcenter_user"] = self.vcenter_user
+ else:
+ raise vimconn.vimconnException(message="vCenter user is not provided."\
+ " Please provide vCenter user while attaching datacenter to tenant in --config")
+
+ if self.vcenter_password is not None:
+ vm_vcenter_info["vm_vcenter_password"] = self.vcenter_password
+ else:
+ raise vimconn.vimconnException(message="vCenter user password is not provided."\
+ " Please provide vCenter user password while attaching datacenter to tenant in --config")
+ try:
+ vm_details = self.get_vapp_details_rest(vapp_uuid, need_admin_access=True)
+ if vm_details and "vm_vcenter_info" in vm_details:
+ vm_vcenter_info["vm_moref_id"] = vm_details["vm_vcenter_info"].get("vm_moref_id", None)