X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=ovim.py;h=31669724eb0b10f04818ff5aa22b15cebec057b1;hb=275b199fa96ef23eeacb5974c7d32c09c2ac2987;hp=15bde753b9380c2db6d1c4237a166e0cdab7048e;hpb=1600750b84d8052ffb996fb3d4b76a0c6d0750b0;p=osm%2Fopenvim.git diff --git a/ovim.py b/ovim.py index 15bde75..3166972 100644 --- a/ovim.py +++ b/ovim.py @@ -28,6 +28,9 @@ Two thread will be launched, with normal and administrative permissions. __author__ = "Alfonso Tierno, Leonardo Mirabal" __date__ = "$06-Feb-2017 12:07:15$" +__version__ = "0.5.8-r524" +version_date = "March 2017" +database_version = "0.15" #expected database schema version import threading import vim_db @@ -109,6 +112,18 @@ class ovim(): self.config['db_host']) ) return db + @staticmethod + def get_version(): + return __version__ + + @staticmethod + def get_version_date(): + return version_date + + @staticmethod + def get_database_version(): + return database_version + @staticmethod def _check_dhcp_data_integrity(network): """ @@ -149,15 +164,16 @@ class ovim(): Start ovim services :return: """ + global database_version # if self.running_info: # return #TODO service can be checked and rebuild broken threads r = self.db.get_db_version() if r[0] < 0: raise ovimException("DATABASE is not a VIM one or it is a '0.0' version. Try to upgrade to version '{}' with "\ - "'./database_utils/migrate_vim_db.sh'".format(self.config["database_version"]) ) - elif r[1] != self.config["database_version"]: + "'./database_utils/migrate_vim_db.sh'".format(database_version) ) + elif r[1] != database_version: raise ovimException("DATABASE wrong version '{}'. Try to upgrade/downgrade to version '{}' with "\ - "'./database_utils/migrate_vim_db.sh'".format(r[1], self.config["database_version"]) ) + "'./database_utils/migrate_vim_db.sh'".format(r[1], database_version) ) # create database connection for openflow threads self.db_of = self._create_database_connection() @@ -884,9 +900,12 @@ class ovim(): port_data['switch_mac'] = port_mapping_data[0]['switch_mac'] # remove from compute_node, region and pci of_port_data to adapt to 'ports' structure - del port_data['compute_node'] - del port_data['region'] - del port_data['pci'] + if 'region' in port_data: + del port_data['region'] + if 'pci' in port_data: + del port_data['pci'] + if 'compute_node' in port_data: + del port_data['compute_node'] result, uuid = self.db.new_row('ports', port_data, True, True) if result > 0: @@ -939,7 +958,7 @@ class ovim(): r, c = ofc_t[switch_dpid].insert_task("update-net", net_id) if r < 0: - message = "Cannot insert a task for updating network '$s', %s", net_id, c + message = "Cannot insert a task for updating network '{}', {}".format(net_id, c) self.logger.error(message) raise ovimException(message, HTTP_Internal_Server_Error)