diff --git a/doc/api_samples/os-hypervisors/hypervisors-detail-resp.json b/doc/api_samples/os-hypervisors/hypervisors-detail-resp.json new file mode 100644 index 000000000000..b124901ea80c --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-detail-resp.json @@ -0,0 +1,26 @@ +{ + "hypervisors": [ + { + "cpu_info": "?", + "current_workload": 0, + "disk_available_least": null, + "free_disk_gb": 1028, + "free_ram_mb": 7680, + "hypervisor_hostname": "fake-mini", + "hypervisor_type": "fake", + "hypervisor_version": 1, + "id": 1, + "local_gb": 1028, + "local_gb_used": 0, + "memory_mb": 8192, + "memory_mb_used": 512, + "running_vms": 0, + "service": { + "host": "1e0d7892083548cfb347e782d3b20342", + "id": 2 + }, + "vcpus": 1, + "vcpus_used": 0 + } + ] +} \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-detail-resp.xml b/doc/api_samples/os-hypervisors/hypervisors-detail-resp.xml new file mode 100644 index 000000000000..709f4fcd6ddc --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-detail-resp.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-list-resp.json b/doc/api_samples/os-hypervisors/hypervisors-list-resp.json new file mode 100644 index 000000000000..8d94021274fb --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-list-resp.json @@ -0,0 +1,8 @@ +{ + "hypervisors": [ + { + "hypervisor_hostname": "fake-mini", + "id": 1 + } + ] +} \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-list-resp.xml b/doc/api_samples/os-hypervisors/hypervisors-list-resp.xml new file mode 100644 index 000000000000..8a784c592f8b --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-list-resp.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-search-resp.json b/doc/api_samples/os-hypervisors/hypervisors-search-resp.json new file mode 100644 index 000000000000..8d94021274fb --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-search-resp.json @@ -0,0 +1,8 @@ +{ + "hypervisors": [ + { + "hypervisor_hostname": "fake-mini", + "id": 1 + } + ] +} \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-search-resp.xml b/doc/api_samples/os-hypervisors/hypervisors-search-resp.xml new file mode 100644 index 000000000000..8a784c592f8b --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-search-resp.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-servers-resp.json b/doc/api_samples/os-hypervisors/hypervisors-servers-resp.json new file mode 100644 index 000000000000..8d94021274fb --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-servers-resp.json @@ -0,0 +1,8 @@ +{ + "hypervisors": [ + { + "hypervisor_hostname": "fake-mini", + "id": 1 + } + ] +} \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-servers-resp.xml b/doc/api_samples/os-hypervisors/hypervisors-servers-resp.xml new file mode 100644 index 000000000000..950a5ab11fd2 --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-servers-resp.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-show-resp.json b/doc/api_samples/os-hypervisors/hypervisors-show-resp.json new file mode 100644 index 000000000000..c0feecd02c68 --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-show-resp.json @@ -0,0 +1,24 @@ +{ + "hypervisor": { + "cpu_info": "?", + "current_workload": 0, + "disk_available_least": null, + "free_disk_gb": 1028, + "free_ram_mb": 7680, + "hypervisor_hostname": "fake-mini", + "hypervisor_type": "fake", + "hypervisor_version": 1, + "id": 1, + "local_gb": 1028, + "local_gb_used": 0, + "memory_mb": 8192, + "memory_mb_used": 512, + "running_vms": 0, + "service": { + "host": "5641188ab2964f88a21042b493585ff8", + "id": 2 + }, + "vcpus": 1, + "vcpus_used": 0 + } +} \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-show-resp.xml b/doc/api_samples/os-hypervisors/hypervisors-show-resp.xml new file mode 100644 index 000000000000..04feef067181 --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-show-resp.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-statistics-resp.json b/doc/api_samples/os-hypervisors/hypervisors-statistics-resp.json new file mode 100644 index 000000000000..2cfb51e7030a --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-statistics-resp.json @@ -0,0 +1,16 @@ +{ + "hypervisor_statistics": { + "count": 1, + "current_workload": 0, + "disk_available_least": 0, + "free_disk_gb": 1028, + "free_ram_mb": 7680, + "local_gb": 1028, + "local_gb_used": 0, + "memory_mb": 8192, + "memory_mb_used": 512, + "running_vms": 0, + "vcpus": 1, + "vcpus_used": 0 + } +} \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-statistics-resp.xml b/doc/api_samples/os-hypervisors/hypervisors-statistics-resp.xml new file mode 100644 index 000000000000..5d10411e3aef --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-statistics-resp.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-uptime-resp.json b/doc/api_samples/os-hypervisors/hypervisors-uptime-resp.json new file mode 100644 index 000000000000..f5f9d19e7ccd --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-uptime-resp.json @@ -0,0 +1,7 @@ +{ + "hypervisor": { + "hypervisor_hostname": "fake-mini", + "id": 1, + "uptime": " 08:32:11 up 93 days, 18:25, 12 users, load average: 0.20, 0.12, 0.14" + } +} \ No newline at end of file diff --git a/doc/api_samples/os-hypervisors/hypervisors-uptime-resp.xml b/doc/api_samples/os-hypervisors/hypervisors-uptime-resp.xml new file mode 100644 index 000000000000..5c1b2cd7dd98 --- /dev/null +++ b/doc/api_samples/os-hypervisors/hypervisors-uptime-resp.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-detail-resp.json.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-detail-resp.json.tpl new file mode 100644 index 000000000000..88eb4ad86e58 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-detail-resp.json.tpl @@ -0,0 +1,26 @@ +{ + "hypervisors": [ + { + "cpu_info": "?", + "current_workload": 0, + "disk_available_least": null, + "free_disk_gb": 1028, + "free_ram_mb": 7680, + "hypervisor_hostname": "fake-mini", + "hypervisor_type": "fake", + "hypervisor_version": 1, + "id": 1, + "local_gb": 1028, + "local_gb_used": 0, + "memory_mb": 8192, + "memory_mb_used": 512, + "running_vms": 0, + "service": { + "host": "%(host_name)s", + "id": 2 + }, + "vcpus": 1, + "vcpus_used": 0 + } + ] +} diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-detail-resp.xml.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-detail-resp.xml.tpl new file mode 100644 index 000000000000..f0c20662d4e7 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-detail-resp.xml.tpl @@ -0,0 +1,6 @@ + + + + + + diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-list-resp.json.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-list-resp.json.tpl new file mode 100644 index 000000000000..8d94021274fb --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-list-resp.json.tpl @@ -0,0 +1,8 @@ +{ + "hypervisors": [ + { + "hypervisor_hostname": "fake-mini", + "id": 1 + } + ] +} \ No newline at end of file diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-list-resp.xml.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-list-resp.xml.tpl new file mode 100644 index 000000000000..6b7d9d7ca1aa --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-list-resp.xml.tpl @@ -0,0 +1,4 @@ + + + + diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-search-resp.json.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-search-resp.json.tpl new file mode 100644 index 000000000000..8d94021274fb --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-search-resp.json.tpl @@ -0,0 +1,8 @@ +{ + "hypervisors": [ + { + "hypervisor_hostname": "fake-mini", + "id": 1 + } + ] +} \ No newline at end of file diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-search-resp.xml.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-search-resp.xml.tpl new file mode 100644 index 000000000000..6b7d9d7ca1aa --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-search-resp.xml.tpl @@ -0,0 +1,4 @@ + + + + diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-servers-resp.json.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-servers-resp.json.tpl new file mode 100644 index 000000000000..8d94021274fb --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-servers-resp.json.tpl @@ -0,0 +1,8 @@ +{ + "hypervisors": [ + { + "hypervisor_hostname": "fake-mini", + "id": 1 + } + ] +} \ No newline at end of file diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-servers-resp.xml.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-servers-resp.xml.tpl new file mode 100644 index 000000000000..7782732ba6ea --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-servers-resp.xml.tpl @@ -0,0 +1,6 @@ + + + + + + diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-show-resp.json.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-show-resp.json.tpl new file mode 100644 index 000000000000..4eaded8d7530 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-show-resp.json.tpl @@ -0,0 +1,24 @@ +{ + "hypervisor": { + "cpu_info": "?", + "current_workload": 0, + "disk_available_least": null, + "free_disk_gb": 1028, + "free_ram_mb": 7680, + "hypervisor_hostname": "fake-mini", + "hypervisor_type": "fake", + "hypervisor_version": 1, + "id": %(hypervisor_id)s, + "local_gb": 1028, + "local_gb_used": 0, + "memory_mb": 8192, + "memory_mb_used": 512, + "running_vms": 0, + "service": { + "host": "%(host_name)s", + "id": 2 + }, + "vcpus": 1, + "vcpus_used": 0 + } +} diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-show-resp.xml.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-show-resp.xml.tpl new file mode 100644 index 000000000000..336f23be2921 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-show-resp.xml.tpl @@ -0,0 +1,4 @@ + + + + diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-statistics-resp.json.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-statistics-resp.json.tpl new file mode 100644 index 000000000000..2cfb51e7030a --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-statistics-resp.json.tpl @@ -0,0 +1,16 @@ +{ + "hypervisor_statistics": { + "count": 1, + "current_workload": 0, + "disk_available_least": 0, + "free_disk_gb": 1028, + "free_ram_mb": 7680, + "local_gb": 1028, + "local_gb_used": 0, + "memory_mb": 8192, + "memory_mb_used": 512, + "running_vms": 0, + "vcpus": 1, + "vcpus_used": 0 + } +} \ No newline at end of file diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-statistics-resp.xml.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-statistics-resp.xml.tpl new file mode 100644 index 000000000000..5d10411e3aef --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-statistics-resp.xml.tpl @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-uptime-resp.json.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-uptime-resp.json.tpl new file mode 100644 index 000000000000..8a36c65f232a --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-uptime-resp.json.tpl @@ -0,0 +1,7 @@ +{ + "hypervisor": { + "hypervisor_hostname": "fake-mini", + "id": %(hypervisor_id)s, + "uptime": " 08:32:11 up 93 days, 18:25, 12 users, load average: 0.20, 0.12, 0.14" + } +} diff --git a/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-uptime-resp.xml.tpl b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-uptime-resp.xml.tpl new file mode 100644 index 000000000000..04219f5b5dd3 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-hypervisors/hypervisors-uptime-resp.xml.tpl @@ -0,0 +1,2 @@ + + diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py index 05d528ec2931..8282990f9170 100644 --- a/nova/tests/integrated/test_api_samples.py +++ b/nova/tests/integrated/test_api_samples.py @@ -383,7 +383,6 @@ class ApiSamplesTrap(ApiSampleTestBase): # removed) soon. do_not_approve_additions = [] do_not_approve_additions.append('os-create-server-ext') - do_not_approve_additions.append('os-hypervisors') do_not_approve_additions.append('os-volumes') tests = self._get_extensions_tested() @@ -3333,6 +3332,66 @@ class FlavorAccessSampleJsonTests(ApiSampleTestBase): class FlavorAccessSampleXmlTests(FlavorAccessSampleJsonTests): + ctype = 'xml' + + +class HypervisorsSampleJsonTests(ApiSampleTestBase): + extension_name = ("nova.api.openstack.compute.contrib.hypervisors." + "Hypervisors") + + def test_hypervisors_list(self): + response = self._do_get('os-hypervisors') + self.assertEqual(response.status, 200) + return self._verify_response('hypervisors-list-resp', + {}, response) + + def test_hypervisors_search(self): + response = self._do_get('os-hypervisors/fake/search') + self.assertEqual(response.status, 200) + return self._verify_response('hypervisors-search-resp', + {}, response) + + def test_hypervisors_servers(self): + response = self._do_get('os-hypervisors/fake/servers') + self.assertEqual(response.status, 200) + return self._verify_response('hypervisors-servers-resp', + {}, response) + + def test_hypervisors_show(self): + hypervisor_id = 1 + subs = { + 'hypervisor_id': hypervisor_id + } + response = self._do_get('os-hypervisors/%s' % hypervisor_id) + self.assertEqual(response.status, 200) + subs.update(self._get_regexes()) + return self._verify_response('hypervisors-show-resp', + subs, response) + + def test_hypervisors_statistics(self): + response = self._do_get('os-hypervisors/statistics') + self.assertEqual(response.status, 200) + return self._verify_response('hypervisors-statistics-resp', + {}, response) + + def test_hypervisors_uptime(self): + def fake_get_host_uptime(self, context, hyp): + return (" 08:32:11 up 93 days, 18:25, 12 users, load average:" + " 0.20, 0.12, 0.14") + + self.stubs.Set(compute_api.HostAPI, + 'get_host_uptime', fake_get_host_uptime) + hypervisor_id = 1 + response = self._do_get('os-hypervisors/%s/uptime' % hypervisor_id) + self.assertEqual(response.status, 200) + subs = { + 'hypervisor_id': hypervisor_id, + } + return self._verify_response('hypervisors-uptime-resp', + subs, response) + + +class HypervisorsSampleXmlTests(HypervisorsSampleJsonTests): ctype = "xml"