d0c8167413
test_vcpu_pcpu_data_display Change-Id: Ic0310e6a2721aeef4d6cfcb1a06abf8f6e781ca7
98 lines
4.6 KiB
Python
98 lines
4.6 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 unittest import mock
|
|
|
|
from openstack_dashboard import api
|
|
|
|
|
|
def test_vcpu_pcpu_data_display(live_server, driver, user, dashboard_data):
|
|
with mock.patch.object(api.nova, 'service_list') as mocked_s_l, \
|
|
mock.patch.object(api.nova, 'hypervisor_list') as mocked_h_l, \
|
|
mock.patch.object(api.nova, 'hypervisor_stats') as mocked_h_s, \
|
|
mock.patch.object(api.placement, 'get_providers') as mocked_g_p:
|
|
mocked_s_l.return_value = dashboard_data.services.list()
|
|
mocked_h_l.return_value = dashboard_data.hypervisors.list()
|
|
mocked_h_s.return_value = dashboard_data.hypervisors.stats
|
|
|
|
providers = [{}]
|
|
for p in providers:
|
|
inventories = {'VCPU': {'total': 16, 'reserved': 4,
|
|
'allocation_ratio': 4.0},
|
|
'PCPU': {'total': 4, 'reserved': 2,
|
|
'allocation_ratio': 1.0}}
|
|
usages = {'VCPU': 2, 'PCPU': 1}
|
|
vcpus = inventories.get('VCPU')
|
|
pcpus = inventories.get('PCPU')
|
|
p['uuid'] = "test_provider"
|
|
p['inventories'] = inventories
|
|
p['usages'] = usages
|
|
p['vcpus_used'] = usages.get('VCPU')
|
|
p['vcpus_reserved'] = vcpus['reserved']
|
|
p['vcpus'] = vcpus['total']
|
|
p['vcpus_ar'] = vcpus['allocation_ratio']
|
|
p['vcpus_capacity'] = int(vcpus['allocation_ratio'] *
|
|
vcpus['total'])
|
|
p['pcpus_used'] = usages.get('PCPU')
|
|
p['pcpus_reserved'] = pcpus['reserved']
|
|
p['pcpus'] = pcpus['total']
|
|
p['pcpus_ar'] = pcpus['allocation_ratio']
|
|
p['pcpus_capacity'] = int(pcpus['allocation_ratio'] *
|
|
pcpus['total'])
|
|
mocked_g_p.return_value = providers
|
|
|
|
driver.get(live_server.url + '/admin/hypervisors')
|
|
assert (driver.find_element_by_xpath(
|
|
f"//*[normalize-space()='VCPU Usage']/"
|
|
f"ancestor::div[contains(@class,'d3_quota_bar')]"
|
|
f"/div[contains(@class,'h6')]/"
|
|
f"span[1]").text == str(p['vcpus_used']))
|
|
assert (driver.find_element_by_xpath(
|
|
f"//*[normalize-space()='VCPU Usage']/"
|
|
f"ancestor::div[contains(@class,'d3_quota_bar')]"
|
|
f"/div[contains(@class,'h6')]/"
|
|
f"span[2]").text == str(p['vcpus_capacity']))
|
|
|
|
assert (driver.find_element_by_xpath(
|
|
f"//*[normalize-space()='PCPU Usage']/"
|
|
f"ancestor::div[contains(@class,'d3_quota_bar')]"
|
|
f"/div[contains(@class,'h6')]/"
|
|
f"span[1]").text == str(p['pcpus_used']))
|
|
assert (driver.find_element_by_xpath(
|
|
f"//*[normalize-space()='PCPU Usage']/"
|
|
f"ancestor::div[contains(@class,'d3_quota_bar')]"
|
|
f"/div[contains(@class,'h6')]/"
|
|
f"span[2]").text == str(p['pcpus_capacity']))
|
|
|
|
driver.find_element_by_link_text("Resource Provider").click()
|
|
resource_provider_tab = driver.find_element_by_id(
|
|
"hypervisor_info__provider")
|
|
table_header = resource_provider_tab.find_elements_by_css_selector(
|
|
".table_column_header th")
|
|
table_row_test_provider = (
|
|
resource_provider_tab.find_elements_by_css_selector(
|
|
"#providers__row__test_provider td"))
|
|
table_providers = dict(zip((x.text for x in table_header),
|
|
(x.text for x in table_row_test_provider)))
|
|
|
|
want_to_check = {"VCPUs used": p['vcpus_used'],
|
|
"VCPUs reserved": p['vcpus_reserved'],
|
|
"VCPUs total": p['vcpus'],
|
|
"VCPUs allocation ratio": p['vcpus_ar'],
|
|
"PCPUs used": p['pcpus_used'],
|
|
"PCPUs reserved": p['pcpus_reserved'],
|
|
"PCPUs total": p['pcpus'],
|
|
"PCPUs allocation ratio": p['pcpus_ar']}
|
|
|
|
for key, value in want_to_check.items():
|
|
assert table_providers[key] == str(value)
|