- self.vnf = vnf.Vnf(http_client,**kwargs)
- self.vnfd = vnfd.Vnfd(http_client,**kwargs)
- self.ns = ns.Ns(http=http_client,client=self,**kwargs)
- self.nsd = nsd.Nsd(http_client,**kwargs)
- self.vim = vim.Vim(http=http_client,ro_http=ro_http_client,client=self,**kwargs)
- self.package = package.Package(http=http_client,upload_http=upload_client,client=self,**kwargs)
- self.vca = vca.Vca(http_client,**kwargs)
- self.utils = utils.Utils(http_client,**kwargs)
+ if ro_host is None:
+ ro_host = host
+ ro_http_client = http.Http("http://{}:{}/".format(ro_host, ro_port))
+ ro_http_client.set_http_header(
+ ["Accept: application/vnd.yand.data+json", "Content-Type: application/json"]
+ )
+
+ upload_client_url = "https://{}:{}/composer/upload?api_server={}{}".format(
+ self._host,
+ upload_port,
+ "https://localhost&upload_server=https://",
+ self._host,
+ )
+
+ if self._so_version == "v3":
+ upload_client_url = (
+ "https://{}:{}/composer/upload?api_server={}{}&project_name={}".format(
+ self._host,
+ upload_port,
+ "https://localhost&upload_server=https://",
+ self._host,
+ self._so_project,
+ )
+ )
+
+ upload_client = http.Http(upload_client_url)
+
+ self.vnf = vnf.Vnf(http_client, client=self, **kwargs)
+ self.vnfd = vnfd.Vnfd(http_client, client=self, **kwargs)
+ self.ns = ns.Ns(http=http_client, client=self, **kwargs)
+ self.nsd = nsd.Nsd(http_client, client=self, **kwargs)
+ self.vim = vim.Vim(
+ http=http_client, ro_http=ro_http_client, client=self, **kwargs
+ )
+ self.package = package.Package(
+ http=http_client, upload_http=upload_client, client=self, **kwargs
+ )
+ self.utils = utils.Utils(http_client, **kwargs)
+ self.package_tool = package_tool.PackageTool(client=self)
+
+ @property
+ def so_rbac_project_path(self):
+ if self._so_version == "v3":
+ return "project/{}/".format(self._so_project)
+ else:
+ return ""
+
+ def get_so_version(self, http_client):
+ try:
+ resp = http_client.get_cmd("api/operational/version")
+ if not resp or "rw-base:version" not in resp:
+ return "v2"
+
+ if resp["rw-base:version"]["version"].split(".")[0] == "5":
+ # SO Version 5.x.x.x.x translates to OSM V3
+ return "v3"
+ return "v2"
+ except Exception:
+ return "v2"