X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Fsonata%2Fdummygatekeeper.py;h=151e5b34fc853e9680092ab746f080a467cfb106;hb=fa91cf2172cfdddc74e76a49a47404f81c83e049;hp=85aa5e88d4c899718119786de446d424816c9488;hpb=a58772a51328578fea11f2d5f388b639abf9e810;p=osm%2Fvim-emu.git diff --git a/src/emuvim/api/sonata/dummygatekeeper.py b/src/emuvim/api/sonata/dummygatekeeper.py index 85aa5e8..151e5b3 100755 --- a/src/emuvim/api/sonata/dummygatekeeper.py +++ b/src/emuvim/api/sonata/dummygatekeeper.py @@ -149,7 +149,6 @@ class Service(object): self.local_docker_files = dict() self.remote_docker_image_urls = dict() self.instances = dict() - #self.vnf_name2docker_name = dict() # dict to find the vnf_name for any vnf id self.vnf_id2vnf_name = dict() @@ -249,7 +248,7 @@ class Service(object): for sap_name in self.saps_ext: ext_sap = self.saps[sap_name] target_dc = ext_sap.get("dc") - target_dc.removeExternalSAP(sap_name, ext_sap['net']) + target_dc.removeExternalSAP(sap_name) LOG.info("Stopping the SAP instance: %r in DC %r" % (sap_name, target_dc)) if not GK_STANDALONE_MODE: @@ -260,7 +259,7 @@ class Service(object): # last step: remove the instance from the list of all instances del self.instances[instance_uuid] - def _start_vnfd(self, vnfd, vnf_id): + def _start_vnfd(self, vnfd, vnf_id, **kwargs): """ Start a single VNFD of this service :param vnfd: vnfd descriptor dict @@ -286,7 +285,9 @@ class Service(object): # 3. get the resource limits res_req = u.get("resource_requirements") cpu_list = res_req.get("cpu").get("cores") - if not cpu_list or len(cpu_list)==0: + if cpu_list is None: + cpu_list = res_req.get("cpu").get("vcpus") + if cpu_list is None: cpu_list="1" cpu_bw = res_req.get("cpu").get("cpu_bw") if not cpu_bw: @@ -351,7 +352,8 @@ class Service(object): cpu_period=cpu_period, cpuset=cpu_list, mem_limit=mem_lim, - volumes=volumes) + volumes=volumes, + type=kwargs.get('type','docker')) # rename the docker0 interfaces (eth0) to the management port name defined in the VNFD if USE_DOCKER_MGMT: @@ -382,8 +384,6 @@ class Service(object): :return: """ dn = vnf_id - #if vnf_id in self.vnf_name2docker_name: - # dn = self.vnf_name2docker_name[name] for vnfi in self.instances[instance_uuid]["vnf_instances"]: if vnfi.name == dn: return vnfi @@ -547,7 +547,7 @@ class Service(object): if sap["type"] == "internal": vnfi = None if not GK_STANDALONE_MODE: - vnfi = self._start_vnfd(sap, sap['name']) + vnfi = self._start_vnfd(sap, sap['name'], type='sap_int') self.instances[instance_uuid]["vnf_instances"].append(vnfi) elif sap["type"] == "external": @@ -584,8 +584,6 @@ class Service(object): src_id = src_sap_id # set intf name to None so the chaining function will choose the first one src_if_name = None - #src_name = self.vnf_id2vnf_name[src_id] - #dst_name = self.vnf_id2vnf_name[dst_id] dst_vnfi = self._get_vnf_instance(instance_uuid, dst_id) if dst_vnfi is not None: # choose first ip address in sap subnet @@ -598,8 +596,6 @@ class Service(object): dst_id = dst_sap_id # set intf name to None so the chaining function will choose the first one dst_if_name = None - #src_name = self.vnf_id2vnf_name[src_id] - #dst_name = self.vnf_id2vnf_name[dst_id] src_vnfi = self._get_vnf_instance(instance_uuid, src_id) if src_vnfi is not None: sap_net = self.saps[dst_sap_id]['net'] @@ -614,8 +610,6 @@ class Service(object): src_id = src_sap_id if dst_sap_id in self.saps_int: dst_id = dst_sap_id - #src_name = self.vnf_id2vnf_name[src_id] - #dst_name = self.vnf_id2vnf_name[dst_id] # re-configure the VNFs IP assignment and ensure that a new subnet is used for each E-Link src_vnfi = self._get_vnf_instance(instance_uuid, src_id) dst_vnfi = self._get_vnf_instance(instance_uuid, dst_id) @@ -681,20 +675,18 @@ class Service(object): src_docker_name = vnf_sap_id vnf_id = vnf_sap_id - #vnf_name = self.vnf_id2vnf_name[vnf_id] LOG.debug( - "Setting up E-LAN interface. %s(%s:%s) -> %s" % ( + "Setting up E-LAN interface. (%s:%s) -> %s" % ( vnf_id, intf_name, ip_address)) - if vnf_id in self.vnfds: - # re-configure the VNFs IP assignment and ensure that a new subnet is used for each E-LAN - # E-LAN relies on the learning switch capability of Ryu which has to be turned on in the topology - # (DCNetwork(controller=RemoteController, enable_learning=True)), so no explicit chaining is necessary. - vnfi = self._get_vnf_instance(instance_uuid, vnf_id) - if vnfi is not None: - self._vnf_reconfigure_network(vnfi, intf_name, ip_address) - # add this vnf and interface to the E-LAN for tagging - elan_vnf_list.append({'name': src_docker_name, 'interface': intf_name}) + # re-configure the VNFs IP assignment and ensure that a new subnet is used for each E-LAN + # E-LAN relies on the learning switch capability of Ryu which has to be turned on in the topology + # (DCNetwork(controller=RemoteController, enable_learning=True)), so no explicit chaining is necessary. + vnfi = self._get_vnf_instance(instance_uuid, vnf_id) + if vnfi is not None: + self._vnf_reconfigure_network(vnfi, intf_name, ip_address) + # add this vnf and interface to the E-LAN for tagging + elan_vnf_list.append({'name': src_docker_name, 'interface': intf_name}) # install the VLAN tags for this E-LAN GK.net.setLAN(elan_vnf_list) @@ -886,13 +878,11 @@ class RoundRobinDcPlacementWithSAPs(object): # check if there is a SAP in the link if src_sap_id in saps: - #dst_vnf_name = vnf_id2vnf_name[dst_id] # get dc where connected vnf is mapped to dc = vnfds[dst_id]['dc'] saps[src_sap_id]['dc'] = dc if dst_sap_id in saps: - #src_vnf_name = vnf_id2vnf_name[src_id] # get dc where connected vnf is mapped to dc = vnfds[src_id]['dc'] saps[dst_sap_id]['dc'] = dc