fix an issue at openmano client for tenant-edit
[osm/RO.git] / openmanod
index 0611d4e..f1ce0a7 100755 (executable)
--- 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:
@@ -241,7 +245,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 +265,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 +322,4 @@ if __name__=="__main__":
     nfvo.stop_service()
     if httpthread:
         httpthread.join(1)
-    for thread in global_config["console_thread"]:
-        thread.terminate = True