+ cpu_period, cpu_quota = self._calculate_cpu_cfs_values(
+ float(cpu_bw))
+
+ # check if we need to deploy the management ports
+ intfs = vnfd.get("connection_points", [])
+ mgmt_intf_names = []
+ if USE_DOCKER_MGMT:
+ mgmt_intfs = [vnf_id + ':' + intf['id']
+ for intf in intfs if intf.get('type') == 'management']
+ # check if any of these management interfaces are used in a
+ # management-type network in the nsd
+ for nsd_intf_name in mgmt_intfs:
+ vlinks = [l["connection_points_reference"]
+ for l in self.nsd.get("virtual_links", [])]
+ for link in vlinks:
+ if nsd_intf_name in link and self.check_mgmt_interface(
+ link):
+ # this is indeed a management interface and can be
+ # skipped
+ vnf_id, vnf_interface, vnf_sap_docker_name = parse_interface(
+ nsd_intf_name)
+ found_interfaces = [
+ intf for intf in intfs if intf.get('id') == vnf_interface]
+ intfs.remove(found_interfaces[0])
+ mgmt_intf_names.append(vnf_interface)
+
+ # 4. generate the volume paths for the docker container
+ volumes = list()
+ # a volume to extract log files
+ docker_log_path = "/tmp/results/%s/%s" % (self.uuid, vnf_id)
+ LOG.debug("LOG path for vnf %s is %s." % (vnf_id, docker_log_path))
+ if not os.path.exists(docker_log_path):
+ LOG.debug("Creating folder %s" % docker_log_path)
+ os.makedirs(docker_log_path)
+
+ volumes.append(docker_log_path + ":/mnt/share/")
+
+ # 5. do the dc.startCompute(name="foobar") call to run the container