Migrated migrations_client.py from tempest
This migrates the above files from tempest. This includes tempest commits: * migrations_client.py : Ice3665e91ff34409f6f105303213303d1fca1816 * migrations.py : I5e81dadd5dee4ecd85f309c34dae0d3ba0733a0d * test_migrations_client.py: I3ad6761651cec5e66012d08e6b63322f53286a5c to see the commit history for these files refer to the above Change-Ids in the tempest repository. Partially implements blueprint migrate-service-clients-to-tempest-lib Change-Id: I0dbae04c479b9d742a3e51d1d60c372093c2c027
This commit is contained in:
parent
6757c130b9
commit
0eb6747e3c
51
tempest_lib/api_schema/response/compute/v2_1/migrations.py
Normal file
51
tempest_lib/api_schema/response/compute/v2_1/migrations.py
Normal file
@ -0,0 +1,51 @@
|
||||
# Copyright 2014 NEC Corporation. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
list_migrations = {
|
||||
'status_code': [200],
|
||||
'response_body': {
|
||||
'type': 'object',
|
||||
'properties': {
|
||||
'migrations': {
|
||||
'type': 'array',
|
||||
'items': {
|
||||
'type': 'object',
|
||||
'properties': {
|
||||
'id': {'type': 'integer'},
|
||||
'status': {'type': ['string', 'null']},
|
||||
'instance_uuid': {'type': ['string', 'null']},
|
||||
'source_node': {'type': ['string', 'null']},
|
||||
'source_compute': {'type': ['string', 'null']},
|
||||
'dest_node': {'type': ['string', 'null']},
|
||||
'dest_compute': {'type': ['string', 'null']},
|
||||
'dest_host': {'type': ['string', 'null']},
|
||||
'old_instance_type_id': {'type': ['integer', 'null']},
|
||||
'new_instance_type_id': {'type': ['integer', 'null']},
|
||||
'created_at': {'type': 'string'},
|
||||
'updated_at': {'type': ['string', 'null']}
|
||||
},
|
||||
'additionalProperties': False,
|
||||
'required': [
|
||||
'id', 'status', 'instance_uuid', 'source_node',
|
||||
'source_compute', 'dest_node', 'dest_compute',
|
||||
'dest_host', 'old_instance_type_id',
|
||||
'new_instance_type_id', 'created_at', 'updated_at'
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
'additionalProperties': False,
|
||||
'required': ['migrations']
|
||||
}
|
||||
}
|
34
tempest_lib/services/compute/migrations_client.py
Normal file
34
tempest_lib/services/compute/migrations_client.py
Normal file
@ -0,0 +1,34 @@
|
||||
# Copyright 2014 NEC Corporation.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from oslo_serialization import jsonutils as json
|
||||
from six.moves.urllib import parse as urllib
|
||||
|
||||
from tempest_lib.api_schema.response.compute.v2_1 import migrations as schema
|
||||
from tempest_lib.common import rest_client
|
||||
|
||||
|
||||
class MigrationsClient(rest_client.RestClient):
|
||||
|
||||
def list_migrations(self, **params):
|
||||
"""Lists all migrations."""
|
||||
|
||||
url = 'os-migrations'
|
||||
if params:
|
||||
url += '?%s' % urllib.urlencode(params)
|
||||
|
||||
resp, body = self.get(url)
|
||||
body = json.loads(body)
|
||||
self.validate_response(schema.list_migrations, resp, body)
|
||||
return rest_client.ResponseBody(resp, body)
|
52
tempest_lib/tests/services/compute/test_migrations_client.py
Normal file
52
tempest_lib/tests/services/compute/test_migrations_client.py
Normal file
@ -0,0 +1,52 @@
|
||||
# Copyright 2015 NEC Corporation. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from tempest_lib.services.compute import migrations_client
|
||||
from tempest_lib.tests import fake_auth_provider
|
||||
from tempest_lib.tests.services.compute import base
|
||||
|
||||
|
||||
class TestMigrationsClient(base.BaseComputeServiceTest):
|
||||
FAKE_MIGRATION_INFO = {"migrations": [{
|
||||
"created_at": "2012-10-29T13:42:02",
|
||||
"dest_compute": "compute2",
|
||||
"dest_host": "1.2.3.4",
|
||||
"dest_node": "node2",
|
||||
"id": 1234,
|
||||
"instance_uuid": "e9e4fdd7-f956-44ff-bfeb-d654a96ab3a2",
|
||||
"new_instance_type_id": 2,
|
||||
"old_instance_type_id": 1,
|
||||
"source_compute": "compute1",
|
||||
"source_node": "node1",
|
||||
"status": "finished",
|
||||
"updated_at": "2012-10-29T13:42:02"}]}
|
||||
|
||||
def setUp(self):
|
||||
super(TestMigrationsClient, self).setUp()
|
||||
fake_auth = fake_auth_provider.FakeAuthProvider()
|
||||
self.mg_client_obj = migrations_client.MigrationsClient(
|
||||
fake_auth, 'compute', 'regionOne')
|
||||
|
||||
def _test_list_migrations(self, bytes_body=False):
|
||||
self.check_service_client_function(
|
||||
self.mg_client_obj.list_migrations,
|
||||
'tempest_lib.common.rest_client.RestClient.get',
|
||||
self.FAKE_MIGRATION_INFO,
|
||||
bytes_body)
|
||||
|
||||
def test_list_migration_with_str_body(self):
|
||||
self._test_list_migrations()
|
||||
|
||||
def test_list_migration_with_bytes_body(self):
|
||||
self._test_list_migrations(True)
|
Loading…
x
Reference in New Issue
Block a user