From d72182fcb984ec196e92b9448b8dc90b72576ba2 Mon Sep 17 00:00:00 2001 From: tierno Date: Wed, 29 Aug 2018 10:56:13 +0200 Subject: [PATCH] fixing bug: vim config were not loaded at vim_thread Change-Id: If6cb843ed30d5bb843e31316c86056a681e7ea60 Signed-off-by: tierno --- openmanod | 4 ++-- osm_ro/nfvo.py | 18 ++++++++++-------- osm_ro/vim_thread.py | 11 ++++++++--- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/openmanod b/openmanod index 6cccf0e4..6f4c1a8d 100755 --- a/openmanod +++ b/openmanod @@ -48,8 +48,8 @@ import osm_ro __author__ = "Alfonso Tierno, Gerardo Garcia, Pablo Montes" __date__ = "$26-aug-2014 11:09:29$" -__version__ = "0.5.74-r584" -version_date = "Jul 2018" +__version__ = "0.5.75-r585" +version_date = "Ago 2018" database_version = 32 # expected database schema version diff --git a/osm_ro/nfvo.py b/osm_ro/nfvo.py index 98463ea2..c748b83b 100644 --- a/osm_ro/nfvo.py +++ b/osm_ro/nfvo.py @@ -4676,7 +4676,7 @@ def edit_datacenter(mydb, datacenter_id_name, datacenter_descriptor): # edit data datacenter_id = datacenter['uuid'] - where={'uuid': datacenter['uuid']} + where = {'uuid': datacenter['uuid']} remove_port_mapping = False new_sdn_port_mapping = None if "config" in datacenter_descriptor: @@ -4686,10 +4686,10 @@ def edit_datacenter(mydb, datacenter_id_name, datacenter_descriptor): if "sdn-port-mapping" in new_config_dict: remove_port_mapping = True new_sdn_port_mapping = new_config_dict.pop("sdn-port-mapping") - #delete null fields - to_delete=[] + # delete null fields + to_delete = [] for k in new_config_dict: - if new_config_dict[k] == None: + if new_config_dict[k] is None: to_delete.append(k) if k == 'sdn-controller': remove_port_mapping = True @@ -4699,7 +4699,7 @@ def edit_datacenter(mydb, datacenter_id_name, datacenter_descriptor): config_text = '{}' config_dict = yaml.load(config_text) config_dict.update(new_config_dict) - #delete null fields + # delete null fields for k in to_delete: del config_dict[k] except Exception as e: @@ -4712,14 +4712,16 @@ def edit_datacenter(mydb, datacenter_id_name, datacenter_descriptor): try: datacenter_sdn_port_mapping_delete(mydb, None, datacenter_id) except ovimException as e: - logger.error("Error deleting datacenter-port-mapping " + str(e)) + raise NfvoException("Error deleting datacenter-port-mapping " + str(e), HTTP_Conflict) mydb.update_rows('datacenters', datacenter_descriptor, where) if new_sdn_port_mapping: try: datacenter_sdn_port_mapping_set(mydb, None, datacenter_id, new_sdn_port_mapping) except ovimException as e: - logger.error("Error adding datacenter-port-mapping " + str(e)) + # Rollback + mydb.update_rows('datacenters', datacenter, where) + raise NfvoException("Error adding datacenter-port-mapping " + str(e), HTTP_Conflict) return datacenter_id @@ -4730,7 +4732,7 @@ def delete_datacenter(mydb, datacenter): try: datacenter_sdn_port_mapping_delete(mydb, None, datacenter_dict['uuid']) except ovimException as e: - logger.error("Error deleting datacenter-port-mapping " + str(e)) + raise NfvoException("Error deleting datacenter-port-mapping " + str(e)) return datacenter_dict['uuid'] + " " + datacenter_dict['name'] diff --git a/osm_ro/vim_thread.py b/osm_ro/vim_thread.py index bd1fc3c5..089e7b96 100644 --- a/osm_ro/vim_thread.py +++ b/osm_ro/vim_thread.py @@ -151,15 +151,20 @@ class vim_thread(threading.Thread): with self.db_lock: vims = self.db.get_rows(FROM=from_, SELECT=select_, WHERE=where_) vim = vims[0] - extra = {'datacenter_tenant_id': vim.get('datacenter_tenant_id'), - 'datacenter_id': vim.get('datacenter_id')} + vim_config = {} + if vim["config"]: + vim_config.update(yaml.load(vim["config"])) + if vim["dt_config"]: + vim_config.update(yaml.load(vim["dt_config"])) + vim_config['datacenter_tenant_id'] = vim.get('datacenter_tenant_id') + vim_config['datacenter_id'] = vim.get('datacenter_id') 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'], url=vim['vim_url'], url_admin=vim['vim_url_admin'], user=vim['user'], passwd=vim['passwd'], - config=extra, persistent_info=self.vim_persistent_info + config=vim_config, persistent_info=self.vim_persistent_info ) self.error_status = None except Exception as e: -- 2.17.1