Implement chassis-list + more tests

Added chassis-list command for v1 + more tests.

Change-Id: If86e8600d22d00b6100c17922e9b8bac08029d19
This commit is contained in:
Lucas Alvares Gomes 2013-09-24 17:29:10 +01:00
parent 1740f6aa68
commit 080ad7a56f
3 changed files with 29 additions and 6 deletions
ironicclient

@ -23,7 +23,7 @@ from ironicclient.tests import utils
import ironicclient.v1.chassis
CHASSIS = {'id': 42,
'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66',
'uuid': 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee',
'extra': {},
'description': 'data-center-1-chassis'}
@ -32,7 +32,14 @@ fixtures = {
{
'GET': (
{},
[CHASSIS],
{"chassis": [CHASSIS]},
),
},
'/v1/chassis/%s' % CHASSIS['uuid']:
{
'GET': (
{},
CHASSIS,
),
},
}
@ -45,11 +52,19 @@ class ChassisManagerTest(testtools.TestCase):
self.api = utils.FakeAPI(fixtures)
self.mgr = ironicclient.v1.chassis.ChassisManager(self.api)
def test_list_all(self):
chassis = list(self.mgr.list())
def test_chassis_list(self):
chassis = self.mgr.list()
expect = [
('GET', '/v1/chassis', {}, None),
]
self.assertEqual(self.api.calls, expect)
self.assertEqual(len(chassis), 1)
self.assertEqual(chassis[0].description, 'data-center-1-chassis')
def test_chassis_show(self):
chassis = self.mgr.get(CHASSIS['uuid'])
expect = [
('GET', '/v1/chassis/%s' % CHASSIS['uuid'], {}, None),
]
self.assertEqual(self.api.calls, expect)
self.assertEqual(chassis.uuid, CHASSIS['uuid'])
self.assertEqual(chassis.description, CHASSIS['description'])

@ -30,7 +30,7 @@ class ChassisManager(base.Manager):
return '/v1/chassis/%s' % id if id else '/v1/chassis'
def list(self):
return self._list(self._path())
return self._list(self._path(), "chassis")
def get(self, chassis_id):
try:

@ -25,3 +25,11 @@ def do_chassis_show(self, args):
fields = ['uuid', 'description', 'extra']
data = dict([(f, getattr(chassis, f, '')) for f in fields])
utils.print_dict(data, wrap=72)
def do_chassis_list(self, args):
"""List chassis."""
chassis = self.chassis.list()
field_labels = ['UUID', 'Description']
fields = ['uuid', 'description']
utils.print_list(chassis, fields, field_labels, sortby=1)