X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=openmanod;h=0ad7a9e363bb785d61542408a47a241379bc49f6;hb=6ddeded5129e36c83d91374265ac31eb5a355a42;hp=0611d4ec2ac0ff27015315614d175ee3625b2d96;hpb=4b6216b9d00195bf2e3772bb9278faf18ee9fd46;p=osm%2FRO.git diff --git a/openmanod b/openmanod index 0611d4ec..0ad7a9e3 100755 --- a/openmanod +++ b/openmanod @@ -22,7 +22,7 @@ # contact with: nfvlabs@tid.es ## -''' +""" openmano server. Main program that implements a reference NFVO (Network Functions Virtualisation Orchestrator). It interfaces with an NFV VIM through its API and offers a northbound interface, based on REST (openmano API), @@ -30,17 +30,13 @@ where NFV services are offered including the creation and deletion of VNF templa network service templates and network service instances. It loads the configuration file and launches the http_server thread that will listen requests using openmano API. -''' -__author__="Alfonso Tierno, Gerardo Garcia, Pablo Montes" -__date__ ="$26-aug-2014 11:09:29$" -__version__="0.5.8-r518" -version_date="Jan 2017" -database_version="0.19" #expected database schema version +""" import time import sys import getopt import yaml +import os.path from jsonschema import validate as js_v, exceptions as js_e import logging import logging.handlers as log_handlers @@ -50,6 +46,12 @@ from osm_ro.openmano_schemas import config_schema from osm_ro.db_base import db_base_Exception import osm_ro +__author__ = "Alfonso Tierno, Gerardo Garcia, Pablo Montes" +__date__ = "$26-aug-2014 11:09:29$" +__version__ = "0.5.12-r522" +version_date = "May 2017" +database_version = 20 #expected database schema version + global global_config global logger @@ -57,14 +59,16 @@ class LoadConfigurationException(Exception): pass def load_configuration(configuration_file): - default_tokens ={'http_port':9090, - 'http_host':'localhost', - 'http_console_proxy': True, - 'http_console_host': None, - 'log_level': 'DEBUG', - 'log_socket_port': 9022, - 'auto_push_VNF_to_VIMs': True - } + default_tokens = {'http_port':9090, + 'http_host':'localhost', + 'http_console_proxy': True, + 'http_console_host': None, + 'log_level': 'DEBUG', + 'log_socket_port': 9022, + 'auto_push_VNF_to_VIMs': True, + 'db_host': 'localhost', + 'db_ovim_host': 'localhost' + } try: #Check config file exists with open(configuration_file, 'r') as f: @@ -182,6 +186,8 @@ if __name__=="__main__": else: assert False, "Unhandled option" global_config = load_configuration(config_file) + global_config["version"] = __version__ + global_config["version_date"] = version_date #print global_config # Override parameters obtained by command line if port: @@ -241,7 +247,7 @@ if __name__=="__main__": logger.critical("Starting openmano server version: '%s %s' command: '%s'", __version__, version_date, " ".join(sys.argv)) - for log_module in ("nfvo", "http", "vim", "db", "console"): + for log_module in ("nfvo", "http", "vim", "db", "console", "ovim"): log_level_module = "log_level_" + log_module log_file_module = "log_file_" + log_module logger_module = logging.getLogger('openmano.' + log_module) @@ -261,16 +267,19 @@ if __name__=="__main__": # Initialize DB connection mydb = nfvo_db.nfvo_db(); mydb.connect(global_config['db_host'], global_config['db_user'], global_config['db_passwd'], global_config['db_name']) + db_path = osm_ro.__path__[0] + "/database_utils" + if not os.path.exists(db_path + "/migrate_mano_db.sh"): + db_path = osm_ro.__path__[0] + "/../database_utils" try: r = mydb.get_db_version() - if r[1] != database_version: - logger.critical("DATABASE wrong version '%s'. \ - Try to upgrade/downgrade to version '%s' with '%s/database_utils/migrate_mano_db.sh'", - r[1], database_version, osm_ro.__path__[0]) + if r[0] != database_version: + logger.critical("DATABASE wrong version '{current}'. Try to upgrade/downgrade to version '{target}'" + " with '{db_path}/migrate_mano_db.sh {target}'".format( + current=r[0], target=database_version, db_path=db_path)) exit(-1) except db_base_Exception as e: - logger.critical("DATABASE is not a MANO one or it is a '0.0' version. Try to upgrade to version '%s' with \ - './database_utils/migrate_mano_db.sh'", database_version) + logger.critical("DATABASE is not valid. If you think it is corrupted, you can init it with" + " '{db_path}/init_mano_db.sh' script".format(db_path=db_path)) exit(-1) nfvo.global_config=global_config @@ -315,6 +324,4 @@ if __name__=="__main__": nfvo.stop_service() if httpthread: httpthread.join(1) - for thread in global_config["console_thread"]: - thread.terminate = True