fault/fm-api/source/fm_api_test.py
Al Bailey e5a8ba7ff4 Tox and Zuul cleanup for python3.9
Added in the following tox targets for fm-rest-api:
 - bandit
 - flake8 / pep8
 - pylint (suppressing most of the codes)

All the tox targets run on python3
The test-requirements.txt have been updated
The StarlingX Debian upper constraints are utilized.
The spec-lint (rpm) job is removed from Zuul.

Zuul runs pylint for sub directories
Bandit exclusions are updated.

Included a change to a .py file to trigger
the bandit zuul job.

Test Plan (for fm-rest-api)
  PASS: tox -e bandit
  PASS: tox -e coverage
  PASS: tox -e flake8
  PASS: tox -e pylint

Story: 2010531
Task: 47575
Signed-off-by: Al Bailey <al.bailey@windriver.com>
Change-Id: I7ecaf1c90495b283c26e02e3b481bfe4c77c3939
2023-03-02 19:32:25 +00:00

108 lines
3.4 KiB
Python

# -*- encoding: utf-8 -*-
#
# Copyright (c) 2014-2022 Wind River Systems, Inc.
#
# Author:
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import sys
from fm_api import fm_api
from fm_api import constants
ser = fm_api.FaultAPIs()
def print_alarm(alarm):
alarm_str = "alarm_id: " + alarm.alarm_id + ", "
alarm_str += "uuid: " + alarm.uuid + ", "
alarm_str += "alarm_type: " + alarm.alarm_type + "\n"
alarm_str += "state: " + alarm.alarm_state + ", "
alarm_str += "severity: " + alarm.severity + ", "
alarm_str += "entity_type_id: " + alarm.entity_type_id + ", "
alarm_str += "timestamp: " + alarm.timestamp + "\n"
alarm_str += "entity_instance_id: " + alarm.entity_instance_id + ", "
alarm_str += "probable cause:" + alarm.probable_cause + "\n"
print(alarm_str)
def create():
fault = fm_api.Fault(alarm_id=constants.FM_ALARM_ID_VM_FAILED,
alarm_state=constants.FM_ALARM_STATE_SET,
entity_type_id=constants.FM_ENTITY_TYPE_INSTANCE,
entity_instance_id=constants.FM_ENTITY_TYPE_INSTANCE + '=' + 'a4e4cdb7-2ee6-4818-84c8-5310fcd67b5d',
severity=constants.FM_ALARM_SEVERITY_CRITICAL,
reason_text="Unknown",
alarm_type=constants.FM_ALARM_TYPE_5,
probable_cause=constants.ALARM_PROBABLE_CAUSE_8,
proposed_repair_action=None,
service_affecting=False,
suppression=False)
uuid = ser.set_fault(fault)
print(uuid)
def delete(alarm_id, instance_id):
ret = ser.clear_fault(alarm_id, instance_id)
print("Delete fault return %s" % str(ret))
def del_all(instance_id):
ret = ser.clear_all(instance_id)
print("Delete faults return: %s" % str(ret))
def get(alarm_id, instance_id):
a = ser.get_fault(alarm_id, instance_id)
if a is not None:
print_alarm(a)
else:
print("Alarm not found")
def get_all(instance_id):
ll = ser.get_faults(instance_id)
if ll is not None:
print("Total alarm returned: %d\n"
% len(ll))
for i in ll:
print_alarm(i)
else:
print("No alarm returned")
def get_list(alarm_id):
ll = ser.get_faults_by_id(alarm_id)
if ll is not None:
print("Total alarm returned: %d\n"
% len(ll))
for i in ll:
print_alarm(i)
else:
print("No alarm returned")
if __name__ == "__main__":
if sys.argv[1] == "create":
sys.exit(create())
elif sys.argv[1] == "del":
sys.exit(delete(sys.argv[2], sys.argv[3]))
elif sys.argv[1] == "get":
sys.exit(get(sys.argv[2], sys.argv[3]))
elif sys.argv[1] == "get_all":
sys.exit(get_all(sys.argv[2]))
elif sys.argv[1] == "del_all":
sys.exit(del_all(sys.argv[2]))
elif sys.argv[1] == "get_list":
sys.exit(get_list(sys.argv[2]))