aboutsummaryrefslogtreecommitdiffstats
path: root/python_moondb
diff options
context:
space:
mode:
Diffstat (limited to 'python_moondb')
-rw-r--r--python_moondb/Changelog4
-rw-r--r--python_moondb/build.sh38
-rw-r--r--python_moondb/python_moondb/__init__.py2
-rw-r--r--python_moondb/python_moondb/api/keystone.py10
-rw-r--r--python_moondb/python_moondb/api/managers.py4
-rw-r--r--python_moondb/python_moondb/api/model.py6
-rw-r--r--python_moondb/python_moondb/api/pdp.py6
-rw-r--r--python_moondb/python_moondb/api/policy.py4
-rw-r--r--python_moondb/python_moondb/backends/flat.py89
-rw-r--r--python_moondb/python_moondb/backends/sql.py66
-rw-r--r--python_moondb/python_moondb/core.py77
-rw-r--r--python_moondb/requirements.txt2
-rw-r--r--python_moondb/setup.py1
-rw-r--r--python_moondb/tests/unit_python/mock_keystone.py12
-rw-r--r--python_moondb/tests/unit_python/test_keystone.py53
15 files changed, 92 insertions, 282 deletions
diff --git a/python_moondb/Changelog b/python_moondb/Changelog
index ff244af5..a7d10b17 100644
--- a/python_moondb/Changelog
+++ b/python_moondb/Changelog
@@ -53,3 +53,7 @@ CHANGES
-----
- Update the name of the library (from moon_db)
+1.2.5
+-----
+- Code cleaning
+
diff --git a/python_moondb/build.sh b/python_moondb/build.sh
deleted file mode 100644
index f109e9b8..00000000
--- a/python_moondb/build.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env bash
-
-VERSION=moon_db-$(grep __version__ moon_db/__init__.py | cut -d "\"" -f 2)
-
-python3 setup.py sdist bdist_wheel
-
-rm dist/*.asc 2>/dev/null
-
-gpg --detach-sign -u "A0A96E75" -a dist/${VERSION}-py3-none-any.whl
-gpg --detach-sign -u "A0A96E75" -a dist/${VERSION}.tar.gz
-
-if [ "$1" = "upload" ]; then
- twine upload dist/${VERSION}-py3-none-any.whl dist/${VERSION}-py3-none-any.whl.asc
- twine upload dist/${VERSION}.tar.gz dist/${VERSION}.tar.gz.asc
- rm -f ../moon_orchestrator/dist/moon_db*
- rm -f ../moon_interface/dist/moon_db*
- rm -f ../moon_manager/dist/moon_db*
- rm -f ../moon_authz/dist/moon_db*
- rm -f ../moon_wrapper/dist/moon_db*
-fi
-
-if [ "$1" = "copy" ]; then
- mkdir -p ../moon_orchestrator/dist/ 2>/dev/null
- rm -f ../moon_orchestrator/dist/moon_db*
- cp -v dist/${VERSION}-py3-none-any.whl ../moon_orchestrator/dist/
- mkdir -p ../moon_interface/dist/ 2>/dev/null
- rm -f ../moon_interface/dist/moon_db*
- cp -v dist/${VERSION}-py3-none-any.whl ../moon_interface/dist/
- mkdir -p ../moon_manager/dist/ 2>/dev/null
- rm -f ../moon_manager/dist/moon_db*
- cp -v dist/${VERSION}-py3-none-any.whl ../moon_manager/dist/
- mkdir -p ../moon_authz/dist/ 2>/dev/null
- rm -f ../moon_authz/dist/moon_db*
- cp -v dist/${VERSION}-py3-none-any.whl ../moon_authz/dist/
- mkdir -p ../moon_wrapper/dist/ 2>/dev/null
- rm -f ../moon_wrapper/dist/moon_db*
- cp -v dist/${VERSION}-py3-none-any.whl ../moon_wrapper/dist/
-fi
diff --git a/python_moondb/python_moondb/__init__.py b/python_moondb/python_moondb/__init__.py
index 73faf752..de7c772e 100644
--- a/python_moondb/python_moondb/__init__.py
+++ b/python_moondb/python_moondb/__init__.py
@@ -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.2.4"
+__version__ = "1.2.5"
diff --git a/python_moondb/python_moondb/api/keystone.py b/python_moondb/python_moondb/api/keystone.py
index f5410190..582ae710 100644
--- a/python_moondb/python_moondb/api/keystone.py
+++ b/python_moondb/python_moondb/api/keystone.py
@@ -7,12 +7,12 @@ import os
import requests
import json
from uuid import uuid4
-from oslo_log import log as logging
+import logging
from python_moonutilities import exceptions, configuration
from python_moonutilities.security_functions import filter_input, login, logout
from python_moondb.api.managers import Managers
-LOG = logging.getLogger("moon.db.api.keystone")
+logger = logging.getLogger("moon.db.api.keystone")
class KeystoneManager(Managers):
@@ -37,7 +37,7 @@ class KeystoneManager(Managers):
_headers = login()
req = requests.get("{}{}".format(self.__url, endpoint), headers=_headers, verify=False)
if req.status_code not in (200, 201):
- LOG.error(req.text)
+ logger.error(req.text)
raise _exception
data = req.json()
logout(_headers)
@@ -49,10 +49,10 @@ class KeystoneManager(Managers):
data=json.dumps(data),
headers=_headers, verify=False)
if req.status_code == 409:
- LOG.warning(req.text)
+ logger.warning(req.text)
raise exceptions.KeystoneUserConflict
if req.status_code not in (200, 201):
- LOG.error(req.text)
+ logger.error(req.text)
raise _exception
data = req.json()
logout(_headers)
diff --git a/python_moondb/python_moondb/api/managers.py b/python_moondb/python_moondb/api/managers.py
index 602e0f11..f500d02e 100644
--- a/python_moondb/python_moondb/api/managers.py
+++ b/python_moondb/python_moondb/api/managers.py
@@ -3,8 +3,8 @@
# license which can be found in the file 'LICENSE' in this package distribution
# or at 'http://www.apache.org/licenses/LICENSE-2.0'.
-from oslo_log import log as logging
-LOG = logging.getLogger("moon.db.api.managers")
+import logging
+logger = logging.getLogger("moon.db.api.managers")
class Managers(object):
diff --git a/python_moondb/python_moondb/api/model.py b/python_moondb/python_moondb/api/model.py
index fbfbb680..bd475365 100644
--- a/python_moondb/python_moondb/api/model.py
+++ b/python_moondb/python_moondb/api/model.py
@@ -4,13 +4,13 @@
# or at 'http://www.apache.org/licenses/LICENSE-2.0'.
from uuid import uuid4
-from oslo_log import log as logging
+import logging
from python_moonutilities import exceptions
from python_moonutilities.security_functions import filter_input, enforce
from python_moondb.api.managers import Managers
-LOG = logging.getLogger("moon.db.api.model")
+logger = logging.getLogger("moon.db.api.model")
class ModelManager(Managers):
@@ -60,7 +60,7 @@ class ModelManager(Managers):
raise exceptions.MetaRuleExisting
if not meta_rule_id:
meta_rule_id = uuid4().hex
- LOG.info("add_meta_rule {}".format(value))
+ logger.info("add_meta_rule {}".format(value))
return self.driver.set_meta_rule(meta_rule_id=meta_rule_id, value=value)
@enforce(("read", "write"), "meta_rules")
diff --git a/python_moondb/python_moondb/api/pdp.py b/python_moondb/python_moondb/api/pdp.py
index 07feab7e..d39418b8 100644
--- a/python_moondb/python_moondb/api/pdp.py
+++ b/python_moondb/python_moondb/api/pdp.py
@@ -4,12 +4,12 @@
# or at 'http://www.apache.org/licenses/LICENSE-2.0'.
from uuid import uuid4
-from oslo_log import log as logging
-from python_moonutilities.security_functions import filter_input, enforce
+import logging
+from python_moonutilities.security_functions import enforce
from python_moondb.api.managers import Managers
from python_moonutilities import exceptions
-LOG = logging.getLogger("moon.db.api.pdp")
+logger = logging.getLogger("moon.db.api.pdp")
class PDPManager(Managers):
diff --git a/python_moondb/python_moondb/api/policy.py b/python_moondb/python_moondb/api/policy.py
index 81689826..9781fda8 100644
--- a/python_moondb/python_moondb/api/policy.py
+++ b/python_moondb/python_moondb/api/policy.py
@@ -8,7 +8,7 @@ import logging
from python_moonutilities.security_functions import enforce
from python_moondb.api.managers import Managers
-LOG = logging.getLogger("moon.db.api.policy")
+logger = logging.getLogger("moon.db.api.policy")
class PolicyManager(Managers):
@@ -56,7 +56,7 @@ class PolicyManager(Managers):
k_user = Managers.KeystoneManager.create_user(value)
if not perimeter_id:
try:
- LOG.info("k_user={}".format(k_user))
+ logger.info("k_user={}".format(k_user))
perimeter_id = k_user['users'][0].get('id', uuid4().hex)
except IndexError:
k_user = Managers.KeystoneManager.get_user_by_name(
diff --git a/python_moondb/python_moondb/backends/flat.py b/python_moondb/python_moondb/backends/flat.py
deleted file mode 100644
index 0fe2f00b..00000000
--- a/python_moondb/python_moondb/backends/flat.py
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright 2015 Open Platform for NFV Project, Inc. and its contributors
-# This software is distributed under the terms and conditions of the 'Apache-2.0'
-# license which can be found in the file 'LICENSE' in this package distribution
-# or at 'http://www.apache.org/licenses/LICENSE-2.0'.
-
-import logging
-import time
-from python_moondb.core import LogDriver
-
-
-class LogConnector(LogDriver):
-
- AUTHZ_FILE = '/var/log/moon/authz.log'
- SYS_FILE = '/var/log/moon/system.log'
- TIME_FORMAT = '%Y-%m-%d-%H:%M:%S'
-
- def __init__(self):
- # Fixme (dthom): when logging from an other class, the %appname% in the event
- # is always keystone.contrib.moon.backends.flat
- super(LogConnector, self).__init__()
-
- self.SYS_LOG = logging.getLogger(__name__)
- if not len(self.SYS_LOG.handlers):
- fh = logging.FileHandler(self.SYS_FILE)
- fh.setLevel(logging.DEBUG)
- formatter = logging.Formatter('%(asctime)s ------ %(message)s', self.TIME_FORMAT)
- fh.setFormatter(formatter)
- self.SYS_LOG.addHandler(fh)
-
- self.AUTHZ_LOG = logging.getLogger("authz")
- if not len(self.AUTHZ_LOG.handlers):
- fh = logging.FileHandler(self.AUTHZ_FILE)
- fh.setLevel(logging.WARNING)
- formatter = logging.Formatter('%(asctime)s ------ %(message)s', self.TIME_FORMAT)
- fh.setFormatter(formatter)
- self.AUTHZ_LOG.addHandler(fh)
-
- def authz(self, message):
- self.AUTHZ_LOG.warn(message)
-
- def debug(self, message):
- self.SYS_LOG.debug(message)
-
- def info(self, message):
- self.SYS_LOG.info(message)
-
- def warning(self, message):
- self.SYS_LOG.warning(message)
-
- def error(self, message):
- self.SYS_LOG.error(message)
-
- def critical(self, message):
- self.SYS_LOG.critical(message)
-
- def get_logs(self, logger="authz", event_number=None, time_from=None, time_to=None, filter_str=None):
- if logger == "authz":
- _logs = open(self.AUTHZ_FILE).readlines()
- else:
- _logs = open(self.SYS_FILE).readlines()
- if filter_str:
- _logs = filter(lambda x: filter_str in x, _logs)
- if time_from:
- if isinstance(time_from, str):
- time_from = time.strptime(time_from.split(" ")[0], self.TIME_FORMAT)
- try:
- __logs = []
- for log in _logs:
- _log = time.strptime(log.split(" ")[0], self.TIME_FORMAT)
- if time_from <= _log:
- __logs.append(log)
- _logs = __logs
- except ValueError:
- self.error("Time format error")
- if time_to:
- try:
- if isinstance(time_to, str):
- time_to = time.strptime(time_to.split(" ")[0], self.TIME_FORMAT)
- __logs = []
- for log in _logs:
- _log = time.strptime(log.split(" ")[0], self.TIME_FORMAT)
- if time_to >= _log:
- __logs.append(log)
- _logs = __logs
- except ValueError:
- self.error("Time format error")
- if event_number:
- _logs = _logs[-event_number:]
- return list(_logs)
diff --git a/python_moondb/python_moondb/backends/sql.py b/python_moondb/python_moondb/backends/sql.py
index 5dba8eb2..1ce8d016 100644
--- a/python_moondb/python_moondb/backends/sql.py
+++ b/python_moondb/python_moondb/backends/sql.py
@@ -17,7 +17,7 @@ from python_moonutilities import configuration
from python_moonutilities.exceptions import *
from python_moondb.core import PDPDriver, PolicyDriver, ModelDriver
-LOG = logging.getLogger("moon.db.driver.sql")
+logger = logging.getLogger("moon.db.driver.sql")
Base = declarative_base()
DEBUG = True if configuration.get_configuration("logging")['logging']['loggers']['moon']['level'] == "DEBUG" else False
@@ -648,7 +648,7 @@ class PolicyConnector(BaseConnector, PolicyDriver):
session.delete(_action)
def get_subject_data(self, policy_id, data_id=None, category_id=None):
- LOG.info("driver {} {} {}".format(policy_id, data_id, category_id))
+ logger.info("driver {} {} {}".format(policy_id, data_id, category_id))
with self.get_session_for_read() as session:
query = session.query(SubjectData)
if data_id:
@@ -656,7 +656,7 @@ class PolicyConnector(BaseConnector, PolicyDriver):
else:
query = query.filter_by(policy_id=policy_id, category_id=category_id)
ref_list = query.all()
- LOG.info("ref_list={}".format(ref_list))
+ logger.info("ref_list={}".format(ref_list))
return {
"policy_id": policy_id,
"category_id": category_id,
@@ -982,7 +982,7 @@ class PolicyConnector(BaseConnector, PolicyDriver):
ref_list = query.all()
rules = list(map(lambda x: x.rule, ref_list))
if not rules or value not in rules:
- LOG.info("add_rule IN IF")
+ logger.info("add_rule IN IF")
ref = Rule.from_dict(
{
"id": uuid4().hex,
@@ -1815,61 +1815,3 @@ class ModelConnector(BaseConnector, ModelDriver):
class SQLConnector(PDPConnector, PolicyConnector, ModelConnector):
pass
-
-# class InterExtension(Base):
-# __tablename__ = 'inter_extension'
-# attributes = [
-# 'id',
-# 'requesting_intra_extension_id',
-# 'requested_intra_extension_id',
-# 'virtual_entity_uuid',
-# 'genre',
-# 'description',
-# ]
-# id = sql.Column(sql.String(64), primary_key=True)
-# requesting_intra_extension_id = sql.Column(sql.String(64))
-# requested_intra_extension_id = sql.Column(sql.String(64))
-# virtual_entity_uuid = sql.Column(sql.String(64))
-# genre = sql.Column(sql.String(64))
-# description = sql.Column(sql.Text())
-#
-# @classmethod
-# def from_dict(cls, d):
-# """Override parent from_dict() method with a simpler implementation.
-# """
-# new_d = d.copy()
-# return cls(**new_d)
-#
-# def to_dict(self):
-# """Override parent to_dict() method with a simpler implementation.
-# """
-# return dict(six.iteritems(self))
-#
-#
-# class InterExtensionBaseConnector(InterExtensionDriver):
-#
-# def get_inter_extensions(self):
-# with self.get_session_for_read() as session:
-# query = session.query(InterExtension.id)
-# interextensions = query.all()
-# return [interextension.id for interextension in interextensions]
-#
-# def create_inter_extensions(self, inter_id, inter_extension):
-# with self.get_session_for_read() as session:
-# ie_ref = InterExtension.from_dict(inter_extension)
-# session.add(ie_ref)
-# return InterExtension.to_dict(ie_ref)
-#
-# def get_inter_extension(self, uuid):
-# with self.get_session_for_read() as session:
-# query = session.query(InterExtension)
-# query = query.filter_by(id=uuid)
-# ref = query.first()
-# if not ref:
-# raise exception.NotFound
-# return ref.to_dict()
-#
-# def delete_inter_extensions(self, inter_extension_id):
-# with self.get_session_for_read() as session:
-# ref = session.query(InterExtension).get(inter_extension_id)
-# session.delete(ref)
diff --git a/python_moondb/python_moondb/core.py b/python_moondb/python_moondb/core.py
index 49e9f711..984b81a7 100644
--- a/python_moondb/python_moondb/core.py
+++ b/python_moondb/python_moondb/core.py
@@ -3,20 +3,18 @@
# license which can be found in the file 'LICENSE' in this package distribution
# or at 'http://www.apache.org/licenses/LICENSE-2.0'.
-from oslo_log import log as logging
-from oslo_config import cfg
+import logging
from stevedore.driver import DriverManager
from python_moonutilities import configuration
from python_moondb.api import model, policy, pdp, keystone
-CONF = cfg.CONF
-LOG = logging.getLogger("moon.db")
+logger = logging.getLogger("moon.db")
class Driver(DriverManager):
def __init__(self, driver_name, engine_name):
- LOG.info("initialization of Driver {}".format(driver_name))
+ logger.info("initialization of Driver {}".format(driver_name))
super(Driver, self).__init__(
namespace='moon_db.driver',
name=driver_name,
@@ -212,6 +210,7 @@ class KeystoneDriver(Driver):
conf = configuration.get_configuration("database")['database']
+
KeystoneManager = keystone.KeystoneManager(
KeystoneDriver(conf['driver'], conf['url'])
)
@@ -227,71 +226,3 @@ PolicyManager = policy.PolicyManager(
PDPManager = pdp.PDPManager(
PDPDriver(conf['driver'], conf['url'])
)
-
-
-# class LogDriver(object):
-#
-# def authz(self, message):
-# """Log authorization message
-#
-# :param message: the message to log
-# :type message: string
-# :return: None
-# """
-# raise NotImplementedError() # pragma: no cover
-#
-# def debug(self, message):
-# """Log debug message
-#
-# :param message: the message to log
-# :type message: string
-# :return: None
-# """
-# raise NotImplementedError() # pragma: no cover
-#
-# def info(self, message):
-# """Log informational message
-#
-# :param message: the message to log
-# :type message: string
-# :return: None
-# """
-# raise NotImplementedError() # pragma: no cover
-#
-# def warning(self, message):
-# """Log warning message
-#
-# :param message: the message to log
-# :type message: string
-# :return: None
-# """
-# raise NotImplementedError() # pragma: no cover
-#
-# def error(self, message):
-# """Log error message
-#
-# :param message: the message to log
-# :type message: string
-# :return: None
-# """
-# raise NotImplementedError() # pragma: no cover
-#
-# def critical(self, message):
-# """Log critical message
-#
-# :param message: the message to log
-# :type message: string
-# :return: None
-# """
-# raise NotImplementedError() # pragma: no cover
-#
-# def get_logs(self, options):
-# """Get logs
-#
-# :param options: options to filter log events
-# :type options: string eg: "event_number=10,from=2014-01-01-10:10:10,to=2014-01-01-12:10:10,filter=expression"
-# :return: a list of log events
-#
-# TIME_FORMAT is '%Y-%m-%d-%H:%M:%S'
-# """
-# raise NotImplementedError() # pragma: no cover
diff --git a/python_moondb/requirements.txt b/python_moondb/requirements.txt
index 03afc879..a205666f 100644
--- a/python_moondb/requirements.txt
+++ b/python_moondb/requirements.txt
@@ -2,5 +2,3 @@ stevedore
sqlalchemy
pymysql
requests
-oslo.log
-oslo.config
diff --git a/python_moondb/setup.py b/python_moondb/setup.py
index 65687c3f..e34369d4 100644
--- a/python_moondb/setup.py
+++ b/python_moondb/setup.py
@@ -45,7 +45,6 @@ setup(
"moon_db.driver":
[
"sql = python_moondb.backends.sql:SQLConnector",
- "flat = python_moondb.backends.flat:LogConnector",
],
'console_scripts': [
'moon_db_manager = python_moondb.db_manager:run',
diff --git a/python_moondb/tests/unit_python/mock_keystone.py b/python_moondb/tests/unit_python/mock_keystone.py
index c0b26b88..3f262538 100644
--- a/python_moondb/tests/unit_python/mock_keystone.py
+++ b/python_moondb/tests/unit_python/mock_keystone.py
@@ -20,4 +20,14 @@ def register_keystone(m):
json={"users": [{
"id": "1111111111111"
}]}
- ) \ No newline at end of file
+ )
+ m.register_uri(
+ 'POST', 'http://keystone:5000/v3/projects/',
+ json={
+ "description": "test_project",
+ "domain_id": ['domain_id_1'],
+ "enabled": True,
+ "is_domain": False,
+ "name": 'project_1'
+ }
+ )
diff --git a/python_moondb/tests/unit_python/test_keystone.py b/python_moondb/tests/unit_python/test_keystone.py
new file mode 100644
index 00000000..134bec0d
--- /dev/null
+++ b/python_moondb/tests/unit_python/test_keystone.py
@@ -0,0 +1,53 @@
+import pytest
+
+
+def create_project(tenant_dict):
+ from python_moondb.core import KeystoneManager
+ return KeystoneManager.create_project(tenant_dict)
+
+
+def list_projects():
+ from python_moondb.core import KeystoneManager
+ return KeystoneManager.list_projects()
+
+
+def create_user(subject_dict):
+ from python_moondb.core import KeystoneManager
+ return KeystoneManager.create_user(subject_dict)
+
+
+def test_create_project():
+ tenant_dict = {
+ "description": "test_project",
+ "domain_id": ['domain_id_1'],
+ "enabled": True,
+ "is_domain": False,
+ "name": 'project_1'
+ }
+ project = create_project(tenant_dict)
+ assert project
+ assert project.get('name') == tenant_dict.get('name')
+
+
+def test_create_project_without_name():
+ tenant_dict = {
+ "description": "test_project",
+ "domain_id": ['domain_id_1'],
+ "enabled": True,
+ "is_domain": False,
+ }
+ with pytest.raises(Exception) as exception_info:
+ create_project(tenant_dict)
+ assert '400: Keystone project error' == str(exception_info.value)
+
+
+def test_create_user():
+ subject_dict = {
+ "password": "password",
+ "domain_id": ['domain_id_1'],
+ "enabled": True,
+ "project": 'test_project',
+ "name": 'user_id_1'
+ }
+ user = create_user(subject_dict)
+ assert user