diff options
| author | Aleksey Ripinen <aripinen@mirantis.com> | 2015-05-19 15:16:20 +0300 |
|---|---|---|
| committer | Aleksey Ripinen <aripinen@mirantis.com> | 2015-06-08 17:33:45 +0300 |
| commit | 6add8c4fbf42be369b464489e204fea8655e2acf (patch) | |
| tree | 5f50e9817b40f16beb07482f72c4c4f895f14d9e /ceilometerclient/v2 | |
| parent | 662a4642046ff86fefb56e89bfe269ff6b8bf100 (diff) | |
| download | python-ceilometerclient-6add8c4fbf42be369b464489e204fea8655e2acf.tar.gz | |
Add capability for creating array of samples
Added method for creating array of samples to samples manager.
Added shell command for creating array of samples.
Added tests for this changes.
It is made for Rally tests that use big data arrays. So now only one
function may be called instead of numerous calls simple create function.
Change-Id: I01ba4f0c0db40c95ef72dadaa34b3fafc034e417
Diffstat (limited to 'ceilometerclient/v2')
| -rw-r--r-- | ceilometerclient/v2/samples.py | 20 | ||||
| -rw-r--r-- | ceilometerclient/v2/shell.py | 13 |
2 files changed, 33 insertions, 0 deletions
diff --git a/ceilometerclient/v2/samples.py b/ceilometerclient/v2/samples.py index c046051..17aa10b 100644 --- a/ceilometerclient/v2/samples.py +++ b/ceilometerclient/v2/samples.py @@ -56,6 +56,26 @@ class OldSampleManager(base.Manager): if body: return [OldSample(self, b) for b in body] + def create_list(self, sample_list=None, **kwargs): + sample_dict = {} + + for sample_body in sample_list: + sample = dict((key, value) for (key, value) in sample_body.items() + if key in CREATION_ATTRIBUTES) + sample_dict.setdefault( + sample_body["counter_name"], [] + ).append(sample) + + sample_return_list = [] + + for (counter_name, sample_body) in sample_dict.items(): + url = self._path(counter_name=counter_name) + body = self.api.post(url, json=sample_body).json() + + if body: + sample_return_list.extend([OldSample(self, b) for b in body]) + return sample_return_list + class Sample(base.Resource): """Represents API v2 Sample object. diff --git a/ceilometerclient/v2/shell.py b/ceilometerclient/v2/shell.py index 224e189..b67d765 100644 --- a/ceilometerclient/v2/shell.py +++ b/ceilometerclient/v2/shell.py @@ -258,6 +258,19 @@ def do_meter_list(cc, args={}): sortby=0) +@utils.arg('samples_list', metavar='<SAMPLES_LIST>', action=NotEmptyAction, + help='Json array with samples to create.') +def do_sample_create_list(cc, args={}): + """Create a sample list.""" + sample_list_array = json.loads(args.samples_list) + samples = cc.samples.create_list(sample_list_array) + field_labels = ['Resource ID', 'Name', 'Type', 'Volume', 'Unit', + 'Timestamp'] + fields = ['resource_id', 'counter_name', 'counter_type', + 'counter_volume', 'counter_unit', 'timestamp'] + utils.print_list(samples, fields, field_labels, sortby=None) + + def _display_alarm_list(alarms, sortby=None): # omit action initially to keep output width sane # (can switch over to vertical formatting when available from CLIFF) |
