return sample info when creating sample with CLI

It will return nothing after creating a sample successfully with
ceilometer CLI. The information of the sample created should be return,
like other creating commands, such as "ceilometer alarm-create".

Change-Id: I60229fefa91de83e4b715cf4f92d3650e0a0d162
Closes-bug: #1267713
This commit is contained in:
ls1175
2014-01-11 21:43:44 +08:00
committed by liu-sheng
parent d8ffceeeb7
commit 554c3335c7
2 changed files with 70 additions and 1 deletions

View File

@@ -304,3 +304,65 @@ class ShellSampleListCommandTest(utils.BaseTestCase):
+--------------------------------------+----------+-------+----------------\
+------+---------------------+
''')
class ShellSampleCreateCommandTest(utils.BaseTestCase):
METER = 'instance'
METER_TYPE = 'gauge'
RESOURCE_ID = '0564c64c-3545-4e34-abfb-9d18e5f2f2f9'
SAMPLE_VOLUME = '1'
METER_UNIT = 'instance'
SAMPLE = [{
u'counter_name': u'instance',
u'user_id': u'21b442b8101d407d8242b6610e0ed0eb',
u'resource_id': u'0564c64c-3545-4e34-abfb-9d18e5f2f2f9',
u'timestamp': u'2014-01-10T03: 05: 33.951170',
u'message_id': u'1247cbe6-79a4-11e3-a296-000c294c58e2',
u'source': u'384260c6987b451d8290e66e1f108082: openstack',
u'counter_unit': u'instance',
u'counter_volume': 1.0,
u'project_id': u'384260c6987b451d8290e66e1f108082',
u'resource_metadata': {},
u'counter_type': u'gauge'
}]
def setUp(self):
super(ShellSampleCreateCommandTest, self).setUp()
self.cc = mock.Mock()
self.args = mock.Mock()
self.args.meter_name = self.METER
self.args.meter_type = self.METER_TYPE
self.args.meter_unit = self.METER_UNIT
self.args.resource_id = self.RESOURCE_ID
self.args.sample_volume = self.SAMPLE_VOLUME
def test_sample_create(self):
ret_sample = [samples.Sample(mock.Mock(), sample)
for sample in self.SAMPLE]
self.cc.samples.create.return_value = ret_sample
org_stdout = sys.stdout
try:
sys.stdout = output = six.StringIO()
ceilometer_shell.do_sample_create(self.cc, self.args)
finally:
sys.stdout = org_stdout
self.assertEqual(output.getvalue(), '''\
+-------------------+---------------------------------------------+
| Property | Value |
+-------------------+---------------------------------------------+
| message_id | 1247cbe6-79a4-11e3-a296-000c294c58e2 |
| name | instance |
| project_id | 384260c6987b451d8290e66e1f108082 |
| resource_id | 0564c64c-3545-4e34-abfb-9d18e5f2f2f9 |
| resource_metadata | {} |
| source | 384260c6987b451d8290e66e1f108082: openstack |
| timestamp | 2014-01-10T03: 05: 33.951170 |
| type | gauge |
| unit | instance |
| user_id | 21b442b8101d407d8242b6610e0ed0eb |
| volume | 1.0 |
+-------------------+---------------------------------------------+
''')

View File

@@ -117,7 +117,14 @@ def do_sample_create(cc, args={}):
fields[k] = json.loads(v)
else:
fields[arg_to_field_mapping.get(k, k)] = v
cc.samples.create(**fields)
sample = cc.samples.create(**fields)
fields = ['counter_name', 'user_id', 'resource_id',
'timestamp', 'message_id', 'source', 'counter_unit',
'counter_volume', 'project_id', 'resource_metadata',
'counter_type']
data = dict([(f.replace('counter_', ''), getattr(sample[0], f, ''))
for f in fields])
utils.print_dict(data, wrap=72)
@utils.arg('-q', '--query', metavar='<QUERY>',