aboutsummaryrefslogtreecommitdiffstats
path: root/app/discover/events
diff options
context:
space:
mode:
Diffstat (limited to 'app/discover/events')
-rw-r--r--app/discover/events/event_interface_add.py7
-rw-r--r--app/discover/events/event_interface_delete.py3
-rw-r--r--app/discover/events/event_router_add.py2
-rw-r--r--app/discover/events/event_router_delete.py3
-rw-r--r--app/discover/events/event_router_update.py2
-rw-r--r--app/discover/events/event_subnet_add.py4
-rw-r--r--app/discover/events/event_subnet_update.py5
-rwxr-xr-xapp/discover/events/listeners/default_listener.py16
-rw-r--r--app/discover/events/listeners/listener_base.py14
9 files changed, 36 insertions, 20 deletions
diff --git a/app/discover/events/event_interface_add.py b/app/discover/events/event_interface_add.py
index 698559c..e54bedb 100644
--- a/app/discover/events/event_interface_add.py
+++ b/app/discover/events/event_interface_add.py
@@ -83,11 +83,12 @@ class EventInterfaceAdd(EventBase):
def handle(self, env, values):
interface = values['payload']['router_interface']
+ project_id = values['_context_project_id']
project = values['_context_project_name']
host_id = values["publisher_id"].replace("network.", "", 1)
port_id = interface['port_id']
subnet_id = interface['subnet_id']
- router_id = encode_router_id(host_id, interface['id'])
+ router_id = encode_router_id(interface['id'])
network_document = self.inv.get_by_field(env, "network", "subnet_ids",
subnet_id, get_single=True)
@@ -98,10 +99,10 @@ class EventInterfaceAdd(EventBase):
network_id = network_document['id']
# add router-interface port document.
- if len(ApiAccess.regions) == 0:
+ if not ApiAccess.regions:
fetcher = ApiFetchRegions()
fetcher.set_env(env)
- fetcher.get(None)
+ fetcher.get(project_id)
port_doc = EventSubnetAdd().add_port_document(env, port_id,
network_name=network_name)
diff --git a/app/discover/events/event_interface_delete.py b/app/discover/events/event_interface_delete.py
index b1df978..f4ec400 100644
--- a/app/discover/events/event_interface_delete.py
+++ b/app/discover/events/event_interface_delete.py
@@ -18,8 +18,7 @@ class EventInterfaceDelete(EventDeleteBase):
def handle(self, env, values):
interface = values['payload']['router_interface']
port_id = interface['port_id']
- host_id = values["publisher_id"].replace("network.", "", 1)
- router_id = encode_router_id(host_id, interface['id'])
+ router_id = encode_router_id(interface['id'])
# update router document
port_doc = self.inv.get_by_id(env, port_id)
diff --git a/app/discover/events/event_router_add.py b/app/discover/events/event_router_add.py
index 3c1c9e2..1fb2244 100644
--- a/app/discover/events/event_router_add.py
+++ b/app/discover/events/event_router_add.py
@@ -96,7 +96,7 @@ class EventRouterAdd(EventBase):
router = values['payload']['router']
host_id = values["publisher_id"].replace("network.", "", 1)
project_id = values['_context_project_id']
- router_id = encode_router_id(host_id, router['id'])
+ router_id = encode_router_id(router['id'])
host = self.inv.get_by_id(env, host_id)
fetcher = CliFetchHostVservice()
diff --git a/app/discover/events/event_router_delete.py b/app/discover/events/event_router_delete.py
index 65072d6..d0bd645 100644
--- a/app/discover/events/event_router_delete.py
+++ b/app/discover/events/event_router_delete.py
@@ -21,7 +21,6 @@ class EventRouterDelete(EventDeleteBase):
self.log.error("Publisher_id is not in event values. Aborting router delete")
return EventResult(result=False, retry=False)
- host_id = values['publisher_id'].replace('network.', '', 1)
if 'router_id' in payload:
router_id = payload['router_id']
elif 'id' in payload:
@@ -33,5 +32,5 @@ class EventRouterDelete(EventDeleteBase):
self.log.error("Router id is not in payload. Aborting router delete")
return EventResult(result=False, retry=False)
- router_full_id = encode_router_id(host_id, router_id)
+ router_full_id = encode_router_id(router_id)
return self.delete_handler(env, router_full_id, "vservice")
diff --git a/app/discover/events/event_router_update.py b/app/discover/events/event_router_update.py
index cfbbf58..b63b224 100644
--- a/app/discover/events/event_router_update.py
+++ b/app/discover/events/event_router_update.py
@@ -26,7 +26,7 @@ class EventRouterUpdate(EventBase):
host_id = values["publisher_id"].replace("network.", "", 1)
router_id = payload['id'] if 'id' in payload else router['id']
- router_full_id = encode_router_id(host_id, router_id)
+ router_full_id = encode_router_id(router_id)
router_doc = self.inv.get_by_id(env, router_full_id)
if not router_doc:
self.log.info("Router document not found, aborting router updating")
diff --git a/app/discover/events/event_subnet_add.py b/app/discover/events/event_subnet_add.py
index fcae5fd..4126e0c 100644
--- a/app/discover/events/event_subnet_add.py
+++ b/app/discover/events/event_subnet_add.py
@@ -131,10 +131,10 @@ class EventSubnetAdd(EventBase):
# Check DHCP enable, if true, scan network.
if subnet['enable_dhcp'] is True:
# update network
- if len(ApiAccess.regions) == 0:
+ if not ApiAccess.regions:
fetcher = ApiFetchRegions()
fetcher.set_env(env)
- fetcher.get(None)
+ fetcher.get(project_id)
self.log.info("add new subnet.")
host_id = notification["publisher_id"].replace("network.", "", 1)
diff --git a/app/discover/events/event_subnet_update.py b/app/discover/events/event_subnet_update.py
index 3529f0d..59b0afb 100644
--- a/app/discover/events/event_subnet_update.py
+++ b/app/discover/events/event_subnet_update.py
@@ -23,6 +23,7 @@ class EventSubnetUpdate(EventBase):
def handle(self, env, notification):
# check for network document.
subnet = notification['payload']['subnet']
+ project_id = notification['_context_project_id']
project = notification['_context_project_name']
host_id = notification['publisher_id'].replace('network.', '', 1)
subnet_id = subnet['id']
@@ -47,10 +48,10 @@ class EventSubnetUpdate(EventBase):
network_document['name'])
# make sure that self.regions is not empty.
- if len(ApiAccess.regions) == 0:
+ if not ApiAccess.regions:
fetcher = ApiFetchRegions()
fetcher.set_env(env)
- fetcher.get(None)
+ fetcher.get(project_id)
self.log.info("add port binding to DHCP server.")
port_id = DbFetchPort(). \
diff --git a/app/discover/events/listeners/default_listener.py b/app/discover/events/listeners/default_listener.py
index 54453a7..273f3e3 100755
--- a/app/discover/events/listeners/default_listener.py
+++ b/app/discover/events/listeners/default_listener.py
@@ -30,17 +30,19 @@ from monitoring.setup.monitoring_setup_manager import MonitoringSetupManager
from utils.constants import OperationalStatus, EnvironmentFeatures
from utils.inventory_mgr import InventoryMgr
from utils.logging.full_logger import FullLogger
+from utils.logging.logger import Logger
from utils.mongo_access import MongoAccess
-from utils.string_utils import stringify_datetime
from utils.util import SignalHandler, setup_args
class DefaultListener(ListenerBase, ConsumerMixin):
SOURCE_SYSTEM = "OpenStack"
-
COMMON_METADATA_FILE = "events.json"
+ LOG_FILENAME = "default_listener.log"
+ LOG_LEVEL = Logger.INFO
+
DEFAULTS = {
"env": "Mirantis-Liberty",
"mongo_config": "",
@@ -92,7 +94,7 @@ class DefaultListener(ListenerBase, ConsumerMixin):
return False, None
def process_task(self, body, message):
- received_timestamp = stringify_datetime(datetime.datetime.now())
+ received_timestamp = datetime.datetime.now()
processable, event_data = self._extract_event_data(body)
# If env listener can't process the message
# or it's not intended for env listener to handle,
@@ -100,7 +102,7 @@ class DefaultListener(ListenerBase, ConsumerMixin):
if processable and event_data["event_type"] in self.handler.handlers:
event_result = self.handle_event(event_data["event_type"],
event_data)
- finished_timestamp = stringify_datetime(datetime.datetime.now())
+ finished_timestamp = datetime.datetime.now()
self.save_message(message_body=event_data,
result=event_result,
started=received_timestamp,
@@ -143,8 +145,8 @@ class DefaultListener(ListenerBase, ConsumerMixin):
# 'Retry' flag specifies if the error is recoverable or not
# 'Retry' flag is checked only is 'result' is False
def handle_event(self, event_type: str, notification: dict) -> EventResult:
- print("Got notification.\nEvent_type: {}\nNotification:\n{}".
- format(event_type, notification))
+ self.log.error("Got notification.\nEvent_type: {}\nNotification:\n{}".
+ format(event_type, notification))
try:
result = self.handler.handle(event_name=event_type,
notification=notification)
@@ -154,7 +156,7 @@ class DefaultListener(ListenerBase, ConsumerMixin):
return EventResult(result=False, retry=False)
def save_message(self, message_body: dict, result: EventResult,
- started: str, finished: str):
+ started: datetime, finished: datetime):
try:
message = Message(
msg_id=message_body.get('message_id'),
diff --git a/app/discover/events/listeners/listener_base.py b/app/discover/events/listeners/listener_base.py
index 7052dc9..4ff4e57 100644
--- a/app/discover/events/listeners/listener_base.py
+++ b/app/discover/events/listeners/listener_base.py
@@ -7,11 +7,25 @@
# which accompanies this distribution, and is available at #
# http://www.apache.org/licenses/LICENSE-2.0 #
###############################################################################
+import os
from abc import ABC, abstractmethod
+from utils.logging.console_logger import ConsoleLogger
+from utils.logging.file_logger import FileLogger
+from utils.logging.logger import Logger
+
class ListenerBase(ABC):
+ LOG_FILENAME = "listener_base.log"
+ LOG_LEVEL = Logger.WARNING
+
+ def __init__(self):
+ super().__init__()
+ self.log_file = os.path.join(FileLogger.LOG_DIRECTORY,
+ self.LOG_FILENAME)
+ self.log = ConsoleLogger(level=Logger.INFO)
+
@staticmethod
@abstractmethod
def listen(self):