Update to Python 3.10 and Ubuntu 22.04
Removal of deprecated event loop
Updated pip requirements
Change-Id: I96a895d8f9fa8db89e6bbfd6f009d4f56deaa418
Signed-off-by: Mark Beierl <mark.beierl@canonical.com>
diff --git a/osm_mon/cmd/mon_server.py b/osm_mon/cmd/mon_server.py
index 7d676d7..c4fa08b 100644
--- a/osm_mon/cmd/mon_server.py
+++ b/osm_mon/cmd/mon_server.py
@@ -22,7 +22,6 @@
# contact: bdiaz@whitestack.com or glavado@whitestack.com
##
import argparse
-import asyncio
import logging
import sys
@@ -52,9 +51,8 @@
log.info("Starting MON Server...")
log.debug("Config: %s", cfg.conf)
log.info("Initializing database...")
- loop = asyncio.get_event_loop()
try:
- server = Server(cfg, loop)
+ server = Server(cfg)
server.run()
except Exception as e:
log.error("Failed to start MON Server")
diff --git a/osm_mon/collector/vnf_collectors/juju.py b/osm_mon/collector/vnf_collectors/juju.py
index cb924a6..fbc6bc2 100644
--- a/osm_mon/collector/vnf_collectors/juju.py
+++ b/osm_mon/collector/vnf_collectors/juju.py
@@ -39,7 +39,6 @@
def __init__(self, config: Config):
super().__init__(config)
self.common_db = CommonDbClient(config)
- self.loop = asyncio.get_event_loop()
# host = config.get("vca", "host")
# port = config.get("vca", "port") if "port" in config.conf["vca"] else 17070
@@ -60,7 +59,6 @@
db=self.common_db.common_db,
fs=object(),
log=log,
- loop=self.loop,
on_update_db=None,
)
@@ -110,7 +108,7 @@
if vca_deployment_info.get("model") and vca_deployment_info.get(
"application"
):
- measures = self.loop.run_until_complete(
+ measures = asyncio.run(
self.n2vc.get_metrics(
vca_deployment_info["model"],
vca_deployment_info["application"],
diff --git a/osm_mon/core/message_bus_client.py b/osm_mon/core/message_bus_client.py
index 7d194c3..8eee83a 100644
--- a/osm_mon/core/message_bus_client.py
+++ b/osm_mon/core/message_bus_client.py
@@ -21,7 +21,6 @@
# For those usages not covered by the Apache License, Version 2.0 please
# contact: bdiaz@whitestack.com or glavado@whitestack.com
##
-import asyncio
from typing import List, Callable
from osm_common import msgkafka, msglocal
@@ -30,7 +29,7 @@
class MessageBusClient:
- def __init__(self, config: Config, loop=None):
+ def __init__(self, config: Config):
if config.get("message", "driver") == "local":
self.msg_bus = msglocal.MsgLocal()
elif config.get("message", "driver") == "kafka":
@@ -40,9 +39,6 @@
"Unknown message bug driver {}".format(config.get("section", "driver"))
)
self.msg_bus.connect(config.get("message"))
- if not loop:
- loop = asyncio.get_event_loop()
- self.loop = loop
async def aioread(self, topics: List[str], callback: Callable = None, **kwargs):
"""
@@ -52,7 +48,7 @@
:param kwargs: Keyword arguments to be passed to callback function.
:return: None
"""
- await self.msg_bus.aioread(topics, self.loop, aiocallback=callback, **kwargs)
+ await self.msg_bus.aioread(topics, aiocallback=callback, **kwargs)
async def aiowrite(self, topic: str, key: str, msg: dict):
"""
@@ -62,7 +58,7 @@
:param msg: Dictionary containing message to be written.
:return: None
"""
- await self.msg_bus.aiowrite(topic, key, msg, self.loop)
+ await self.msg_bus.aiowrite(topic, key, msg)
async def aioread_once(self, topic: str):
"""
@@ -70,5 +66,5 @@
:param topic: topic to retrieve message from.
:return: tuple(topic, key, message)
"""
- result = await self.msg_bus.aioread(topic, self.loop)
+ result = await self.msg_bus.aioread(topic)
return result
diff --git a/osm_mon/dashboarder/dashboarder.py b/osm_mon/dashboarder/dashboarder.py
index f3bd97e..1d523cf 100644
--- a/osm_mon/dashboarder/dashboarder.py
+++ b/osm_mon/dashboarder/dashboarder.py
@@ -35,17 +35,14 @@
class Dashboarder:
- def __init__(self, config: Config, loop=None):
+ def __init__(self, config: Config):
self.conf = config
self.service = DashboarderService(config)
- if not loop:
- loop = asyncio.get_event_loop()
- self.loop = loop
self.msg_bus = MessageBusClient(config)
# run consumer for grafana user management
def run(self):
- self.loop.run_until_complete(self.start())
+ asyncio.run(self.start())
async def start(self, wait_time=5):
topics = ["users", "project"]
diff --git a/osm_mon/evaluator/evaluator.py b/osm_mon/evaluator/evaluator.py
index 732f8ac..61b788a 100644
--- a/osm_mon/evaluator/evaluator.py
+++ b/osm_mon/evaluator/evaluator.py
@@ -35,11 +35,8 @@
class Evaluator:
- def __init__(self, config: Config, loop=None):
+ def __init__(self, config: Config):
self.conf = config
- if not loop:
- loop = asyncio.get_event_loop()
- self.loop = loop
self.service = EvaluatorService(config)
self.msg_bus = MessageBusClient(config)
@@ -69,7 +66,7 @@
log.debug("_notify_alarm")
resp_message = self._build_alarm_response(alarm, status)
log.info("Sent alarm notification: %s", resp_message)
- self.loop.run_until_complete(
+ asyncio.run(
self.msg_bus.aiowrite("alarm_response", "notify_alarm", resp_message)
)
evaluator_service = EvaluatorService(self.conf)
diff --git a/osm_mon/server/server.py b/osm_mon/server/server.py
index f05cdec..bb8f0e8 100755
--- a/osm_mon/server/server.py
+++ b/osm_mon/server/server.py
@@ -37,17 +37,14 @@
class Server:
- def __init__(self, config: Config, loop=None):
+ def __init__(self, config: Config):
self.conf = config
- if not loop:
- loop = asyncio.get_event_loop()
- self.loop = loop
self.msg_bus = MessageBusClient(config)
self.service = ServerService(config)
self.service.populate_prometheus()
def run(self):
- self.loop.run_until_complete(self.start())
+ asyncio.run(self.start())
async def start(self, wait_time=5):
topics = ["alarm_request"]
diff --git a/osm_mon/tests/unit/core/test_message_bus_client.py b/osm_mon/tests/unit/core/test_message_bus_client.py
index 126eb9f..b35c6c1 100644
--- a/osm_mon/tests/unit/core/test_message_bus_client.py
+++ b/osm_mon/tests/unit/core/test_message_bus_client.py
@@ -34,39 +34,38 @@
def setUp(self):
self.config = Config()
self.config.set("message", "driver", "kafka")
- self.loop = asyncio.new_event_loop()
@mock.patch.object(MsgKafka, "aioread")
def test_aioread(self, aioread):
async def mock_callback():
pass
- future = asyncio.Future(loop=self.loop)
+ future = asyncio.Future(loop=asyncio.new_event_loop())
future.set_result("mock")
aioread.return_value = future
- msg_bus = MessageBusClient(self.config, loop=self.loop)
+ msg_bus = MessageBusClient(self.config)
topic = "test_topic"
- self.loop.run_until_complete(msg_bus.aioread([topic], mock_callback))
- aioread.assert_called_with(["test_topic"], self.loop, aiocallback=mock_callback)
+ asyncio.run(msg_bus.aioread([topic], mock_callback))
+ aioread.assert_called_with(["test_topic"], aiocallback=mock_callback)
@mock.patch.object(MsgKafka, "aiowrite")
def test_aiowrite(self, aiowrite):
- future = asyncio.Future(loop=self.loop)
+ future = asyncio.Future(loop=asyncio.new_event_loop())
future.set_result("mock")
aiowrite.return_value = future
- msg_bus = MessageBusClient(self.config, loop=self.loop)
+ msg_bus = MessageBusClient(self.config)
topic = "test_topic"
key = "test_key"
msg = {"test": "test_msg"}
- self.loop.run_until_complete(msg_bus.aiowrite(topic, key, msg))
- aiowrite.assert_called_with(topic, key, msg, self.loop)
+ asyncio.run(msg_bus.aiowrite(topic, key, msg))
+ aiowrite.assert_called_with(topic, key, msg)
@mock.patch.object(MsgKafka, "aioread")
def test_aioread_once(self, aioread):
- future = asyncio.Future(loop=self.loop)
+ future = asyncio.Future(loop=asyncio.new_event_loop())
future.set_result("mock")
aioread.return_value = future
- msg_bus = MessageBusClient(self.config, loop=self.loop)
+ msg_bus = MessageBusClient(self.config)
topic = "test_topic"
- self.loop.run_until_complete(msg_bus.aioread_once(topic))
- aioread.assert_called_with("test_topic", self.loop)
+ asyncio.run(msg_bus.aioread_once(topic))
+ aioread.assert_called_with("test_topic")