Add --uuid to chassis-create
Support specifiy the uuid of chassis when create chassis like node. Change-Id: I82a352f3fe877b1f1100022f9b3c304b9ab7cd24
This commit is contained in:
@@ -46,6 +46,9 @@ CREATE_CHASSIS = copy.deepcopy(CHASSIS)
|
|||||||
del CREATE_CHASSIS['id']
|
del CREATE_CHASSIS['id']
|
||||||
del CREATE_CHASSIS['uuid']
|
del CREATE_CHASSIS['uuid']
|
||||||
|
|
||||||
|
CREATE_WITH_UUID = copy.deepcopy(CHASSIS)
|
||||||
|
del CREATE_WITH_UUID['id']
|
||||||
|
|
||||||
UPDATED_CHASSIS = copy.deepcopy(CHASSIS)
|
UPDATED_CHASSIS = copy.deepcopy(CHASSIS)
|
||||||
NEW_DESCR = 'new-description'
|
NEW_DESCR = 'new-description'
|
||||||
UPDATED_CHASSIS['description'] = NEW_DESCR
|
UPDATED_CHASSIS['description'] = NEW_DESCR
|
||||||
@@ -326,6 +329,14 @@ class ChassisManagerTest(testtools.TestCase):
|
|||||||
self.assertEqual(expect, self.api.calls)
|
self.assertEqual(expect, self.api.calls)
|
||||||
self.assertTrue(chassis)
|
self.assertTrue(chassis)
|
||||||
|
|
||||||
|
def test_create_with_uuid(self):
|
||||||
|
chassis = self.mgr.create(**CREATE_WITH_UUID)
|
||||||
|
expect = [
|
||||||
|
('POST', '/v1/chassis', {}, CREATE_WITH_UUID),
|
||||||
|
]
|
||||||
|
self.assertEqual(expect, self.api.calls)
|
||||||
|
self.assertTrue(chassis)
|
||||||
|
|
||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
chassis = self.mgr.delete(chassis_id=CHASSIS['uuid'])
|
chassis = self.mgr.delete(chassis_id=CHASSIS['uuid'])
|
||||||
expect = [
|
expect = [
|
||||||
|
@@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
import mock
|
import mock
|
||||||
|
|
||||||
|
from oslo_utils import uuidutils
|
||||||
|
|
||||||
from ironicclient.common.apiclient import exceptions
|
from ironicclient.common.apiclient import exceptions
|
||||||
from ironicclient.common import cliutils
|
from ironicclient.common import cliutils
|
||||||
from ironicclient.common import utils as commonutils
|
from ironicclient.common import utils as commonutils
|
||||||
@@ -316,6 +318,14 @@ class ChassisShellTest(utils.BaseTestCase):
|
|||||||
c_shell.do_chassis_create(client_mock, args)
|
c_shell.do_chassis_create(client_mock, args)
|
||||||
client_mock.chassis.create.assert_called_once_with()
|
client_mock.chassis.create.assert_called_once_with()
|
||||||
|
|
||||||
|
def test_do_chassis_create_with_uuid(self):
|
||||||
|
client_mock = mock.MagicMock()
|
||||||
|
args = mock.MagicMock()
|
||||||
|
args.uuid = uuidutils.generate_uuid()
|
||||||
|
|
||||||
|
c_shell.do_chassis_create(client_mock, args)
|
||||||
|
client_mock.chassis.create.assert_called_once_with(uuid=args.uuid)
|
||||||
|
|
||||||
def test_do_chassis_create_valid_field(self):
|
def test_do_chassis_create_valid_field(self):
|
||||||
client_mock = mock.MagicMock()
|
client_mock = mock.MagicMock()
|
||||||
args = mock.MagicMock()
|
args = mock.MagicMock()
|
||||||
|
@@ -28,7 +28,7 @@ class Chassis(base.Resource):
|
|||||||
class ChassisManager(base.CreateManager):
|
class ChassisManager(base.CreateManager):
|
||||||
resource_class = Chassis
|
resource_class = Chassis
|
||||||
_resource_name = 'chassis'
|
_resource_name = 'chassis'
|
||||||
_creation_attributes = ['description', 'extra']
|
_creation_attributes = ['description', 'extra', 'uuid']
|
||||||
|
|
||||||
def list(self, marker=None, limit=None, sort_key=None,
|
def list(self, marker=None, limit=None, sort_key=None,
|
||||||
sort_dir=None, detail=False, fields=None):
|
sort_dir=None, detail=False, fields=None):
|
||||||
|
@@ -120,15 +120,18 @@ def do_chassis_list(cc, args):
|
|||||||
action='append',
|
action='append',
|
||||||
help="Record arbitrary key/value metadata. "
|
help="Record arbitrary key/value metadata. "
|
||||||
"Can be specified multiple times.")
|
"Can be specified multiple times.")
|
||||||
|
@cliutils.arg(
|
||||||
|
'-u', '--uuid',
|
||||||
|
metavar='<uuid>',
|
||||||
|
help="UUID of the chassis.")
|
||||||
def do_chassis_create(cc, args):
|
def do_chassis_create(cc, args):
|
||||||
"""Create a new chassis."""
|
"""Create a new chassis."""
|
||||||
field_list = ['description', 'extra']
|
field_list = ['description', 'extra', 'uuid']
|
||||||
fields = dict((k, v) for (k, v) in vars(args).items()
|
fields = dict((k, v) for (k, v) in vars(args).items()
|
||||||
if k in field_list and not (v is None))
|
if k in field_list and not (v is None))
|
||||||
fields = utils.args_array_to_dict(fields, 'extra')
|
fields = utils.args_array_to_dict(fields, 'extra')
|
||||||
chassis = cc.chassis.create(**fields)
|
chassis = cc.chassis.create(**fields)
|
||||||
|
|
||||||
field_list.append('uuid')
|
|
||||||
data = dict([(f, getattr(chassis, f, '')) for f in field_list])
|
data = dict([(f, getattr(chassis, f, '')) for f in field_list])
|
||||||
cliutils.print_dict(data, wrap=72)
|
cliutils.print_dict(data, wrap=72)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user