compute: Migrate 'host set' to SDK
This was the sole outstanding command to be migrated to SDK. We also clean up the old in-tree wrappers we have in the process and add missing error checks for the 'host list' and 'host show' commands. Change-Id: I5635469b63ab3370fb5118e4f8a1758002381aa5 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
@@ -19,7 +19,7 @@ from osc_lib import exceptions
|
||||
from osc_lib.i18n import _
|
||||
|
||||
|
||||
# TODO(dtroyer): Mingrate this to osc-lib
|
||||
# TODO(dtroyer): Migrate this to osc-lib
|
||||
class InvalidValue(Exception):
|
||||
"""An argument value is not valid: wrong type, out of range, etc"""
|
||||
|
||||
@@ -269,80 +269,6 @@ class APIv2(api.BaseAPI):
|
||||
|
||||
return self.list(url)["floating_ip_pools"]
|
||||
|
||||
# Hosts
|
||||
|
||||
def host_list(
|
||||
self,
|
||||
zone=None,
|
||||
):
|
||||
"""Lists hypervisor Hosts
|
||||
|
||||
https://docs.openstack.org/api-ref/compute/#list-hosts
|
||||
Valid for Compute 2.0 - 2.42
|
||||
|
||||
:param string zone:
|
||||
Availability zone
|
||||
:returns: A dict of the floating IP attributes
|
||||
"""
|
||||
|
||||
url = "/os-hosts"
|
||||
if zone:
|
||||
url = '/os-hosts?zone=%s' % zone
|
||||
|
||||
return self.list(url)["hosts"]
|
||||
|
||||
def host_set(
|
||||
self, host=None, status=None, maintenance_mode=None, **params
|
||||
):
|
||||
"""Modify host properties
|
||||
|
||||
https://docs.openstack.org/api-ref/compute/#update-host-status
|
||||
Valid for Compute 2.0 - 2.42
|
||||
|
||||
status
|
||||
maintenance_mode
|
||||
"""
|
||||
|
||||
url = "/os-hosts"
|
||||
|
||||
params = {}
|
||||
if status:
|
||||
params['status'] = status
|
||||
if maintenance_mode:
|
||||
params['maintenance_mode'] = maintenance_mode
|
||||
if params == {}:
|
||||
# Don't bother calling if nothing given
|
||||
return None
|
||||
else:
|
||||
return self._request(
|
||||
"PUT",
|
||||
f"/{url}/{host}",
|
||||
json=params,
|
||||
).json()
|
||||
|
||||
def host_show(
|
||||
self,
|
||||
host=None,
|
||||
):
|
||||
"""Show host
|
||||
|
||||
https://docs.openstack.org/api-ref/compute/#show-host-details
|
||||
Valid for Compute 2.0 - 2.42
|
||||
"""
|
||||
|
||||
url = "/os-hosts"
|
||||
|
||||
r_host = self.find(
|
||||
url,
|
||||
attr='host_name',
|
||||
value=host,
|
||||
)
|
||||
|
||||
data = []
|
||||
for h in r_host:
|
||||
data.append(h['resource'])
|
||||
return data
|
||||
|
||||
# Networks
|
||||
|
||||
def network_create(
|
||||
|
||||
Reference in New Issue
Block a user