X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=osm_ro%2Fvim_thread.py;h=8d44f4728905c1b5fd2c413d9d4ae45d2de759b1;hb=0ea9b0f0cbd4c5567289c4c80c73de94901d7047;hp=f7bc40ba0943bb7f086e12eda16c6aaaea36fd91;hpb=db1b22de8331161d80ef3a65ffd41ba8ea206cb9;p=osm%2FRO.git diff --git a/osm_ro/vim_thread.py b/osm_ro/vim_thread.py index f7bc40ba..8d44f472 100644 --- a/osm_ro/vim_thread.py +++ b/osm_ro/vim_thread.py @@ -160,6 +160,10 @@ class vim_thread(threading.Thread): vim_config['datacenter_tenant_id'] = vim.get('datacenter_tenant_id') vim_config['datacenter_id'] = vim.get('datacenter_id') + # get port_mapping + vim_config["wim_external_ports"] = self.ovim.get_of_port_mappings( + db_filter={"region": vim_config['datacenter_id'], "pci": None}) + self.vim = vim_module[vim["type"]].vimconnector( uuid=vim['datacenter_id'], name=vim['datacenter_name'], tenant_id=vim['vim_tenant_id'], tenant_name=vim['vim_tenant_name'], @@ -995,10 +999,13 @@ class vim_thread(threading.Thread): # CREATE params = task["params"] action_text = "creating VIM" - vim_net_id = self.vim.new_network(*params) + vim_net_id = self.vim.new_network(*params[0:2]) net_name = params[0] net_type = params[1] + wim_account_name = None + if len(params) >= 4: + wim_account_name = params[3] sdn_controller = self.vim.config.get('sdn-controller') if sdn_controller and (net_type == "data" or net_type == "ptp"): @@ -1013,6 +1020,28 @@ class vim_thread(threading.Thread): action_text = "creating SDN" with self.db_lock: sdn_net_id = self.ovim.new_network(network) + + if wim_account_name and self.vim.config["wim_external_ports"]: + # add external port to connect WIM. Try with compute node __WIM:wim_name and __WIM + action_text = "attaching external port to ovim network" + sdn_port_name = sdn_net_id + "." + task["vim_id"] + sdn_port_name = sdn_port_name[:63] + sdn_port_data = { + "compute_node": "__WIM:" + wim_account_name[0:58], + "pci": None, + "vlan": network["vlan"], + "net_id": sdn_net_id, + "region": self.vim["config"]["datacenter_id"], + "name": sdn_port_name, + } + try: + sdn_external_port_id = self.ovim.new_external_port(sdn_port_data) + except ovimException: + sdn_port_data["compute_node"] = "__WIM" + sdn_external_port_id = self.ovim.new_external_port(sdn_port_data) + self.logger.debug("Added sdn_external_port {} to sdn_network {}".format(sdn_external_port_id, + sdn_net_id)) + task["status"] = "DONE" task["extra"]["vim_info"] = {} task["extra"]["sdn_net_id"] = sdn_net_id