projects
/
osm
/
MON.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge "[MON] Implements multithreading for message consumption"
[osm/MON.git]
/
osm_mon
/
test
/
OpenStack
/
integration
/
test_alarm_integration.py
diff --git
a/osm_mon/test/OpenStack/integration/test_alarm_integration.py
b/osm_mon/test/OpenStack/integration/test_alarm_integration.py
index
b04019b
..
bdd2033
100644
(file)
--- a/
osm_mon/test/OpenStack/integration/test_alarm_integration.py
+++ b/
osm_mon/test/OpenStack/integration/test_alarm_integration.py
@@
-33,7
+33,7
@@
from kafka.errors import KafkaError
from osm_mon.core.auth import AuthManager
from osm_mon.core.database import DatabaseManager, VimCredentials
from osm_mon.core.auth import AuthManager
from osm_mon.core.database import DatabaseManager, VimCredentials
-from osm_mon.core.message_bus.producer import KafkaProducer as
prod
+from osm_mon.core.message_bus.producer import KafkaProducer as
Producer
from osm_mon.plugins.OpenStack import response
from osm_mon.plugins.OpenStack.Aodh import alarming
from osm_mon.plugins.OpenStack.common import Common
from osm_mon.plugins.OpenStack import response
from osm_mon.plugins.OpenStack.Aodh import alarming
from osm_mon.plugins.OpenStack.common import Common
@@
-44,6
+44,10
@@
mock_creds = VimCredentials()
mock_creds.config = '{}'
mock_creds.config = '{}'
+@mock.patch.object(Producer, "publish_alarm_request", mock.Mock())
+@mock.patch.object(DatabaseManager, "save_alarm", mock.Mock())
+@mock.patch.object(Common, "get_auth_token", mock.Mock())
+@mock.patch.object(Common, "get_endpoint", mock.Mock())
class AlarmIntegrationTest(unittest.TestCase):
def setUp(self):
try:
class AlarmIntegrationTest(unittest.TestCase):
def setUp(self):
try:
@@
-63,21
+67,24
@@
class AlarmIntegrationTest(unittest.TestCase):
self.alarms = alarming.Alarming()
self.openstack_auth = Common()
self.alarms = alarming.Alarming()
self.openstack_auth = Common()
- @mock.patch.object(Common, "get_auth_token", mock.Mock())
- @mock.patch.object(Common, "get_endpoint", mock.Mock())
+ def tearDown(self):
+ self.producer.close()
+ self.req_consumer.close()
+
+ @mock.patch.object(Common, "perform_request")
@mock.patch.object(AuthManager, 'get_credentials')
@mock.patch.object(AuthManager, 'get_credentials')
- @mock.patch.object(prod, "update_alarm_response")
@mock.patch.object(alarming.Alarming, "update_alarm")
@mock.patch.object(response.OpenStack_Response, "generate_response")
@mock.patch.object(alarming.Alarming, "update_alarm")
@mock.patch.object(response.OpenStack_Response, "generate_response")
- def test_update_alarm_req(self, resp, update_alarm,
update_resp, get_creds
):
+ def test_update_alarm_req(self, resp, update_alarm,
get_creds, perf_req
):
"""Test Aodh update alarm request message from KafkaProducer."""
# Set-up message, producer and consumer for tests
"""Test Aodh update alarm request message from KafkaProducer."""
# Set-up message, producer and consumer for tests
- payload = {"alarm_update_request":
- {"correlation_id": 123,
- "alarm_uuid": "alarm_id",
- "metric_uuid": "metric_id"}}
+ payload = {"alarm_update_request": {"correlation_id": 123,
+ "alarm_uuid": "alarm_id",
+ "metric_uuid": "metric_id"}}
get_creds.return_value = mock_creds
get_creds.return_value = mock_creds
+ perf_req.return_value = type('obj', (object,), {'text': json.dumps({"metrics": {"cpu_util": "1"}})})
+ resp.return_value = ''
self.producer.send('alarm_request', key="update_alarm_request",
value=json.dumps(payload))
self.producer.send('alarm_request', key="update_alarm_request",
value=json.dumps(payload))
@@
-85,74
+92,71
@@
class AlarmIntegrationTest(unittest.TestCase):
for message in self.req_consumer:
if message.key == "update_alarm_request":
# Mock a valid alarm update
for message in self.req_consumer:
if message.key == "update_alarm_request":
# Mock a valid alarm update
- update_alarm.return_value = "alarm_id"
, True
+ update_alarm.return_value = "alarm_id"
self.alarms.alarming(message, 'test_id')
# A response message is generated and sent via MON's producer
resp.assert_called_with(
'update_alarm_response', alarm_id="alarm_id", cor_id=123,
status=True)
self.alarms.alarming(message, 'test_id')
# A response message is generated and sent via MON's producer
resp.assert_called_with(
'update_alarm_response', alarm_id="alarm_id", cor_id=123,
status=True)
- update_resp.assert_called_with(
- 'update_alarm_response', resp.return_value)
return
self.fail("No message received in consumer")
return
self.fail("No message received in consumer")
- @mock.patch.object(DatabaseManager, "save_alarm", mock.Mock())
- @mock.patch.object(Common, "get_auth_token", mock.Mock())
- @mock.patch.object(Common, "get_endpoint", mock.Mock())
+ @mock.patch.object(Common, "perform_request")
@mock.patch.object(AuthManager, 'get_credentials')
@mock.patch.object(AuthManager, 'get_credentials')
- @mock.patch.object(prod, "create_alarm_response")
@mock.patch.object(alarming.Alarming, "configure_alarm")
@mock.patch.object(response.OpenStack_Response, "generate_response")
@mock.patch.object(alarming.Alarming, "configure_alarm")
@mock.patch.object(response.OpenStack_Response, "generate_response")
- def test_create_alarm_req(self, resp, config_alarm,
create_resp, get_creds
):
+ def test_create_alarm_req(self, resp, config_alarm,
get_creds, perf_req
):
"""Test Aodh create alarm request message from KafkaProducer."""
# Set-up message, producer and consumer for tests
"""Test Aodh create alarm request message from KafkaProducer."""
# Set-up message, producer and consumer for tests
- payload = {"alarm_create_request":
- {"correlation_id": 123,
- "alarm_name": "my_alarm",
- "metric_name": "my_metric",
- "resource_uuid": "my_resource",
- "severity": "WARNING"}}
+ payload = {"alarm_create_request": {"correlation_id": 123,
+ "alarm_name": "my_alarm",
+ "metric_name": "cpu_utilization",
+ "resource_uuid": "my_resource",
+ "severity": "WARNING",
+ "threshold_value": 60,
+ "operation": "GT",
+ "vdu_name": "vdu",
+ "vnf_member_index": "1",
+ "ns_id": "1"}}
get_creds.return_value = mock_creds
get_creds.return_value = mock_creds
-
+ perf_req.return_value = type('obj', (object,), {'text': json.dumps({"metrics": {"cpu_util": "1"}})})
+ resp.return_value = ''
self.producer.send('alarm_request', key="create_alarm_request",
value=json.dumps(payload))
for message in self.req_consumer:
if message.key == "create_alarm_request":
# Mock a valid alarm creation
self.producer.send('alarm_request', key="create_alarm_request",
value=json.dumps(payload))
for message in self.req_consumer:
if message.key == "create_alarm_request":
# Mock a valid alarm creation
- config_alarm.return_value = "alarm_id"
, True
+ config_alarm.return_value = "alarm_id"
self.alarms.alarming(message, 'test_id')
# A response message is generated and sent via MON's produce
resp.assert_called_with(
'create_alarm_response', status=True, alarm_id="alarm_id",
cor_id=123)
self.alarms.alarming(message, 'test_id')
# A response message is generated and sent via MON's produce
resp.assert_called_with(
'create_alarm_response', status=True, alarm_id="alarm_id",
cor_id=123)
- create_resp.assert_called_with(
- 'create_alarm_response', resp.return_value)
return
self.fail("No message received in consumer")
return
self.fail("No message received in consumer")
- @mock.patch.object(Common, "get_auth_token", mock.Mock())
- @mock.patch.object(Common, "get_endpoint", mock.Mock())
+ @mock.patch.object(Common, "perform_request")
@mock.patch.object(AuthManager, 'get_credentials')
@mock.patch.object(AuthManager, 'get_credentials')
- @mock.patch.object(prod, "list_alarm_response")
@mock.patch.object(alarming.Alarming, "list_alarms")
@mock.patch.object(response.OpenStack_Response, "generate_response")
@mock.patch.object(alarming.Alarming, "list_alarms")
@mock.patch.object(response.OpenStack_Response, "generate_response")
- def test_list_alarm_req(self, resp, list_alarm,
list_resp, get_creds
):
+ def test_list_alarm_req(self, resp, list_alarm,
get_creds, perf_req
):
"""Test Aodh list alarm request message from KafkaProducer."""
# Set-up message, producer and consumer for tests
"""Test Aodh list alarm request message from KafkaProducer."""
# Set-up message, producer and consumer for tests
- payload = {"alarm_list_request":
- {"correlation_id": 123,
- "resource_uuid": "resource_id", }}
+ payload = {"alarm_list_request": {"correlation_id": 123,
+ "resource_uuid": "resource_id", }}
self.producer.send('alarm_request', key="list_alarm_request",
value=json.dumps(payload))
get_creds.return_value = mock_creds
self.producer.send('alarm_request', key="list_alarm_request",
value=json.dumps(payload))
get_creds.return_value = mock_creds
+ perf_req.return_value = type('obj', (object,), {'text': json.dumps([])})
+ resp.return_value = ''
for message in self.req_consumer:
if message.key == "list_alarm_request":
for message in self.req_consumer:
if message.key == "list_alarm_request":
@@
-164,30
+168,26
@@
class AlarmIntegrationTest(unittest.TestCase):
resp.assert_called_with(
'list_alarm_response', alarm_list=[],
cor_id=123)
resp.assert_called_with(
'list_alarm_response', alarm_list=[],
cor_id=123)
- # Producer attempts to send the response message back to the SO
- list_resp.assert_called_with(
- 'list_alarm_response', resp.return_value)
return
self.fail("No message received in consumer")
return
self.fail("No message received in consumer")
- @mock.patch.object(Common, "get_auth_token", mock.Mock())
- @mock.patch.object(Common, "get_endpoint", mock.Mock())
+ @mock.patch.object(Common, "perform_request")
@mock.patch.object(AuthManager, 'get_credentials')
@mock.patch.object(alarming.Alarming, "delete_alarm")
@mock.patch.object(AuthManager, 'get_credentials')
@mock.patch.object(alarming.Alarming, "delete_alarm")
- @mock.patch.object(prod, "delete_alarm_response")
@mock.patch.object(response.OpenStack_Response, "generate_response")
@mock.patch.object(response.OpenStack_Response, "generate_response")
- def test_delete_alarm_req(self, resp, del_
resp, del_alarm, get_creds
):
+ def test_delete_alarm_req(self, resp, del_
alarm, get_creds, perf_req
):
"""Test Aodh delete alarm request message from KafkaProducer."""
# Set-up message, producer and consumer for tests
"""Test Aodh delete alarm request message from KafkaProducer."""
# Set-up message, producer and consumer for tests
- payload = {"alarm_delete_request":
- {"correlation_id": 123,
- "alarm_uuid": "alarm_id", }}
+ payload = {"alarm_delete_request": {"correlation_id": 123,
+ "alarm_uuid": "alarm_id", }}
self.producer.send('alarm_request', key="delete_alarm_request",
value=json.dumps(payload))
get_creds.return_value = mock_creds
self.producer.send('alarm_request', key="delete_alarm_request",
value=json.dumps(payload))
get_creds.return_value = mock_creds
+ perf_req.return_value = type('obj', (object,), {'text': json.dumps([])})
+ resp.return_value = ''
for message in self.req_consumer:
if message.key == "delete_alarm_request":
for message in self.req_consumer:
if message.key == "delete_alarm_request":
@@
-196,31
+196,28
@@
class AlarmIntegrationTest(unittest.TestCase):
# Response message is generated and sent by MON's producer
resp.assert_called_with(
'delete_alarm_response', alarm_id="alarm_id",
# Response message is generated and sent by MON's producer
resp.assert_called_with(
'delete_alarm_response', alarm_id="alarm_id",
- status=del_alarm.return_value, cor_id=123)
- del_resp.assert_called_with(
- 'delete_alarm_response', resp.return_value)
+ status=True, cor_id=123)
return
self.fail("No message received in consumer")
return
self.fail("No message received in consumer")
- @mock.patch.object(Common, "get_auth_token", mock.Mock())
- @mock.patch.object(Common, "get_endpoint", mock.Mock())
@mock.patch.object(AuthManager, 'get_credentials')
@mock.patch.object(alarming.Alarming, "update_alarm_state")
def test_ack_alarm_req(self, ack_alarm, get_creds):
"""Test Aodh acknowledge alarm request message from KafkaProducer."""
# Set-up message, producer and consumer for tests
@mock.patch.object(AuthManager, 'get_credentials')
@mock.patch.object(alarming.Alarming, "update_alarm_state")
def test_ack_alarm_req(self, ack_alarm, get_creds):
"""Test Aodh acknowledge alarm request message from KafkaProducer."""
# Set-up message, producer and consumer for tests
- payload = {"ack_details":
- {"alarm_uuid": "alarm_id", }}
+ payload = {"ack_details": {"alarm_uuid": "alarm_id", }}
self.producer.send('alarm_request', key="acknowledge_alarm",
value=json.dumps(payload))
get_creds.return_value = mock_creds
self.producer.send('alarm_request', key="acknowledge_alarm",
value=json.dumps(payload))
get_creds.return_value = mock_creds
+ ack_alarm.return_value = True
for message in self.req_consumer:
if message.key == "acknowledge_alarm":
self.alarms.alarming(message, 'test_id')
for message in self.req_consumer:
if message.key == "acknowledge_alarm":
self.alarms.alarming(message, 'test_id')
+ ack_alarm.assert_called_with(mock.ANY, mock.ANY, 'alarm_id')
return
self.fail("No message received in consumer")
return
self.fail("No message received in consumer")