Changes to support new alarm counts api in vitrage

This change is to support the new api as introduced by the
alarm-counts-api blueprint.
- There is a new cli added as well to expose the new api:
  vitrage alarm count
- The bash completion file was also updated

Change-Id: I47b5b2cbb32c742ca15478ee294d341c0137e0b5
Depends-On: I6061b63c068580dcd25df5c624d9b3bd88f30cca
Implements: blueprint alarm-counts-api
Signed-off-by: Tyler Smith <tyler.smith@windriver.com>
This commit is contained in:
Tyler Smith 2017-08-02 16:52:13 -04:00
parent 76d348e182
commit 86f34ebb30
4 changed files with 40 additions and 1 deletions

3
tools/vitrage.bash_completion Normal file → Executable file
View File

@ -6,8 +6,9 @@ _vitrage()
# Command data:
cmds='alarm complete event healthcheck help rca resource template topology'
cmds_alarm='list'
cmds_alarm='list count'
cmds_alarm_list='-h --help -f --format -c --column --max-width --print-empty --noindent --quote --all-tenants'
cmds_alarm_count='-h --help -f --format -c --column --max-width --print-empty --noindent --quote --all-tenants'
cmds_complete='-h --help --name --shell'
cmds_event='post'
cmds_event_post='-h --help --type --time --details'

1
vitrageclient/shell.py Normal file → Executable file
View File

@ -51,6 +51,7 @@ class VitrageCommandManager(commandmanager.CommandManager):
'resource show': resource.ResourceShow,
'resource list': resource.ResourceList,
'alarm list': alarm.AlarmList,
'alarm count': alarm.AlarmCount,
'rca show': rca.RcaShow,
'template validate': template.TemplateValidate,
'template list': template.TemplateList,

8
vitrageclient/v1/alarm.py Normal file → Executable file
View File

@ -26,3 +26,11 @@ class Alarm(object):
params = dict(vitrage_id=vitrage_id,
all_tenants=all_tenants)
return self.api.get(self.url, params=params).json()
def count(self, all_tenants=False):
"""Get a count of all alarms present
:param all_tenants: should return all tenants alarms
"""
params = dict(all_tenants=all_tenants)
return self.api.get(self.url + 'count/', params=params).json()

29
vitrageclient/v1/cli/alarm.py Normal file → Executable file
View File

@ -11,6 +11,7 @@
# under the License.
from cliff import lister
from cliff import show
from vitrageclient.common import utils
@ -49,3 +50,31 @@ class AlarmList(lister.Lister):
'vitrage_aggregated_severity',
'vitrage_operational_severity',
'update_timestamp'), alarms)
# noinspection PyAbstractClass
class AlarmCount(show.ShowOne):
"""Show a count of all alarms"""
def get_parser(self, prog_name):
parser = super(AlarmCount, self).get_parser(prog_name)
parser.add_argument('--all-tenants',
default=False,
dest='all_tenants',
action='store_true',
help='Shows counts for alarms of all '
'the tenants')
return parser
@property
def formatter_default(self):
return 'json'
def take_action(self, parsed_args):
all_tenants = parsed_args.all_tenants
counts = utils.get_client(self).alarm.count(
all_tenants=all_tenants)
return self.dict2columns(counts)