-----
- Test PyPi upload
+1.0.3
+-----
+- Fix a bug in core.py
+- Update db_manager
+
# 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"
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):
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")
# 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):
# 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):
# 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):
# 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):
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):
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
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
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:
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:
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):
# 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):
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'])
)
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):
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!")