\r
RUN pip install -e /src\r
\r
+COPY configs/ /etc/o2/\r
+\r
COPY tests/ /tests/\r
\r
RUN apt-get install -y procps vim\r
COPY o2common/ /src/o2common/\r
COPY setup.py /src/\r
\r
+COPY configs/ /etc/o2/\r
+\r
# RUN pip install -e /src\r
\r
COPY tests/ /tests/\r
--- /dev/null
+# Copyright (C) 2021 Wind River Systems, Inc.\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+# http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+version: 1\r
+disable_existing_loggers: False\r
+\r
+loggers:\r
+ root:\r
+ handlers: [console_handler, file_handler]\r
+ level: "WARNING"\r
+ propagate: False\r
+ o2common:\r
+ handlers: [console_handler, file_handler]\r
+ level: "WARNING"\r
+ propagate: False\r
+ o2ims:\r
+ handlers: [console_handler, file_handler]\r
+ level: "WARNING"\r
+ propagate: False\r
+ o2dms:\r
+ handlers: [console_handler, file_handler]\r
+ level: "WARNING"\r
+ propagate: False\r
+handlers:\r
+ console_handler:\r
+ level: "DEBUG"\r
+ class: "logging.StreamHandler"\r
+ formatter: "standard"\r
+ file_handler:\r
+ level: "DEBUG"\r
+ class: "logging.handlers.RotatingFileHandler"\r
+ filename: "/var/log/o2.log"\r
+ formatter: "standard"\r
+ maxBytes: 52428800\r
+ backupCount: 10\r
+formatters:\r
+ standard:\r
+ format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s"\r
- OS_AUTH_URL=${OS_AUTH_URL}
- OS_USERNAME=${OS_USERNAME}
- OS_PASSWORD=${OS_PASSWORD}
+ - LOGGING_CONFIG_LEVEL=DEBUG
volumes:
+ - ./configs:/configs
- ./o2ims:/o2ims
- ./o2dms:/o2dms
- ./o2common:/o2common
- ./tests:/tests
entrypoint:
- /bin/sh
- - /o2ims/entrypoints/o2ims-redis-entry.sh
+ - /tests/o2ims-redis-entry.sh
api:
image: o2imsdms-image
- OS_AUTH_URL=${OS_AUTH_URL}
- OS_USERNAME=${OS_USERNAME}
- OS_PASSWORD=${OS_PASSWORD}
+ - LOGGING_CONFIG_LEVEL=DEBUG
volumes:
+ - ./configs:/configs
- ./o2ims:/o2ims
- ./o2dms:/o2dms
- ./o2common:/o2common
- OS_AUTH_URL=${OS_AUTH_URL}
- OS_USERNAME=${OS_USERNAME}
- OS_PASSWORD=${OS_PASSWORD}
+ - LOGGING_CONFIG_LEVEL=DEBUG
volumes:
+ - ./configs:/configs
- ./o2ims:/o2ims
- ./o2dms:/o2dms
- ./o2common:/o2common
- ./tests:/tests
entrypoint:
- /bin/sh
- - /o2ims/entrypoints/o2ims-watcher-entry.sh
+ - /tests/o2ims-watcher-entry.sh
postgres:
image: postgres:9.6
--- /dev/null
+# Copyright (C) 2021 Wind River Systems, Inc.\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+# http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
--- /dev/null
+# Copyright (C) 2021 Wind River Systems, Inc.\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+# http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+import logging\r
+import logging.config\r
+import logging.handlers\r
+import os\r
+import yaml\r
+\r
+\r
+def get_logger(name=None):\r
+ CONFIG_FILE = os.environ.get(\r
+ "LOGGING_CONFIG_FILE", "/etc/o2/log.yaml")\r
+ if os.path.exists(CONFIG_FILE):\r
+ with open(file=CONFIG_FILE, mode='r', encoding="utf-8") as file:\r
+ config_yaml = yaml.load(stream=file, Loader=yaml.FullLoader)\r
+ logging.config.dictConfig(config=config_yaml)\r
+\r
+ logger = logging.getLogger(name)\r
+\r
+ # override logging level\r
+ LOGGING_CONFIG_LEVEL = os.environ.get("LOGGING_CONFIG_LEVEL", None)\r
+ if LOGGING_CONFIG_LEVEL:\r
+ logger.setLevel(LOGGING_CONFIG_LEVEL)\r
+ return logger\r
\r
# from dcmanagerclient.api import client\r
from cgtsclient.client import get_client\r
-import logging\r
-logger = logging.getLogger(__name__)\r
+\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
\r
class StxSaOcloudClient(BaseClient):\r
# limitations under the License.\r
\r
# from datetime import datetime\r
-import logging\r
-\r
from sqlalchemy import (\r
Table,\r
MetaData,\r
from o2ims.adapter.unit_of_work import SqlAlchemyUnitOfWork\r
from o2ims.domain.resource_type import ResourceTypeEnum\r
\r
-logger = logging.getLogger(__name__)\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
metadata = MetaData()\r
\r
# See the License for the specific language governing permissions and\r
# limitations under the License.\r
\r
-import logging\r
-\r
from sqlalchemy import (\r
Table,\r
MetaData,\r
\r
from o2ims.domain import ocloud as ocloudModel\r
\r
-logger = logging.getLogger(__name__)\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
metadata = MetaData()\r
\r
# limitations under the License.
import json
-import logging
from dataclasses import asdict
import redis
from o2ims import config
from o2ims.domain import events
-logger = logging.getLogger(__name__)
+from o2common.helper import o2logging
+logger = o2logging.get_logger(__name__)
+
r = redis.Redis(**config.get_redis_host_and_port())
def publish(channel, event: events.Event):
- logging.info("publishing: channel=%s, event=%s", channel, event)
+ logger.info("publishing: channel=%s, event=%s", channel, event)
r.publish(channel, json.dumps(asdict(event)))
import os
import sys
-import logging
+
+from o2common.helper import o2logging
+logger = o2logging.get_logger(__name__)
def get_postgres_uri():
# project_domain_id=os.environ['OS_PROJECT_DOMAIN_ID']
# )
except KeyError:
- logging.error('Please source your RC file before execution, '
- 'e.g.: `source ~/downloads/admin-rc.sh`')
+ logger.error('Please source your RC file before execution, '
+ 'e.g.: `source ~/downloads/admin-rc.sh`')
sys.exit(1)
os_client_args = {}
import json\r
\r
from o2ims.domain.resource_type import ResourceTypeEnum\r
-import logging\r
-logger = logging.getLogger(__name__)\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
\r
class MismatchedModel(Exception):\r
# limitations under the License.
import json
-import logging
import redis
from o2ims import bootstrap, config
from o2ims.domain import commands
-logger = logging.getLogger(__name__)
+from o2common.helper import o2logging
+logger = o2logging.get_logger(__name__)
r = redis.Redis(**config.get_redis_host_and_port())
# from o2ims import config\r
# import redis\r
\r
-import logging\r
-logger = logging.getLogger(__name__)\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
# r = redis.Redis(**config.get_redis_host_and_port())\r
\r
# pylint: disable=broad-except, attribute-defined-outside-init
from __future__ import annotations
-import logging
from typing import Callable, Dict, List, Union, Type, TYPE_CHECKING
from o2ims.domain import commands, events
if TYPE_CHECKING:
from . import unit_of_work
-logger = logging.getLogger(__name__)
+from o2common.helper import o2logging
+logger = o2logging.get_logger(__name__)
Message = Union[commands.Command, events.Event]
from o2ims.domain.stx_object import StxGenericModel\r
from o2ims.service.unit_of_work import AbstractUnitOfWork\r
\r
-import logging\r
-logger = logging.getLogger(__name__)\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
\r
class BaseWatcher(object):\r
from o2ims.service.unit_of_work import AbstractUnitOfWork\r
from o2ims.service.watcher.base import BaseWatcher\r
\r
-import logging\r
-logger = logging.getLogger(__name__)\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
\r
class InvalidOcloudState(Exception):\r
from o2ims.service.unit_of_work import AbstractUnitOfWork\r
from o2ims.service.watcher.resource_watcher import ResourceWatcher\r
\r
-import logging\r
-logger = logging.getLogger(__name__)\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
\r
class PServerCpuWatcher(ResourceWatcher):\r
from o2ims.service.unit_of_work import AbstractUnitOfWork\r
from o2ims.service.watcher.resource_watcher import ResourceWatcher\r
\r
-import logging\r
-logger = logging.getLogger(__name__)\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
\r
class PServerWatcher(ResourceWatcher):\r
from o2ims.service.unit_of_work import AbstractUnitOfWork\r
from o2ims.service.watcher.base import BaseWatcher\r
\r
-import logging\r
-logger = logging.getLogger(__name__)\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
\r
class ResourceWatcher(BaseWatcher):\r
from o2ims.service.unit_of_work import AbstractUnitOfWork\r
from o2ims.service.watcher.base import BaseWatcher\r
\r
-import logging\r
-logger = logging.getLogger(__name__)\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
\r
class ResourcePoolWatcher(BaseWatcher):\r
import sched\r
from o2ims.service.watcher.base import WatcherTree\r
\r
-import logging\r
-logger = logging.getLogger(__name__)\r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
\r
\r
class PollWorker(object):\r
redis\r
psycopg2-binary\r
cotyledon\r
+PyYAML>=5.4.1\r
+ruamel.yaml>=0.17.1\r
\r
Cython>=3.0a1\r
\r
# pip install -e /src
# python /o2ims/entrypoints/resource_watcher.py
+cp -r /configs/* /etc/o2/
+cp -r /o2common/* /src/o2common
cp -r /o2ims/* /src/o2ims
+cp -r /o2dms/* /src/o2dms
pip install -e /src
python /o2ims/entrypoints/redis_eventconsumer.py
# pip install -e /src
# python /o2ims/entrypoints/resource_watcher.py
+cp -r /configs/* /etc/o2/
+cp -r /o2common/* /src/o2common
cp -r /o2ims/* /src/o2ims
+cp -r /o2dms/* /src/o2dms
pip install -e /src
python /o2ims/entrypoints/resource_watcher.py