- def create(self,nsd_name,nsr_name,account,vim_network_prefix=None,ssh_keys=None,description='default description',admin_status='ENABLED'):
- postdata={}
- postdata['nsr'] = list()
- nsr={}
- nsr['id']=str(uuid.uuid1())
-
- nsd=self._client.nsd.get(nsd_name)
-
- 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']
+ def scale(self, ns_name, ns_scale_group, instance_index):
+ postdata = {}
+ postdata["instance"] = list()
+ instance = {}
+ instance["id"] = instance_index
+ postdata["instance"].append(instance)
+
+ ns = self.get(ns_name)
+ resp = self._http.post_cmd(
+ "v1/api/config/{}ns-instance-config/nsr/{}/scaling-group/{}/instance".format(
+ self._client.so_rbac_project_path, ns["id"], ns_scale_group
+ ),
+ postdata,
+ )
+ if "success" not in resp:
+ raise ClientException(
+ "failed to scale ns: {} result: {}".format(ns_name, resp)
+ )
+
+ def create(
+ self,
+ nsd_name,
+ nsr_name,
+ account,
+ config=None,
+ ssh_keys=None,
+ description="default description",
+ admin_status="ENABLED",
+ ):
+ postdata = {}
+ postdata["nsr"] = list()
+ nsr = {}
+ nsr["id"] = str(uuid.uuid1())
+
+ nsd = self._client.nsd.get(nsd_name)
+
+ 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"]