Update to get configuration from the consul 77/38077/1
authorasteroide <thomas.duval@orange.com>
Tue, 25 Jul 2017 15:42:49 +0000 (17:42 +0200)
committerasteroide <thomas.duval@orange.com>
Tue, 25 Jul 2017 15:42:49 +0000 (17:42 +0200)
Change-Id: I6eba63fb38f64315bd3d60d1879317d97d6628c4

12 files changed:
moonv4/moon_db/Changelog
moonv4/moon_db/moon_db/__init__.py
moonv4/moon_db/moon_db/api/keystone.py
moonv4/moon_db/moon_db/api/managers.py
moonv4/moon_db/moon_db/api/model.py
moonv4/moon_db/moon_db/api/pdp.py
moonv4/moon_db/moon_db/api/policy.py
moonv4/moon_db/moon_db/api/tenants.py
moonv4/moon_db/moon_db/backends/memory.py
moonv4/moon_db/moon_db/backends/sql.py
moonv4/moon_db/moon_db/core.py
moonv4/moon_db/moon_db/db_manager.py

index 9295c0d..16452f6 100644 (file)
@@ -23,3 +23,8 @@ CHANGES
 -----
 - Test PyPi upload
 
+1.0.3
+-----
+- Fix a bug in core.py
+- Update db_manager
+
index bfca6ef..d42cdbd 100644 (file)
@@ -3,5 +3,5 @@
 # license which can be found in the file 'LICENSE' in this package distribution
 # or at 'http://www.apache.org/licenses/LICENSE-2.0'.
 
-__version__ = "1.0.2"
+__version__ = "1.0.3"
 
index b5d7e3a..b570918 100644 (file)
@@ -8,13 +8,11 @@ import requests
 import json
 from uuid import uuid4
 from oslo_log import log as logging
-from oslo_config import cfg
-from moon_utilities import exceptions
+from moon_utilities import exceptions, configuration
 from moon_db.api.managers import Managers
 from moon_utilities.security_functions import filter_input, login, logout
 
-LOG = logging.getLogger(__name__)
-CONF = cfg.CONF
+LOG = logging.getLogger("moon.db.api.keystone")
 
 
 class KeystoneManager(Managers):
@@ -22,11 +20,13 @@ class KeystoneManager(Managers):
     def __init__(self, connector=None):
         self.driver = connector.driver
         Managers.KeystoneManager = self
-        self.__url = CONF.keystone.url
-        self.__user = CONF.keystone.user
-        self.__password = CONF.keystone.password
-        self.__domain = CONF.keystone.domain
-        self.__project = CONF.keystone.project
+        conf = configuration.get_configuration("openstack/keystone")['openstack/keystone']
+
+        self.__url = conf['url']
+        self.__user = conf['user']
+        self.__password = conf['password']
+        self.__domain = conf['domain']
+        self.__project = conf['project']
         try:
             os.environ.pop("http_proxy")
             os.environ.pop("https_proxy")
index 48ac9ce..602e0f1 100644 (file)
@@ -4,7 +4,7 @@
 # or at 'http://www.apache.org/licenses/LICENSE-2.0'.
 
 from oslo_log import log as logging
-LOG = logging.getLogger(__name__)
+LOG = logging.getLogger("moon.db.api.managers")
 
 
 class Managers(object):
index 22a5a83..f648295 100644 (file)
@@ -3,23 +3,14 @@
 # license which can be found in the file 'LICENSE' in this package distribution
 # or at 'http://www.apache.org/licenses/LICENSE-2.0'.
 
-import os
-import re
-import types
-import json
-import copy
 from uuid import uuid4
-from oslo_config import cfg
 from oslo_log import log as logging
-import requests
 from moon_utilities import exceptions
 from moon_utilities.security_functions import filter_input, enforce
-# from moon_db.api import algorithms
 from moon_db.api.managers import Managers
 
 
-LOG = logging.getLogger(__name__)
-CONF = cfg.CONF
+LOG = logging.getLogger("moon.db.api.model")
 
 
 class ModelManager(Managers):
index f84c7a8..05eb163 100644 (file)
@@ -3,23 +3,13 @@
 # license which can be found in the file 'LICENSE' in this package distribution
 # or at 'http://www.apache.org/licenses/LICENSE-2.0'.
 
-import os
-import re
-import types
-import json
-import copy
 from uuid import uuid4
-from oslo_config import cfg
 from oslo_log import log as logging
-import requests
-from moon_utilities import exceptions
 from moon_utilities.security_functions import filter_input, enforce
-# from moon_db.api import algorithms
 from moon_db.api.managers import Managers
 
 
-LOG = logging.getLogger(__name__)
-CONF = cfg.CONF
+LOG = logging.getLogger("moon.db.api.pdp")
 
 
 class PDPManager(Managers):
index 0beaf78..e0413bd 100644 (file)
@@ -3,23 +3,13 @@
 # license which can be found in the file 'LICENSE' in this package distribution
 # or at 'http://www.apache.org/licenses/LICENSE-2.0'.
 
-import os
-import re
-import types
-import json
-import copy
 from uuid import uuid4
-from oslo_config import cfg
 from oslo_log import log as logging
-import requests
-from moon_utilities import exceptions
 from moon_utilities.security_functions import filter_input, enforce
-# from moon_db.api import algorithms
 from moon_db.api.managers import Managers
 
 
-LOG = logging.getLogger(__name__)
-CONF = cfg.CONF
+LOG = logging.getLogger("moon.db.api.policy")
 
 
 class PolicyManager(Managers):
index dd7c4ec..527e671 100644 (file)
@@ -9,7 +9,7 @@ from moon_db.api.managers import Managers
 from moon_utilities.security_functions import filter_input, enforce
 from oslo_log import log as logging
 
-LOG = logging.getLogger(__name__)
+LOG = logging.getLogger("moon.db.api.tenants")
 
 
 class TenantManager(Managers):
index 06de99e..5762b18 100644 (file)
@@ -11,7 +11,7 @@ from glob import glob
 from oslo_config import cfg
 from moon_db.core import ConfigurationDriver
 
-LOG = logging.getLogger(__name__)
+LOG = logging.getLogger("moon.db.driver.memory")
 CONF = cfg.CONF
 
 
index d6becbb..78de468 100644 (file)
@@ -6,7 +6,7 @@
 import copy
 import json
 from uuid import uuid4
-from moon_db.exception import *
+from moon_utilities.exceptions import *
 from moon_db.core import PDPDriver, PolicyDriver, ModelDriver
 import sqlalchemy as sql
 import logging
@@ -15,15 +15,12 @@ from sqlalchemy.ext.declarative import declarative_base
 from sqlalchemy import create_engine
 from contextlib import contextmanager
 from sqlalchemy import types as sql_types
-from oslo_config import cfg
-# from moon_utilities.exceptions import IntraExtensionUnknown
+from moon_utilities import configuration
 
-# from sqlalchemy.orm.exc import UnmappedInstanceError
-# from keystone.contrib.moon import InterExtensionDriver
 
-CONF = cfg.CONF
-LOG = logging.getLogger(__name__)
+LOG = logging.getLogger("moon.db.driver.sql")
 Base = declarative_base()
+DEBUG = True if configuration.get_configuration("logging")['logging']['loggers']['moon']['level'] == "DEBUG" else False
 
 
 class DictBase:
@@ -342,7 +339,7 @@ class Rule(Base, DictBase):
 def session_scope(engine):
     """Provide a transactional scope around a series of operations."""
     if type(engine) is str:
-        echo = True if CONF.debug else False
+        echo = DEBUG
         engine = create_engine(engine, echo=echo)
     session = sessionmaker(bind=engine)()
     try:
@@ -360,7 +357,7 @@ class BaseConnector(object):
     engine = ""
 
     def __init__(self, engine_name):
-        echo = True if CONF.debug else False
+        echo = DEBUG
         self.engine = create_engine(engine_name, echo=echo)
 
     def init_db(self):
index cf233ab..069f253 100644 (file)
@@ -3,15 +3,14 @@
 # license which can be found in the file 'LICENSE' in this package distribution
 # or at 'http://www.apache.org/licenses/LICENSE-2.0'.
 
-from moon_db.exception import *
 from oslo_log import log as logging
 from oslo_config import cfg
 from stevedore.driver import DriverManager
-from moon_utilities import options  # noqa
+from moon_utilities import configuration
 from moon_db.api import model, policy, pdp, keystone
 
 CONF = cfg.CONF
-LOG = logging.getLogger(__name__)
+LOG = logging.getLogger("moon.db")
 
 
 class Driver(DriverManager):
@@ -212,22 +211,21 @@ class KeystoneDriver(Driver):
         super(KeystoneDriver, self).__init__(driver_name, engine_name)
 
 
-# TODO (asteroide): we may use an other driver like the SQL driver
-# so we can change the driver to directly interrogate the Keystone database.
+conf = configuration.get_configuration("database")['database']
 KeystoneManager = keystone.KeystoneManager(
-    KeystoneDriver(CONF.database.driver, CONF.database.url)
+    KeystoneDriver(conf['driver'], conf['url'])
 )
 
 ModelManager = model.ModelManager(
-    ModelDriver(CONF.database.driver, CONF.database.url)
+    ModelDriver(conf['driver'], conf['url'])
 )
 
 PolicyManager = policy.PolicyManager(
-    PolicyDriver(CONF.database.driver, CONF.database.url)
+    PolicyDriver(conf['driver'], conf['url'])
 )
 
 PDPManager = pdp.PDPManager(
-    PDPDriver(CONF.database.driver, CONF.database.url)
+    PDPDriver(conf['driver'], conf['url'])
 )
 
 
index 1c10aa2..81e6fe7 100644 (file)
@@ -8,21 +8,40 @@
 import os
 import glob
 import importlib
-from oslo_config import cfg
-from oslo_log import log as logging
+import argparse
+import logging
 from sqlalchemy import create_engine
 from moon_db.migrate_repo import versions
+from moon_utilities import configuration
 
-# Note (asteroide): The next line must be called before the next import
-# aka before registering all the options
-cfg.CONF.register_cli_opt(cfg.StrOpt('command', positional=True,
-                                     help="The command to execute (upgrade, downgrade)"))
-from moon_utilities import options  # noqa
+parser = argparse.ArgumentParser()
+parser.add_argument('command', help='command (upgrade or downgrade)', nargs=1)
+parser.add_argument("--verbose", "-v", action='store_true', help="verbose mode")
+parser.add_argument("--debug", "-d", action='store_true', help="debug mode")
+args = parser.parse_args()
 
-LOG = logging.getLogger(__name__)
-CONF = cfg.CONF
+FORMAT = '%(asctime)-15s %(levelname)s %(message)s'
+if args.debug:
+    logging.basicConfig(
+        format=FORMAT,
+        level=logging.DEBUG)
+elif args.verbose:
+    logging.basicConfig(
+        format=FORMAT,
+        level=logging.INFO)
+else:
+    logging.basicConfig(
+        format=FORMAT,
+        level=logging.WARNING)
 
-engine = create_engine(CONF.database.url)
+requests_log = logging.getLogger("requests.packages.urllib3")
+requests_log.setLevel(logging.WARNING)
+requests_log.propagate = True
+
+logger = logging.getLogger("moon.db.manager")
+
+db_conf = configuration.get_configuration("database")["database"]
+engine = create_engine(db_conf['url'])
 
 
 def format_data(ext):
@@ -31,15 +50,15 @@ def format_data(ext):
 
 def run():
     files = glob.glob(versions.__path__[0] + "/[0-9][0-9][0-9]*.py")
-    # args = set_options()
     for filename in files:
         filename = os.path.basename(filename).replace(".py", "")
         o = importlib.import_module("moon_db.migrate_repo.versions.{}".format(filename))
-        LOG.info("Command is {}".format(CONF.command))
-        if CONF.command in ("upgrade", "u", "up"):
-            LOG.info("upgrading moon_db.migrate_repo.versions.{}".format(filename))
+        logger.info("Command is {}".format(args.command[0]))
+        if args.command[0] in ("upgrade", "u", "up"):
+            logger.info("upgrading moon_db.migrate_repo.versions.{}".format(filename))
             o.upgrade(engine)
-        elif CONF.command in ("downgrade", "d", "down"):
-            LOG.info("downgrading moon_db.migrate_repo.versions.{}".format(filename))
+        elif args.command[0] in ("downgrade", "d", "down"):
+            logger.info("downgrading moon_db.migrate_repo.versions.{}".format(filename))
             o.downgrade(engine)
-        LOG.info("Done!")
+        else:
+            logger.critical("Cannot understand the command!")