- datacenter = self._client.vim.get_datacenter(account)
- if datacenter is None:
- raise NotFound("cannot find datacenter account {}".format(account))
-
- nsr['nsd'] = nsd
- nsr['name'] = nsr_name
- nsr['short-name'] = nsr_name
- nsr['description'] = description
- nsr['admin-status'] = admin_status
- nsr['om-datacenter'] = datacenter['uuid']
+ if self._client._so_version == "v3":
+ datacenter, resource_orchestrator = self._client.vim.get_datacenter(account)
+ if datacenter is None or resource_orchestrator is None:
+ raise NotFound("cannot find datacenter account {}".format(account))
+ if "uuid" not in datacenter:
+ raise NotFound(
+ "The RO Datacenter - {} is invalid. Please select another".format(
+ account
+ )
+ )
+ else:
+ # Backwards Compatiility
+ datacenter = self._client.vim.get_datacenter(account)
+ if datacenter is None:
+ raise NotFound("cannot find datacenter account {}".format(account))
+
+ nsr["nsd"] = nsd
+ nsr["name"] = nsr_name
+ nsr["short-name"] = nsr_name
+ nsr["description"] = description
+ nsr["admin-status"] = admin_status
+
+ if self._client._so_version == "v3":
+ # New format for V3
+ nsr["resource-orchestrator"] = resource_orchestrator
+ nsr["datacenter"] = datacenter["name"]
+ else:
+ # Backwards Compatiility
+ nsr["om-datacenter"] = datacenter["uuid"]