diff options
| author | Angus Salkeld <asalkeld@redhat.com> | 2013-07-18 09:41:16 +1000 |
|---|---|---|
| committer | Angus Salkeld <asalkeld@redhat.com> | 2013-07-18 09:41:16 +1000 |
| commit | 3010ebcc75ea271c46351ef68d00482f0fbacb85 (patch) | |
| tree | cf268c9da2143d601c20dbd12dc905c43f97a258 /ceilometerclient/v2/shell.py | |
| parent | efd67de3fae0be1893c5dbf60e3a29d40e5bdb0d (diff) | |
| download | python-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.py | 37 |
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={}): |
