Files
python-novaclient/novaclient/tests/unit/fixture_data/hypervisors.py
Matt Riedemann 5745beae5c Microversion 2.53 - services and hypervisors using UUIDs
Adds support for the 2.53 microversion which changes the
os-services and os-hypervisors APIs to use a UUID for the ID
value on the resource.

Also, the PUT and GET API methods have changed a bit for
both resources in this microversion, so the pythong API
bindings and command lines have been adjusted accordingly.

Part of blueprint service-hyper-uuid-in-api

Change-Id: Ic721143cc154d91e74a8a9dd2c1e991045c94305
2017-07-26 09:04:19 -04:00

209 lines
7.2 KiB
Python

# 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 novaclient import api_versions
from novaclient.tests.unit.fixture_data import base
class V1(base.Fixture):
base_url = 'os-hypervisors'
api_version = '2.1'
hyper_id_1 = 1234
hyper_id_2 = 5678
service_id_1 = 1
service_id_2 = 2
def setUp(self):
super(V1, self).setUp()
uuid_as_id = (api_versions.APIVersion(self.api_version) >=
api_versions.APIVersion('2.53'))
get_os_hypervisors = {
'hypervisors': [
{'id': self.hyper_id_1, 'hypervisor_hostname': 'hyper1'},
{'id': self.hyper_id_2, 'hypervisor_hostname': 'hyper2'},
]
}
self.headers = self.json_headers
self.requests_mock.get(self.url(),
json=get_os_hypervisors,
headers=self.headers)
get_os_hypervisors_detail = {
'hypervisors': [
{
'id': self.hyper_id_1,
'service': {
'id': self.service_id_1,
'host': 'compute1',
},
'vcpus': 4,
'memory_mb': 10 * 1024,
'local_gb': 250,
'vcpus_used': 2,
'memory_mb_used': 5 * 1024,
'local_gb_used': 125,
'hypervisor_type': 'xen',
'hypervisor_version': 3,
'hypervisor_hostname': 'hyper1',
'free_ram_mb': 5 * 1024,
'free_disk_gb': 125,
'current_workload': 2,
'running_vms': 2,
'cpu_info': 'cpu_info',
'disk_available_least': 100
},
{
'id': self.hyper_id_2,
'service': {
'id': self.service_id_2,
'host': 'compute2',
},
'vcpus': 4,
'memory_mb': 10 * 1024,
'local_gb': 250,
'vcpus_used': 2,
'memory_mb_used': 5 * 1024,
'local_gb_used': 125,
'hypervisor_type': 'xen',
'hypervisor_version': 3,
'hypervisor_hostname': 'hyper2',
'free_ram_mb': 5 * 1024,
'free_disk_gb': 125,
'current_workload': 2,
'running_vms': 2,
'cpu_info': 'cpu_info',
'disk_available_least': 100
}
]
}
self.requests_mock.get(self.url('detail'),
json=get_os_hypervisors_detail,
headers=self.headers)
get_os_hypervisors_stats = {
'hypervisor_statistics': {
'count': 2,
'vcpus': 8,
'memory_mb': 20 * 1024,
'local_gb': 500,
'vcpus_used': 4,
'memory_mb_used': 10 * 1024,
'local_gb_used': 250,
'free_ram_mb': 10 * 1024,
'free_disk_gb': 250,
'current_workload': 4,
'running_vms': 4,
'disk_available_least': 200,
}
}
self.requests_mock.get(self.url('statistics'),
json=get_os_hypervisors_stats,
headers=self.headers)
get_os_hypervisors_search = {
'hypervisors': [
{'id': self.hyper_id_1, 'hypervisor_hostname': 'hyper1'},
{'id': self.hyper_id_2, 'hypervisor_hostname': 'hyper2'}
]
}
if uuid_as_id:
url = self.url(hypervisor_hostname_pattern='hyper')
else:
url = self.url('hyper', 'search')
self.requests_mock.get(url,
json=get_os_hypervisors_search,
headers=self.headers)
get_hyper_server = {
'hypervisors': [
{
'id': self.hyper_id_1,
'hypervisor_hostname': 'hyper1',
'servers': [
{'name': 'inst1', 'uuid': 'uuid1'},
{'name': 'inst2', 'uuid': 'uuid2'}
]
},
{
'id': self.hyper_id_2,
'hypervisor_hostname': 'hyper2',
'servers': [
{'name': 'inst3', 'uuid': 'uuid3'},
{'name': 'inst4', 'uuid': 'uuid4'}
]
}
]
}
if uuid_as_id:
url = self.url(hypervisor_hostname_pattern='hyper',
with_servers=True)
else:
url = self.url('hyper', 'servers')
self.requests_mock.get(url,
json=get_hyper_server,
headers=self.headers)
get_os_hypervisors_hyper1 = {
'hypervisor': {
'id': self.hyper_id_1,
'service': {'id': self.service_id_1, 'host': 'compute1'},
'vcpus': 4,
'memory_mb': 10 * 1024,
'local_gb': 250,
'vcpus_used': 2,
'memory_mb_used': 5 * 1024,
'local_gb_used': 125,
'hypervisor_type': 'xen',
'hypervisor_version': 3,
'hypervisor_hostname': 'hyper1',
'free_ram_mb': 5 * 1024,
'free_disk_gb': 125,
'current_workload': 2,
'running_vms': 2,
'cpu_info': 'cpu_info',
'disk_available_least': 100
}
}
self.requests_mock.get(self.url(self.hyper_id_1),
json=get_os_hypervisors_hyper1,
headers=self.headers)
get_os_hypervisors_uptime = {
'hypervisor': {
'id': self.hyper_id_1,
'hypervisor_hostname': 'hyper1',
'uptime': 'fake uptime'
}
}
self.requests_mock.get(self.url(self.hyper_id_1, 'uptime'),
json=get_os_hypervisors_uptime,
headers=self.headers)
class V2_53(V1):
"""Fixture data for the os-hypervisors 2.53 API."""
api_version = '2.53'
hyper_id_1 = 'd480b1b6-2255-43c2-b2c2-d60d42c2c074'
hyper_id_2 = '43a8214d-f36a-4fc0-a25c-3cf35c17522d'
service_id_1 = 'a87743ff-9c29-42ff-805d-2444659b5fc0'
service_id_2 = '0486ab8b-1cfc-4ccb-9d94-9f22ec8bbd6b'