summaryrefslogtreecommitdiff
path: root/ceilometerclient/v2/shell.py
diff options
context:
space:
mode:
authorAngus Salkeld <asalkeld@redhat.com>2013-07-18 09:41:16 +1000
committerAngus Salkeld <asalkeld@redhat.com>2013-07-18 09:41:16 +1000
commit3010ebcc75ea271c46351ef68d00482f0fbacb85 (patch)
treecf268c9da2143d601c20dbd12dc905c43f97a258 /ceilometerclient/v2/shell.py
parentefd67de3fae0be1893c5dbf60e3a29d40e5bdb0d (diff)
downloadpython-ceilometerclient-3010ebcc75ea271c46351ef68d00482f0fbacb85.tar.gz
Add support for creating samples
Change-Id: Ib33a5fd162d760efa23a2fc496c1d11d79484491
Diffstat (limited to 'ceilometerclient/v2/shell.py')
-rw-r--r--ceilometerclient/v2/shell.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/ceilometerclient/v2/shell.py b/ceilometerclient/v2/shell.py
index be68941..23246a2 100644
--- a/ceilometerclient/v2/shell.py
+++ b/ceilometerclient/v2/shell.py
@@ -16,6 +16,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+import json
+
from ceilometerclient.common import utils
from ceilometerclient import exc
from ceilometerclient.v2 import options
@@ -76,6 +78,41 @@ def do_sample_list(cc, args):
sortby=0)
+@utils.arg('--project-id', metavar='<PROJECT_ID>',
+ help='Tenant to associate with alarm '
+ '(only settable by admin users)')
+@utils.arg('--user-id', metavar='<USER_ID>',
+ help='User to associate with alarm '
+ '(only settable by admin users)')
+@utils.arg('-r', '--resource-id', metavar='<RESOURCE_ID>',
+ help='ID of the resource.')
+@utils.arg('-m', '--meter-name', metavar='<METER_NAME>',
+ help='the meter name')
+@utils.arg('--meter-type', metavar='<METER_TYPE>',
+ help='the meter type')
+@utils.arg('--meter-unit', metavar='<METER_UNIT>',
+ help='the meter unit')
+@utils.arg('--sample-volume', metavar='<SAMPLE_VOLUME>',
+ help='The sample volume')
+@utils.arg('--resource-metadata', metavar='<RESOURCE_METADATA>',
+ help='resource metadata')
+def do_sample_create(cc, args={}):
+ '''Create a sample.'''
+ arg_to_field_mapping = {'meter_name': 'counter_name',
+ 'meter_unit': 'counter_unit',
+ 'meter_type': 'counter_type',
+ 'sample_volume': 'counter_volume'}
+ fields = {}
+ for var in vars(args).items():
+ k, v = var[0], var[1]
+ if v is not None:
+ if k == 'resource_metadata':
+ fields[k] = json.loads(v)
+ else:
+ fields[arg_to_field_mapping.get(k, k)] = v
+ cc.samples.create(**fields)
+
+
@utils.arg('-q', '--query', metavar='<QUERY>',
help='key[op]value; list.')
def do_meter_list(cc, args={}):