summaryrefslogtreecommitdiff
path: root/ceilometerclient
diff options
context:
space:
mode:
Diffstat (limited to 'ceilometerclient')
-rw-r--r--ceilometerclient/v2/alarms.py33
-rw-r--r--ceilometerclient/v2/client.py2
-rw-r--r--ceilometerclient/v2/shell.py19
3 files changed, 53 insertions, 1 deletions
diff --git a/ceilometerclient/v2/alarms.py b/ceilometerclient/v2/alarms.py
new file mode 100644
index 0000000..2a1f8b7
--- /dev/null
+++ b/ceilometerclient/v2/alarms.py
@@ -0,0 +1,33 @@
+# -*- encoding: utf-8 -*-
+#
+# Copyright © 2013 Red Hat, Inc
+#
+# Author: Eoghan Glynn <eglynn@redhat.com>
+#
+# 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.
+
+from ceilometerclient.common import base
+from ceilometerclient.v2 import options
+
+
+class Alarm(base.Resource):
+ def __repr__(self):
+ return "<Alarm %s>" % self._info
+
+
+class AlarmManager(base.Manager):
+ resource_class = Alarm
+
+ def list(self, q=None):
+ path = '/v2/alarms'
+ return self._list(options.build_url(path, q))
diff --git a/ceilometerclient/v2/client.py b/ceilometerclient/v2/client.py
index 71622a6..d3c64e1 100644
--- a/ceilometerclient/v2/client.py
+++ b/ceilometerclient/v2/client.py
@@ -14,6 +14,7 @@
# under the License.
from ceilometerclient.common import http
+from ceilometerclient.v2 import alarms
from ceilometerclient.v2 import meters
from ceilometerclient.v2 import resources
from ceilometerclient.v2 import samples
@@ -37,3 +38,4 @@ class Client(http.HTTPClient):
self.samples = samples.SampleManager(self)
self.statistics = statistics.StatisticsManager(self)
self.resources = resources.ResourceManager(self)
+ self.alarms = alarms.AlarmManager(self)
diff --git a/ceilometerclient/v2/shell.py b/ceilometerclient/v2/shell.py
index f577229..946dabc 100644
--- a/ceilometerclient/v2/shell.py
+++ b/ceilometerclient/v2/shell.py
@@ -71,7 +71,7 @@ def do_sample_list(cc, args):
@utils.arg('-q', '--query', metavar='<QUERY>',
help='key[op]value; list.')
def do_meter_list(cc, args={}):
- '''List the user's meter'''
+ '''List the user's meters'''
meters = cc.meters.list(q=options.cli_to_array(args.query))
field_labels = ['Name', 'Type', 'Unit', 'Resource ID', 'User ID',
'Project ID']
@@ -83,6 +83,23 @@ def do_meter_list(cc, args={}):
@utils.arg('-q', '--query', metavar='<QUERY>',
help='key[op]value; list.')
+def do_alarm_list(cc, args={}):
+ '''List the user's alarms'''
+ alarms = cc.alarms.list(q=options.cli_to_array(args.query))
+ # omit action initially to keep output width sane
+ # (can switch over to vertical formatting when available from CLIFF)
+ field_labels = ['Name', 'Description', 'Metric', 'Period', 'Count',
+ 'Threshold', 'Comparison', 'State', 'Enabled', 'Alarm ID',
+ 'User ID', 'Project ID']
+ fields = ['name', 'description', 'counter_name', 'period',
+ 'evaluation_periods', 'threshold', 'comparison_operator',
+ 'state', 'enabled', 'alarm_id', 'user_id', 'project_id']
+ utils.print_list(alarms, fields, field_labels,
+ sortby=0)
+
+
+@utils.arg('-q', '--query', metavar='<QUERY>',
+ help='key[op]value; list.')
def do_resource_list(cc, args={}):
'''List the resources'''
resources = cc.resources.list(q=options.cli_to_array(args.query))