Make `resources` a required field
Partially Implement: bp new-flavor Change-Id: Ibe44d5d3c09b62b612b77dc254cade703a3f8d1c Depends-On: I5f56b5975f0d48ae0a9a1c70598604494901189b
This commit is contained in:
parent
cbb52c9756
commit
5a5f22c69f
|
@ -169,7 +169,7 @@ function cleanup_mogan {
|
|||
|
||||
|
||||
function create_flavor {
|
||||
openstack baremetal flavor create ${MOGAN_DEFAULT_FLAVOR} --description 'Mogan default flavor'
|
||||
openstack baremetal flavor create ${MOGAN_DEFAULT_FLAVOR} --description 'Mogan default flavor' --resources ${MOGAN_DEFAULT_FLAVOR}=1
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -27,6 +27,6 @@ create_flavor = {
|
|||
'is_public': parameter_types.boolean,
|
||||
'disabled': parameter_types.boolean,
|
||||
},
|
||||
'required': ['name', 'description'],
|
||||
'required': ['name', 'description', 'resources'],
|
||||
'additionalProperties': False,
|
||||
}
|
||||
|
|
|
@ -34,7 +34,8 @@ class TestFlavor(v1_test.APITestV1):
|
|||
mocked.side_effect = self.FLAVOR_UUIDS
|
||||
for i in six.moves.xrange(4):
|
||||
body = {"name": "test" + str(i),
|
||||
"description": "just test" + str(i)}
|
||||
"description": "just test" + str(i),
|
||||
"resources": {"CUSTOM_GOLD": 1}}
|
||||
self.post_json('/flavors', body, headers=self.headers, status=201)
|
||||
|
||||
def test_flavor_post(self):
|
||||
|
@ -63,6 +64,7 @@ class TestFlavor(v1_test.APITestV1):
|
|||
headers=self.headers)
|
||||
self.assertEqual('test0', resp['name'])
|
||||
self.assertEqual('just test0', resp['description'])
|
||||
self.assertEqual({'CUSTOM_GOLD': 1}, resp['resources'])
|
||||
|
||||
def test_flavor_delete(self):
|
||||
self._prepare_flavors()
|
||||
|
|
|
@ -66,16 +66,16 @@ def _get_fake_node(**kwargs):
|
|||
|
||||
|
||||
class TestServers(v1_test.APITestV1):
|
||||
INSTANCE_TYPE_UUID = 'ff28b5a2-73e5-431c-b4b7-1b96b74bca7b'
|
||||
FLAVOR_UUID = 'ff28b5a2-73e5-431c-b4b7-1b96b74bca7b'
|
||||
|
||||
INSTANCE_UUIDS = ['59f1b681-6ca4-4a17-b784-297a7285004e',
|
||||
'2b32fc87-576c-481b-880e-bef8c7351746',
|
||||
'482decff-7561-41ad-9bfb-447265b26972',
|
||||
'427693e1-a820-4d7d-8a92-9f5fe2849399',
|
||||
'253b2878-ec60-4793-ad19-e65496ec7aab',
|
||||
'f26f181d-7891-4720-b022-b074ec1733ef',
|
||||
'02f53bd8-3514-485b-ba60-2722ef09c016',
|
||||
'8f7495fe-5e44-4f33-81af-4b28e9b2952f']
|
||||
SERVER_UUIDS = ['59f1b681-6ca4-4a17-b784-297a7285004e',
|
||||
'2b32fc87-576c-481b-880e-bef8c7351746',
|
||||
'482decff-7561-41ad-9bfb-447265b26972',
|
||||
'427693e1-a820-4d7d-8a92-9f5fe2849399',
|
||||
'253b2878-ec60-4793-ad19-e65496ec7aab',
|
||||
'f26f181d-7891-4720-b022-b074ec1733ef',
|
||||
'02f53bd8-3514-485b-ba60-2722ef09c016',
|
||||
'8f7495fe-5e44-4f33-81af-4b28e9b2952f']
|
||||
|
||||
def setUp(self):
|
||||
self.rpc_api = mock.Mock()
|
||||
|
@ -95,14 +95,14 @@ class TestServers(v1_test.APITestV1):
|
|||
self.addCleanup(self._clean_flavor)
|
||||
|
||||
def _clean_servers(self):
|
||||
for server_uuid in self.INSTANCE_UUIDS:
|
||||
for server_uuid in self.SERVER_UUIDS:
|
||||
# TODO(liusheng) should catch the NotFound exception
|
||||
self.delete('/servers/' + server_uuid, status=204,
|
||||
expect_errors=True)
|
||||
|
||||
def _clean_flavor(self):
|
||||
headers = self.gen_headers(self.context, roles="admin")
|
||||
self.delete('/flavors/' + self.INSTANCE_TYPE_UUID,
|
||||
self.delete('/flavors/' + self.FLAVOR_UUID,
|
||||
headers=headers, status=204)
|
||||
|
||||
def _make_app(self):
|
||||
|
@ -110,10 +110,11 @@ class TestServers(v1_test.APITestV1):
|
|||
|
||||
@mock.patch('oslo_utils.uuidutils.generate_uuid')
|
||||
def _prepare_flavor(self, mocked):
|
||||
mocked.side_effect = [self.INSTANCE_TYPE_UUID]
|
||||
mocked.side_effect = [self.FLAVOR_UUID]
|
||||
headers = self.gen_headers(self.context, roles="admin")
|
||||
body = {"name": "type_for_server_testing",
|
||||
"description": "type for server testing"}
|
||||
"description": "type for server testing",
|
||||
"resources": {"CUSTOM_GOLD": 1}}
|
||||
self.post_json('/flavors', body, headers=headers, status=201)
|
||||
|
||||
@mock.patch('mogan.scheduler.rpcapi.SchedulerAPI.select_destinations')
|
||||
|
@ -122,7 +123,7 @@ class TestServers(v1_test.APITestV1):
|
|||
# NOTE(wanghao): Since we added quota reserve in creation option,
|
||||
# there is one more generate_uuid out of provision_servers, so
|
||||
# amount should *2 here.
|
||||
mocked.side_effect = self.INSTANCE_UUIDS[:(amount * 2)]
|
||||
mocked.side_effect = self.SERVER_UUIDS[:(amount * 2)]
|
||||
mock_select_dest.return_value = mock.MagicMock()
|
||||
responses = []
|
||||
headers = self.gen_headers(self.context)
|
||||
|
@ -146,9 +147,9 @@ class TestServers(v1_test.APITestV1):
|
|||
resp = self._prepare_server(1)[0].json
|
||||
self.assertEqual('test_server_0', resp['name'])
|
||||
self.assertEqual('building', resp['status'])
|
||||
self.assertEqual(self.INSTANCE_UUIDS[1], resp['uuid'])
|
||||
self.assertEqual(self.SERVER_UUIDS[1], resp['uuid'])
|
||||
self.assertEqual('just test server 0', resp['description'])
|
||||
self.assertEqual(self.INSTANCE_TYPE_UUID, resp['flavor_uuid'])
|
||||
self.assertEqual(self.FLAVOR_UUID, resp['flavor_uuid'])
|
||||
self.assertEqual('b8f82429-3a13-4ffe-9398-4d1abdc256a8',
|
||||
resp['image_uuid'])
|
||||
self.assertEqual('mogan', resp['availability_zone'])
|
||||
|
@ -164,13 +165,13 @@ class TestServers(v1_test.APITestV1):
|
|||
def test_server_show(self):
|
||||
self._prepare_server(1)
|
||||
headers = self.gen_headers(self.context)
|
||||
resp = self.get_json('/servers/%s' % self.INSTANCE_UUIDS[1],
|
||||
resp = self.get_json('/servers/%s' % self.SERVER_UUIDS[1],
|
||||
headers=headers)
|
||||
self.assertEqual('test_server_0', resp['name'])
|
||||
self.assertEqual('building', resp['status'])
|
||||
self.assertEqual(self.INSTANCE_UUIDS[1], resp['uuid'])
|
||||
self.assertEqual(self.SERVER_UUIDS[1], resp['uuid'])
|
||||
self.assertEqual('just test server 0', resp['description'])
|
||||
self.assertEqual(self.INSTANCE_TYPE_UUID, resp['flavor_uuid'])
|
||||
self.assertEqual(self.FLAVOR_UUID, resp['flavor_uuid'])
|
||||
self.assertEqual('b8f82429-3a13-4ffe-9398-4d1abdc256a8',
|
||||
resp['image_uuid'])
|
||||
self.assertEqual('mogan', resp['availability_zone'])
|
||||
|
@ -210,8 +211,8 @@ class TestServers(v1_test.APITestV1):
|
|||
def test_server_delete(self):
|
||||
self._prepare_server(4)
|
||||
headers = self.gen_headers(self.context)
|
||||
self.delete('/servers/' + self.INSTANCE_UUIDS[1], headers=headers,
|
||||
self.delete('/servers/' + self.SERVER_UUIDS[1], headers=headers,
|
||||
status=204)
|
||||
resp = self.get_json('/servers/%s' % self.INSTANCE_UUIDS[1],
|
||||
resp = self.get_json('/servers/%s' % self.SERVER_UUIDS[1],
|
||||
headers=headers)
|
||||
self.assertEqual('deleting', resp['status'])
|
||||
|
|
|
@ -28,6 +28,7 @@ class BaremetalComputeAPITest(base.BaseBaremetalComputeTest):
|
|||
for i in six.moves.xrange(2):
|
||||
body = {"name": "mogan_flavor_" + {0: 'public', 1: 'private'}[i],
|
||||
"description": "mogan flavor description",
|
||||
"resources": {"CUSTOM_GOLD": 1},
|
||||
'is_public': not bool(i)}
|
||||
resp = cls.baremetal_compute_client.create_flavor(**body)
|
||||
cls.flavor_ids.append(resp['uuid'])
|
||||
|
@ -72,7 +73,7 @@ class BaremetalComputeAPITest(base.BaseBaremetalComputeTest):
|
|||
resp['description'])
|
||||
self.assertEqual(True, resp['is_public'])
|
||||
self.assertEqual(False, resp['disabled'])
|
||||
self.assertEqual({}, resp['resources'])
|
||||
self.assertEqual({'CUSTOM_GOLD': 1}, resp['resources'])
|
||||
self.assertEqual({}, resp['resource_traits'])
|
||||
self.assertIn('uuid', resp)
|
||||
self.assertIn('links', resp)
|
||||
|
|
Loading…
Reference in New Issue