Merge "Fixed alarmAcknowledgedTime not being updated"
This commit is contained in:
commit
a21195575a
@ -109,7 +109,7 @@ Result:
|
||||
| Field | Value |
|
||||
+----------------------------+------------------------------------------------------------------------------------------------------+
|
||||
| Ack State | ACKNOWLEDGED |
|
||||
| Alarm Acknowledged Time | |
|
||||
| Alarm Acknowledged Time | 2022-08-30T12:23:52Z |
|
||||
| Alarm Changed Time | 2022-08-29T05:49:02Z |
|
||||
| Alarm Cleared Time | 2022-06-22T23:47:36Z |
|
||||
| Alarm Raised Time | 2022-08-29T05:48:56Z |
|
||||
|
@ -564,7 +564,7 @@ Here is an example of getting the specified alarm:
|
||||
| Field | Value |
|
||||
+----------------------------+------------------------------------------------------------------------------------------------------+
|
||||
| Ack State | ACKNOWLEDGED |
|
||||
| Alarm Acknowledged Time | |
|
||||
| Alarm Acknowledged Time | 2022-08-30T12:23:52Z |
|
||||
| Alarm Changed Time | 2022-08-31T07:47:05Z |
|
||||
| Alarm Cleared Time | 2022-06-22T23:47:36Z |
|
||||
| Alarm Raised Time | 2022-08-31T07:46:59Z |
|
||||
|
@ -13,6 +13,8 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import datetime
|
||||
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import uuidutils
|
||||
|
||||
@ -97,6 +99,11 @@ class VnfFmControllerV1(sol_wsgi.SolAPIController):
|
||||
raise sol_ex.AckStateInvalid()
|
||||
|
||||
alarm.ackState = ack_state
|
||||
if ack_state == "ACKNOWLEDGED":
|
||||
alarm.alarmAcknowledgedTime = datetime.datetime.now(
|
||||
datetime.timezone.utc)
|
||||
else:
|
||||
alarm.alarmAcknowledgedTime = None
|
||||
with context.session.begin(subtransactions=True):
|
||||
alarm.update(context)
|
||||
|
||||
|
@ -582,12 +582,18 @@ def alert_event_resolved(inst_id, pod_name):
|
||||
}
|
||||
|
||||
|
||||
def update_alarm():
|
||||
def update_alarm_acknowledged():
|
||||
return {
|
||||
"ackState": "ACKNOWLEDGED"
|
||||
}
|
||||
|
||||
|
||||
def update_alarm_unacknowledged():
|
||||
return {
|
||||
"ackState": "UNACKNOWLEDGED"
|
||||
}
|
||||
|
||||
|
||||
def terminate_vnf_min():
|
||||
# Omit except for required attributes
|
||||
# NOTE: Only the following cardinality attributes are set.
|
||||
|
@ -67,13 +67,15 @@ class VnfFmTest(base_v2.BaseVnfLcmKubernetesV2Test):
|
||||
- 6. Alert-Event (firing)
|
||||
- 7. FM-List-Alarm
|
||||
- 8. FM-Show-Alarm
|
||||
- 9. FM-Update-Alarm
|
||||
- 9. FM-Update-Alarm (acknowledged)
|
||||
- 10. FM-Show-Alarm
|
||||
- 11. Alert-Event (resolved)
|
||||
- 11. FM-Update-Alarm (unacknowledged)
|
||||
- 12. FM-Show-Alarm
|
||||
- 13. FM-Delete-Subscription: Delete subscription
|
||||
- 14. Terminate a VNF instance
|
||||
- 15. Delete a VNF instance
|
||||
- 13. Alert-Event (resolved)
|
||||
- 14. FM-Show-Alarm
|
||||
- 15. FM-Delete-Subscription: Delete subscription
|
||||
- 16. Terminate a VNF instance
|
||||
- 17. Delete a VNF instance
|
||||
"""
|
||||
|
||||
# 1. LCM-Create: Create a new VNF instance resource
|
||||
@ -172,11 +174,11 @@ class VnfFmTest(base_v2.BaseVnfLcmKubernetesV2Test):
|
||||
self.check_resp_headers_in_get(resp)
|
||||
self.check_resp_body(body, alarm_expected_attrs)
|
||||
|
||||
# 9. FM-Update-Alarm
|
||||
# 9. FM-Update-Alarm (acknowledged)
|
||||
expected_attrs = [
|
||||
'ackState'
|
||||
]
|
||||
update_req = paramgen.update_alarm()
|
||||
update_req = paramgen.update_alarm_acknowledged()
|
||||
resp, body = self.update_fm_alarm(alarm_id, update_req)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
self.check_resp_headers_in_delete(resp)
|
||||
@ -188,6 +190,7 @@ class VnfFmTest(base_v2.BaseVnfLcmKubernetesV2Test):
|
||||
'managedObjectId',
|
||||
'alarmRaisedTime',
|
||||
'ackState',
|
||||
'alarmAcknowledgedTime',
|
||||
'perceivedSeverity',
|
||||
'eventTime',
|
||||
'eventType',
|
||||
@ -200,25 +203,35 @@ class VnfFmTest(base_v2.BaseVnfLcmKubernetesV2Test):
|
||||
self.check_resp_headers_in_get(resp)
|
||||
self.check_resp_body(body, expected_attrs)
|
||||
|
||||
# 11. Alert-Event (resolved)
|
||||
# 11. FM-Update-Alarm (unacknowledged)
|
||||
update_req = paramgen.update_alarm_unacknowledged()
|
||||
resp, _ = self.update_fm_alarm(alarm_id, update_req)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
|
||||
# 12. FM-Show-Alarm
|
||||
resp, body = self.show_fm_alarm(alarm_id)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
self.assertIsNone(body.get('alarmAcknowledgedTime'))
|
||||
|
||||
# 13. Alert-Event (resolved)
|
||||
alert = paramgen.alert_event_resolved(inst_id, pod_name)
|
||||
resp, body = self.create_fm_alarm(alert)
|
||||
self.assertEqual(204, resp.status_code)
|
||||
time.sleep(WAIT_NOTIFICATION_TIME)
|
||||
self._check_notification(callback_url, 'AlarmClearedNotification')
|
||||
|
||||
# 12. FM-Show-Alarm
|
||||
# 14. FM-Show-Alarm
|
||||
resp, body = self.show_fm_alarm(alarm_id)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
self.check_resp_headers_in_get(resp)
|
||||
self.check_resp_body(body, alarm_expected_attrs)
|
||||
|
||||
# 13. FM-Delete-Subscription: Delete subscription
|
||||
# 15. FM-Delete-Subscription: Delete subscription
|
||||
resp, body = self.delete_fm_subscription(sub_id)
|
||||
self.assertEqual(204, resp.status_code)
|
||||
self.check_resp_headers_in_delete(resp)
|
||||
|
||||
# 14. LCM-Terminate: Terminate VNF
|
||||
# 16. LCM-Terminate: Terminate VNF
|
||||
terminate_req = paramgen.terminate_vnf_min()
|
||||
resp, body = self.terminate_vnf_instance(inst_id, terminate_req)
|
||||
self.assertEqual(202, resp.status_code)
|
||||
@ -232,7 +245,7 @@ class VnfFmTest(base_v2.BaseVnfLcmKubernetesV2Test):
|
||||
self.assertEqual(fields.VnfInstanceState.NOT_INSTANTIATED,
|
||||
body['instantiationState'])
|
||||
|
||||
# 15. LCM-Delete: Delete a VNF instance
|
||||
# 17. LCM-Delete: Delete a VNF instance
|
||||
resp, body = self.exec_lcm_operation(self.delete_vnf_instance, inst_id)
|
||||
self.assertEqual(204, resp.status_code)
|
||||
|
||||
@ -261,7 +274,7 @@ class VnfFmTest(base_v2.BaseVnfLcmKubernetesV2Test):
|
||||
- 6. Alert-Event (firing)
|
||||
- 7. FM-List-Alarm
|
||||
- 8. FM-Show-Alarm
|
||||
- 9. FM-Update-Alarm
|
||||
- 9. FM-Update-Alarm (acknowledged)
|
||||
- 10. FM-Show-Alarm
|
||||
- 11. Alert-Event (resolved)
|
||||
- 12. FM-Show-Alarm
|
||||
@ -367,11 +380,11 @@ class VnfFmTest(base_v2.BaseVnfLcmKubernetesV2Test):
|
||||
self.check_resp_headers_in_get(resp)
|
||||
self.check_resp_body(body, alarm_expected_attrs)
|
||||
|
||||
# 9. FM-Update-Alarm
|
||||
# 9. FM-Update-Alarm (acknowledged)
|
||||
expected_attrs = [
|
||||
'ackState'
|
||||
]
|
||||
update_req = paramgen.update_alarm()
|
||||
update_req = paramgen.update_alarm_acknowledged()
|
||||
resp, body = self.update_fm_alarm(alarm_id, update_req)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
self.check_resp_headers_in_delete(resp)
|
||||
|
@ -106,6 +106,11 @@ class TestVnffmV1(base.BaseTestCase):
|
||||
self.assertEqual('1.3.0', result.headers['version'])
|
||||
self.assertEqual(body, result.body)
|
||||
|
||||
body = {"ackState": "UNACKNOWLEDGED"}
|
||||
result = self.controller.update(
|
||||
request=self.request, id=SAMPLE_ALARM_ID, body=body)
|
||||
self.assertEqual(body, result.body)
|
||||
|
||||
@mock.patch.object(alarm_utils, 'get_alarm')
|
||||
def test_update_invalid_body(self, mock_alarm):
|
||||
mock_alarm.return_value = objects.AlarmV1.from_dict(
|
||||
|
Loading…
x
Reference in New Issue
Block a user