Merge "Remove kubernetes checks, wrs-headers from Rest API calls, and dead code."
This commit is contained in:
commit
803cf5a986
@ -514,103 +514,6 @@ class NFVIComputeAPI(nfvi.api.v1.NFVIComputeAPI):
|
||||
callback.send(response)
|
||||
callback.close()
|
||||
|
||||
def create_host_services(self, future, host_uuid, host_name,
|
||||
host_personality, callback):
|
||||
"""
|
||||
Create Host Services, notify Nova to create services for a host
|
||||
"""
|
||||
response = dict()
|
||||
response['completed'] = False
|
||||
response['reason'] = ''
|
||||
|
||||
try:
|
||||
future.set_timeouts(config.CONF.get('nfvi-timeouts', None))
|
||||
|
||||
if self._host_supports_nova_compute(host_personality):
|
||||
response['reason'] = 'failed to get openstack token from ' \
|
||||
'keystone'
|
||||
if self._token is None or \
|
||||
self._token.is_expired():
|
||||
future.work(openstack.get_token, self._directory)
|
||||
future.result = (yield)
|
||||
|
||||
if not future.result.is_complete() or \
|
||||
future.result.data is None:
|
||||
DLOG.error("OpenStack get-token did not complete, "
|
||||
"host_uuid=%s, host_name=%s." % (host_uuid,
|
||||
host_name))
|
||||
return
|
||||
|
||||
self._token = future.result.data
|
||||
|
||||
response['reason'] = 'failed to create nova services'
|
||||
|
||||
# Send the create request to Nova.
|
||||
future.work(nova.create_host_services, self._token,
|
||||
host_name)
|
||||
future.result = (yield)
|
||||
|
||||
if not future.result.is_complete():
|
||||
DLOG.error("Nova create-host-services failed, operation "
|
||||
"did not complete, host_uuid=%s, host_name=%s."
|
||||
% (host_uuid, host_name))
|
||||
return
|
||||
|
||||
result_data = future.result.data['service']
|
||||
if not ('created' == result_data['status'] and
|
||||
host_name == result_data['host'] and
|
||||
'nova-compute' == result_data['binary']):
|
||||
DLOG.error("Nova create-host-services failed, invalid "
|
||||
"response, host_uuid=%s, host_name=%s, "
|
||||
"response=%s."
|
||||
% (host_uuid, host_name, response))
|
||||
return
|
||||
|
||||
response['reason'] = 'failed to disable nova services'
|
||||
|
||||
# Send the disable request to Nova.
|
||||
future.work(nova.disable_host_services, self._token,
|
||||
host_name)
|
||||
future.result = (yield)
|
||||
|
||||
if not future.result.is_complete():
|
||||
DLOG.error("Nova disable-host-services failed, operation "
|
||||
"did not complete, host_uuid=%s, host_name=%s."
|
||||
% (host_uuid, host_name))
|
||||
return
|
||||
|
||||
result_data = future.result.data['service']
|
||||
|
||||
if not ('disabled' == result_data['status'] and
|
||||
host_name == result_data['host'] and
|
||||
'nova-compute' == result_data['binary']):
|
||||
DLOG.error("Nova disable-host-services failed, invalid "
|
||||
"response, host_uuid=%s, host_name=%s, "
|
||||
"response=%s."
|
||||
% (host_uuid, host_name, response))
|
||||
return
|
||||
|
||||
response['completed'] = True
|
||||
response['reason'] = ''
|
||||
|
||||
except exceptions.OpenStackRestAPIException as e:
|
||||
if httplib.UNAUTHORIZED == e.http_status_code:
|
||||
response['error-code'] = nfvi.NFVI_ERROR_CODE.TOKEN_EXPIRED
|
||||
if self._token is not None:
|
||||
self._token.set_expired()
|
||||
|
||||
else:
|
||||
DLOG.exception("Caught exception while trying to create "
|
||||
"nova services, error=%s." % e)
|
||||
|
||||
except Exception as e:
|
||||
DLOG.exception("Caught exception while trying to create %s nova "
|
||||
"services, error=%s." % (host_name, e))
|
||||
|
||||
finally:
|
||||
callback.send(response)
|
||||
callback.close()
|
||||
|
||||
def delete_host_services(self, future, host_uuid, host_name,
|
||||
host_personality, callback):
|
||||
"""
|
||||
|
@ -4,7 +4,6 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
import json
|
||||
import os
|
||||
from six.moves import http_client as httplib
|
||||
|
||||
from nfv_common import debug
|
||||
@ -122,12 +121,7 @@ class NFVIInfrastructureAPI(nfvi.api.v1.NFVIInfrastructureAPI):
|
||||
|
||||
@staticmethod
|
||||
def _host_supports_kubernetes(personality):
|
||||
# TODO(bwensley): This check will disappear once kubernetes is the
|
||||
# default
|
||||
if os.path.isfile('/etc/kubernetes/admin.conf'):
|
||||
return ('worker' in personality or 'controller' in personality)
|
||||
else:
|
||||
return False
|
||||
return ('worker' in personality or 'controller' in personality)
|
||||
|
||||
@staticmethod
|
||||
def _get_host_labels(host_label_list):
|
||||
|
@ -3,7 +3,6 @@
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
import os
|
||||
from six.moves import http_client as httplib
|
||||
|
||||
from nfv_common import debug
|
||||
@ -92,15 +91,6 @@ class NFVINetworkAPI(nfvi.api.v1.NFVINetworkAPI):
|
||||
(self._directory.get_service_info(
|
||||
OPENSTACK_SERVICE.NEUTRON) is not None))
|
||||
|
||||
@staticmethod
|
||||
def _host_supports_kubernetes():
|
||||
# TODO(ksmith): This check will disappear once kubernetes is the
|
||||
# default
|
||||
# Note we do not check personality as the assumption is that
|
||||
# in the case of kubernetes, we won't even get to this check
|
||||
# unless the correct label is applied to the host.
|
||||
return (os.path.isfile('/etc/kubernetes/admin.conf'))
|
||||
|
||||
def get_networks(self, future, paging, callback):
|
||||
"""
|
||||
Get a list of networks
|
||||
@ -781,135 +771,6 @@ class NFVINetworkAPI(nfvi.api.v1.NFVINetworkAPI):
|
||||
callback.send(response)
|
||||
callback.close()
|
||||
|
||||
def create_host_services(self, future, host_uuid, host_name,
|
||||
host_personality, callback):
|
||||
"""
|
||||
Create Host Services, notify neutron to create services for a host.
|
||||
Only used in non k8s config.
|
||||
"""
|
||||
response = dict()
|
||||
response['completed'] = False
|
||||
response['reason'] = ''
|
||||
|
||||
try:
|
||||
future.set_timeouts(config.CONF.get('nfvi-timeouts', None))
|
||||
|
||||
if self._host_supports_neutron(host_personality):
|
||||
response['reason'] = 'failed to get openstack token from ' \
|
||||
'keystone'
|
||||
if self._token is None or \
|
||||
self._token.is_expired():
|
||||
future.work(openstack.get_token, self._directory)
|
||||
future.result = (yield)
|
||||
|
||||
if not future.result.is_complete() or \
|
||||
future.result.data is None:
|
||||
DLOG.error("OpenStack get-token did not complete, "
|
||||
"host_uuid=%s, host_name=%s." % (host_uuid,
|
||||
host_name))
|
||||
return
|
||||
|
||||
self._token = future.result.data
|
||||
|
||||
response['reason'] = 'failed to get neutron extensions'
|
||||
if self._neutron_extensions is None:
|
||||
future.work(neutron.get_extensions, self._token)
|
||||
future.result = (yield)
|
||||
|
||||
if not future.result.is_complete():
|
||||
DLOG.error("Neutron get-extensions did not complete.")
|
||||
return
|
||||
|
||||
self._neutron_extensions = future.result.data
|
||||
|
||||
if neutron.lookup_extension(neutron.EXTENSION_NAMES.HOST,
|
||||
self._neutron_extensions):
|
||||
|
||||
# Send Delete request to Neutron
|
||||
response['reason'] = \
|
||||
'failed to delete existing neutron services'
|
||||
|
||||
future.work(neutron.delete_host_services_by_name,
|
||||
self._token,
|
||||
host_name, host_uuid, only_if_changed=True)
|
||||
future.result = (yield)
|
||||
|
||||
if not future.result.is_complete():
|
||||
DLOG.error("Neutron delete-host-services-by-name "
|
||||
"failed, operation did not complete, "
|
||||
"host_uuid=%s, host_name=%s." % (host_uuid,
|
||||
host_name))
|
||||
return
|
||||
|
||||
response['reason'] = 'failed to create neutron services'
|
||||
|
||||
# Send the create request to Neutron.
|
||||
future.work(neutron.create_host_services,
|
||||
self._token,
|
||||
host_name, host_uuid)
|
||||
future.result = (yield)
|
||||
|
||||
if not future.result.is_complete():
|
||||
DLOG.error("Neutron create-host-services failed, "
|
||||
"operation did not complete, host_uuid=%s, "
|
||||
"host_name=%s."
|
||||
% (host_uuid, host_name))
|
||||
return
|
||||
|
||||
result_data = future.result.data['host']
|
||||
if not ('down' == result_data['availability'] and
|
||||
host_name == result_data['name'] and
|
||||
host_uuid == result_data['id']):
|
||||
DLOG.error("Neutron create-host-services failed, "
|
||||
"operation did not complete, host_uuid=%s, "
|
||||
"host_name=%s."
|
||||
% (host_uuid, host_name))
|
||||
return
|
||||
|
||||
response['reason'] = 'failed to disable neutron services'
|
||||
|
||||
# Send the disable request to Neutron
|
||||
future.work(neutron.disable_host_services,
|
||||
self._token,
|
||||
host_uuid)
|
||||
future.result = (yield)
|
||||
|
||||
if not future.result.is_complete():
|
||||
DLOG.error("Neutron disable-host-services failed, "
|
||||
"operation did not complete, host_uuid=%s, "
|
||||
"host_name=%s." % (host_uuid, host_name))
|
||||
return
|
||||
|
||||
result_data = future.result.data['host']
|
||||
if not ('down' == result_data['availability'] and
|
||||
host_name == result_data['name'] and
|
||||
host_uuid == result_data['id']):
|
||||
DLOG.error("Neutron disable-host-services failed, "
|
||||
"operation did not complete, host_uuid=%s, "
|
||||
"host_name=%s." % (host_uuid, host_name))
|
||||
return
|
||||
|
||||
response['completed'] = True
|
||||
response['reason'] = ''
|
||||
|
||||
except exceptions.OpenStackRestAPIException as e:
|
||||
if httplib.UNAUTHORIZED == e.http_status_code:
|
||||
response['error-code'] = nfvi.NFVI_ERROR_CODE.TOKEN_EXPIRED
|
||||
if self._token is not None:
|
||||
self._token.set_expired()
|
||||
|
||||
else:
|
||||
DLOG.exception("Caught exception while trying to create "
|
||||
"neutron services, error=%s." % e)
|
||||
|
||||
except Exception as e:
|
||||
DLOG.exception("Caught exception while trying to create %s "
|
||||
"neutron services, error=%s." % (host_name, e))
|
||||
|
||||
finally:
|
||||
callback.send(response)
|
||||
callback.close()
|
||||
|
||||
def delete_host_services(self, future, host_uuid, host_name,
|
||||
host_personality, callback):
|
||||
"""
|
||||
@ -951,23 +812,13 @@ class NFVINetworkAPI(nfvi.api.v1.NFVINetworkAPI):
|
||||
|
||||
self._neutron_extensions = future.result.data
|
||||
|
||||
if self._host_supports_kubernetes():
|
||||
extension_name = neutron.EXTENSION_NAMES.AGENT
|
||||
else:
|
||||
extension_name = neutron.EXTENSION_NAMES.HOST
|
||||
|
||||
if neutron.lookup_extension(extension_name,
|
||||
if neutron.lookup_extension(neutron.EXTENSION_NAMES.AGENT,
|
||||
self._neutron_extensions):
|
||||
|
||||
response['reason'] = 'failed to delete neutron services'
|
||||
|
||||
# Send the delete request to Neutron.
|
||||
if not self._host_supports_kubernetes():
|
||||
future.work(neutron.delete_host_services,
|
||||
self._token, host_uuid)
|
||||
else:
|
||||
future.work(neutron.delete_network_agents,
|
||||
self._token, host_name)
|
||||
future.work(neutron.delete_network_agents,
|
||||
self._token, host_name)
|
||||
try:
|
||||
future.result = (yield)
|
||||
|
||||
@ -1045,22 +896,13 @@ class NFVINetworkAPI(nfvi.api.v1.NFVINetworkAPI):
|
||||
|
||||
self._neutron_extensions = future.result.data
|
||||
|
||||
if self._host_supports_kubernetes():
|
||||
extension_name = neutron.EXTENSION_NAMES.AGENT
|
||||
else:
|
||||
extension_name = neutron.EXTENSION_NAMES.HOST
|
||||
|
||||
if neutron.lookup_extension(extension_name,
|
||||
if neutron.lookup_extension(neutron.EXTENSION_NAMES.AGENT,
|
||||
self._neutron_extensions):
|
||||
response['reason'] = 'failed to enable neutron services'
|
||||
|
||||
# Send the Enable request to Neutron
|
||||
if not self._host_supports_kubernetes():
|
||||
future.work(neutron.enable_host_services,
|
||||
self._token, host_uuid)
|
||||
else:
|
||||
future.work(neutron.enable_network_agents,
|
||||
self._token, host_name)
|
||||
future.work(neutron.enable_network_agents,
|
||||
self._token, host_name)
|
||||
|
||||
future.result = (yield)
|
||||
|
||||
@ -1071,21 +913,11 @@ class NFVINetworkAPI(nfvi.api.v1.NFVINetworkAPI):
|
||||
% (host_uuid, host_name))
|
||||
return
|
||||
|
||||
if not self._host_supports_kubernetes():
|
||||
result_data = future.result.data['host']
|
||||
if not ('up' == result_data['availability'] and
|
||||
host_name == result_data['name'] and
|
||||
host_uuid == result_data['id']):
|
||||
DLOG.error("Neutron enable-host-services failed, "
|
||||
"operation did not complete, host_uuid=%s, "
|
||||
"host_name=%s." % (host_uuid, host_name))
|
||||
return
|
||||
else:
|
||||
if not future.result.data:
|
||||
DLOG.error("Neutron enable-host-services (agents) failed, "
|
||||
"operation did not complete, host_uuid=%s, "
|
||||
"host_name=%s." % (host_uuid, host_name))
|
||||
return
|
||||
if not future.result.data:
|
||||
DLOG.error("Neutron enable-host-services (agents) failed, "
|
||||
"operation did not complete, host_uuid=%s, "
|
||||
"host_name=%s." % (host_uuid, host_name))
|
||||
return
|
||||
|
||||
response['completed'] = True
|
||||
response['reason'] = ''
|
||||
@ -1810,21 +1642,12 @@ class NFVINetworkAPI(nfvi.api.v1.NFVINetworkAPI):
|
||||
|
||||
self._neutron_extensions = future.result.data
|
||||
|
||||
if self._host_supports_kubernetes():
|
||||
extension_name = neutron.EXTENSION_NAMES.AGENT
|
||||
else:
|
||||
extension_name = neutron.EXTENSION_NAMES.HOST
|
||||
|
||||
if neutron.lookup_extension(extension_name,
|
||||
if neutron.lookup_extension(neutron.EXTENSION_NAMES.AGENT,
|
||||
self._neutron_extensions):
|
||||
# Send Query request to Neutron
|
||||
if not self._host_supports_kubernetes():
|
||||
future.work(neutron.query_host_services,
|
||||
self._token, host_name)
|
||||
else:
|
||||
future.work(neutron.query_network_agents,
|
||||
self._token, host_name,
|
||||
check_fully_up)
|
||||
future.work(neutron.query_network_agents,
|
||||
self._token, host_name,
|
||||
check_fully_up)
|
||||
|
||||
future.result = (yield)
|
||||
|
||||
@ -1900,23 +1723,13 @@ class NFVINetworkAPI(nfvi.api.v1.NFVINetworkAPI):
|
||||
|
||||
self._neutron_extensions = future.result.data
|
||||
|
||||
if self._host_supports_kubernetes():
|
||||
extension_name = neutron.EXTENSION_NAMES.AGENT
|
||||
else:
|
||||
extension_name = neutron.EXTENSION_NAMES.HOST
|
||||
|
||||
if neutron.lookup_extension(extension_name,
|
||||
if neutron.lookup_extension(neutron.EXTENSION_NAMES.AGENT,
|
||||
self._neutron_extensions):
|
||||
response['reason'] = 'failed to disable neutron services'
|
||||
|
||||
# Send the Disable request to Neutron
|
||||
if not self._host_supports_kubernetes():
|
||||
future.work(neutron.disable_host_services,
|
||||
self._token,
|
||||
host_uuid)
|
||||
else:
|
||||
future.work(neutron.disable_network_agents,
|
||||
self._token, host_name)
|
||||
future.work(neutron.disable_network_agents,
|
||||
self._token, host_name)
|
||||
|
||||
future.result = (yield)
|
||||
|
||||
@ -1926,22 +1739,11 @@ class NFVINetworkAPI(nfvi.api.v1.NFVINetworkAPI):
|
||||
"host_name=%s." % (host_uuid, host_name))
|
||||
return
|
||||
|
||||
if not self._host_supports_kubernetes():
|
||||
result_data = future.result.data['host']
|
||||
if not ('down' == result_data['availability'] and
|
||||
host_name == result_data['name'] and
|
||||
host_uuid == result_data['id']):
|
||||
DLOG.error("Neutron disable-host-services failed, "
|
||||
"operation did not complete, host_uuid=%s, "
|
||||
"host_name=%s." % (host_uuid, host_name))
|
||||
return
|
||||
|
||||
else:
|
||||
if not future.result.data:
|
||||
DLOG.error("Neutron disable-host-services (agents) failed, "
|
||||
"operation did not complete, host_uuid=%s, "
|
||||
"host_name=%s." % (host_uuid, host_name))
|
||||
return
|
||||
if not future.result.data:
|
||||
DLOG.error("Neutron disable-host-services (agents) failed, "
|
||||
"operation did not complete, host_uuid=%s, "
|
||||
"host_name=%s." % (host_uuid, host_name))
|
||||
return
|
||||
|
||||
response['completed'] = True
|
||||
response['reason'] = ''
|
||||
|
@ -61,7 +61,6 @@ def get_volumes(token, page_limit=None, next_page=None, all_tenants=True):
|
||||
api_cmd = next_page
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
@ -79,7 +78,6 @@ def create_volume(token, volume_name, volume_description, size_gb,
|
||||
api_cmd = url + "/volumes"
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
volume = dict()
|
||||
@ -112,7 +110,6 @@ def update_volume(token, volume_id, volume_description):
|
||||
api_cmd = url + "/volumes/%s" % volume_id
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
volume = dict()
|
||||
@ -137,7 +134,6 @@ def delete_volume(token, volume_id):
|
||||
api_cmd = url + "/volumes/%s" % volume_id
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "DELETE", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
@ -154,7 +150,6 @@ def get_volume(token, volume_id):
|
||||
api_cmd = url + "/volumes/%s" % volume_id
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
@ -174,7 +169,6 @@ def get_volume_snapshots(token, all_tenants=True):
|
||||
api_cmd += "?all_tenants=1"
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
|
@ -294,7 +294,6 @@ def get_extensions(token):
|
||||
api_cmd = url + "/v2.0/extensions.json"
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd)
|
||||
@ -318,7 +317,6 @@ def get_networks(token, page_limit=None, next_page=None):
|
||||
api_cmd = next_page
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
@ -336,7 +334,6 @@ def create_network(token, network_name, network_type, segmentation_id,
|
||||
api_cmd = url + "/v2.0/networks"
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
network = dict()
|
||||
@ -370,7 +367,6 @@ def update_network(token, network_id, admin_state=None, shared=None):
|
||||
api_cmd = url + "/v2.0/networks/%s" % network_id
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
network = dict()
|
||||
@ -403,7 +399,6 @@ def delete_network(token, network_id):
|
||||
api_cmd = url + "/v2.0/networks/%s" % network_id
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "DELETE", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
@ -420,7 +415,6 @@ def get_network(token, network_id):
|
||||
api_cmd = url + "/v2.0/networks/%s" % network_id
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
@ -443,7 +437,6 @@ def get_subnets(token, page_limit=None, next_page=None):
|
||||
api_cmd = next_page
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
@ -461,7 +454,6 @@ def create_subnet(token, network_id, subnet_name, ip_version, cidr,
|
||||
api_cmd = url + "/v2.0/subnets"
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
subnet = dict()
|
||||
@ -496,7 +488,6 @@ def update_subnet(token, subnet_id, gateway_ip=None, delete_gateway=False,
|
||||
api_cmd = url + "/v2.0/subnets/%s" % subnet_id
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
subnet = dict()
|
||||
@ -529,7 +520,6 @@ def delete_subnet(token, subnet_id):
|
||||
api_cmd = url + "/v2.0/subnets/%s" % subnet_id
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "DELETE", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
@ -546,7 +536,6 @@ def get_subnet(token, subnet_id):
|
||||
api_cmd = url + "/v2.0/subnets/%s" % subnet_id
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
@ -563,39 +552,11 @@ def get_ports_for_instance(token, instance_uuid):
|
||||
api_cmd = url + "/v2.0/ports?device_id=%s" % (instance_uuid)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
|
||||
|
||||
def create_host_services(token, hostname, host_uuid):
|
||||
"""
|
||||
Asks OpenStack Neutron to create a host
|
||||
"""
|
||||
url = token.get_service_url(OPENSTACK_SERVICE.NEUTRON)
|
||||
if url is None:
|
||||
raise ValueError("OpenStack Neutron URL is invalid")
|
||||
|
||||
api_cmd = url + "/v2.0/hosts.json"
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
payload = dict()
|
||||
payload['availability'] = 'down'
|
||||
payload['id'] = host_uuid
|
||||
payload['name'] = hostname
|
||||
|
||||
api_cmd_payload = dict()
|
||||
api_cmd_payload['host'] = payload
|
||||
|
||||
response = rest_api_request(token, "POST", api_cmd, api_cmd_headers,
|
||||
json.dumps(api_cmd_payload))
|
||||
return response
|
||||
|
||||
|
||||
def delete_host_services(token, host_uuid):
|
||||
"""
|
||||
Asks OpenStack Neutron to delete a host
|
||||
@ -607,7 +568,6 @@ def delete_host_services(token, host_uuid):
|
||||
api_cmd = url + "/v2.0/hosts/%s" % host_uuid
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
response = rest_api_request(token, "DELETE", api_cmd, api_cmd_headers)
|
||||
return response
|
||||
@ -655,7 +615,6 @@ def delete_host_services_by_name(token, host_name, host_uuid,
|
||||
api_cmd = url + "/v2.0/hosts.json?fields=id&fields=name"
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd)
|
||||
@ -681,7 +640,6 @@ def enable_host_services(token, host_uuid):
|
||||
api_cmd = url + "/v2.0/hosts/%s" % host_uuid
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
payload = dict()
|
||||
@ -758,7 +716,6 @@ def disable_host_services(token, host_uuid):
|
||||
api_cmd = url + "/v2.0/hosts/%s" % host_uuid
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
payload = dict()
|
||||
@ -825,7 +782,6 @@ def query_host_services(token, host_name):
|
||||
api_cmd = url + "/v2.0/hosts.json?fields=id&name=%s" % host_name
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd)
|
||||
|
@ -213,7 +213,6 @@ def get_host_aggregates(token):
|
||||
api_cmd = url + "/v2.1/%s/os-aggregates" % token.get_tenant_id()
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
@ -232,7 +231,6 @@ def get_hypervisor(token, hypervisor_uuid):
|
||||
hypervisor_uuid)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
@ -250,7 +248,6 @@ def get_hypervisors(token):
|
||||
api_cmd = url + "/v2.1/%s/os-hypervisors" % token.get_tenant_id()
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
@ -274,7 +271,6 @@ def get_flavors(token, page_limit=None, next_page=None):
|
||||
api_cmd = next_page
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
@ -293,7 +289,6 @@ def create_flavor(token, flavor_id, flavor_name, vcpus, ram_mb, disk_gb,
|
||||
api_cmd = url + "/v2.1/%s/flavors" % token.get_tenant_id()
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
@ -326,7 +321,6 @@ def delete_flavor(token, flavor_id):
|
||||
api_cmd = url + "/v2.1/%s/flavors/%s" % (token.get_tenant_id(), flavor_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
response = rest_api_request(token, "DELETE", api_cmd, api_cmd_headers)
|
||||
@ -344,7 +338,6 @@ def get_flavor(token, flavor_id):
|
||||
api_cmd = url + "/v2.1/%s/flavors/%s" % (token.get_tenant_id(), flavor_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
@ -362,7 +355,6 @@ def set_flavor_extra_specs(token, flavor_id, extra_specs):
|
||||
api_cmd = url + "/v2.1/%s/flavors/%s/os-extra_specs" % (token.get_tenant_id(),
|
||||
flavor_id)
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
@ -386,7 +378,6 @@ def get_flavor_extra_specs(token, flavor_id):
|
||||
flavor_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
@ -409,7 +400,6 @@ def get_server_groups(token, all_projects=True):
|
||||
api_cmd += "?all_projects=True"
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
@ -443,7 +433,6 @@ def get_servers(token, page_limit=None, next_page=None, all_tenants=True,
|
||||
api_cmd = next_page
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
if context is None:
|
||||
response = rest_api_request(token, "GET", api_cmd, api_cmd_headers)
|
||||
@ -473,7 +462,6 @@ def create_server(token, server_name, flavor_id, image_id, block_devices=None,
|
||||
api_cmd = url + "/v2.1/%s/servers" % tenant_id
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
server = dict()
|
||||
@ -527,7 +515,6 @@ def delete_server(token, server_id, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
if context is None:
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
@ -557,7 +544,6 @@ def get_server(token, server_id, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
|
||||
if context is None:
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
@ -588,7 +574,6 @@ def live_migrate_server(token, server_id, to_host_name=None,
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
server = dict()
|
||||
@ -633,7 +618,6 @@ def cold_migrate_server(token, server_id, to_host_name=None, migrate=None,
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
api_cmd_payload = dict()
|
||||
@ -675,7 +659,6 @@ def resize_server(token, server_id, flavor_id, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
resize = dict()
|
||||
@ -714,7 +697,6 @@ def resize_server_confirm(token, server_id, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
api_cmd_payload = dict()
|
||||
@ -750,7 +732,6 @@ def resize_server_revert(token, server_id, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
api_cmd_payload = dict()
|
||||
@ -801,7 +782,6 @@ def evacuate_server(token, server_id, admin_password=None, to_host_name=None,
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
server = dict()
|
||||
@ -845,7 +825,6 @@ def reboot_server(token, server_id, reboot_type, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
reboot = dict()
|
||||
@ -885,7 +864,6 @@ def rebuild_server(token, server_id, server_name, image_id,
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
rebuild = dict()
|
||||
@ -928,7 +906,6 @@ def pause_server(token, server_id, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
api_cmd_payload = dict()
|
||||
@ -964,7 +941,6 @@ def unpause_server(token, server_id, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
api_cmd_payload = dict()
|
||||
@ -1000,7 +976,6 @@ def suspend_server(token, server_id, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
api_cmd_payload = dict()
|
||||
@ -1036,7 +1011,6 @@ def resume_server(token, server_id, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
api_cmd_payload = dict()
|
||||
@ -1072,7 +1046,6 @@ def start_server(token, server_id, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
api_cmd_payload = dict()
|
||||
@ -1108,7 +1081,6 @@ def stop_server(token, server_id, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
api_cmd_payload = dict()
|
||||
@ -1144,7 +1116,6 @@ def reset_server_state(token, server_id, state, context=None):
|
||||
api_cmd = url + "/v2.1/%s/servers/%s/action" % (tenant_id, server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
server_state = dict()
|
||||
@ -1184,7 +1155,6 @@ def attach_volume(token, server_id, volume_id, device_name, context=None):
|
||||
server_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
|
||||
volume_attach = dict()
|
||||
@ -1383,31 +1353,6 @@ def rpc_message_server_delete_filter(message):
|
||||
return None
|
||||
|
||||
|
||||
def create_host_services(token, host_name):
|
||||
"""
|
||||
Asks OpenStack Nova to create services on a host
|
||||
"""
|
||||
url = token.get_service_url(OPENSTACK_SERVICE.NOVA, strip_version=True)
|
||||
if url is None:
|
||||
raise ValueError("OpenStack Nova URL is invalid")
|
||||
|
||||
api_cmd = url + "/v2.1/%s/os-services/create" % token.get_tenant_id()
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
# The create is a StarlingX extension, which is not supported in Pike
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION_NEWTON
|
||||
|
||||
api_cmd_payload = dict()
|
||||
api_cmd_payload['binary'] = 'nova-compute'
|
||||
api_cmd_payload['host'] = host_name
|
||||
|
||||
response = rest_api_request(token, "PUT", api_cmd, api_cmd_headers,
|
||||
json.dumps(api_cmd_payload))
|
||||
return response
|
||||
|
||||
|
||||
def get_host_service_id(token, host_name, service_name):
|
||||
"""
|
||||
Asks OpenStack Nova for the service id of a service on a host
|
||||
@ -1420,7 +1365,6 @@ def get_host_service_id(token, host_name, service_name):
|
||||
(token.get_tenant_id(), host_name, service_name)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
@ -1456,7 +1400,6 @@ def delete_host_services(token, host_name):
|
||||
compute_service_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
@ -1479,7 +1422,6 @@ def enable_host_services(token, host_name):
|
||||
compute_service_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
@ -1506,7 +1448,6 @@ def disable_host_services(token, host_name):
|
||||
compute_service_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
@ -1531,7 +1472,6 @@ def query_host_services(token, host_name):
|
||||
host_name)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
@ -1569,7 +1509,6 @@ def notify_host_enabled(token, host_name):
|
||||
compute_service_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
@ -1596,7 +1535,6 @@ def notify_host_disabled(token, host_name):
|
||||
compute_service_id)
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
@ -1619,7 +1557,6 @@ def query_host_aggregates(token):
|
||||
api_cmd = "/v2.1/%s/os-aggregates" % token.get_tenant_id()
|
||||
|
||||
api_cmd_headers = dict()
|
||||
api_cmd_headers['wrs-header'] = 'true'
|
||||
api_cmd_headers['Content-Type'] = "application/json"
|
||||
api_cmd_headers['X-OpenStack-Nova-API-Version'] = NOVA_API_VERSION
|
||||
|
||||
|
@ -136,10 +136,6 @@ def neutron_unit_tests(token, test_config):
|
||||
"""
|
||||
print("[NEUTRON UNIT TESTS]")
|
||||
|
||||
response = neutron.create_host_services(token, test_config['host_name'],
|
||||
test_config['host_uuid'])
|
||||
print("Host-Services create response: %s" % response)
|
||||
|
||||
response = neutron.disable_host_services(token, test_config['host_uuid'])
|
||||
print("Host-Services disable response: %s" % response)
|
||||
|
||||
@ -152,10 +148,6 @@ def neutron_unit_tests(token, test_config):
|
||||
response = neutron.delete_host_services(token, test_config['host_uuid'])
|
||||
print("Host-Services delete response: %s" % response)
|
||||
|
||||
response = neutron.create_host_services(token, test_config['host_name'],
|
||||
test_config['host_uuid'])
|
||||
print("Host-Services create response: %s" % response)
|
||||
|
||||
response = neutron.enable_host_services(token, test_config['host_uuid'])
|
||||
print("Host-Services enable response: %s" % response)
|
||||
|
||||
@ -208,9 +200,6 @@ def nova_unit_tests(token, test_config):
|
||||
"""
|
||||
print("[NOVA UNIT TESTS]")
|
||||
|
||||
response = nova.create_host_services(token, test_config['host_name'])
|
||||
print("Host-Services create response: %s" % response)
|
||||
|
||||
response = nova.disable_host_services(token, test_config['host_name'])
|
||||
print("Host-Services disable response: %s" % response)
|
||||
|
||||
@ -226,9 +215,6 @@ def nova_unit_tests(token, test_config):
|
||||
# response = nova.delete_host_services(token, test_config['host_name'])
|
||||
# print "Host-Services delete response: %s" % response
|
||||
|
||||
response = nova.create_host_services(token, test_config['host_name'])
|
||||
print("Host-Services create response: %s" % response)
|
||||
|
||||
response = nova.enable_host_services(token, test_config['host_name'])
|
||||
print("Host-Services enable response: %s" % response)
|
||||
|
||||
|
@ -143,10 +143,15 @@ def fake_event_issue(a, b, c, d):
|
||||
return None
|
||||
|
||||
|
||||
def fake_nfvi_compute_plugin_disabled():
|
||||
return False
|
||||
|
||||
|
||||
@mock.patch('nfv_vim.objects._sw_update.SwUpdate.save', fake_save)
|
||||
@mock.patch('nfv_vim.objects._sw_update.timers.timers_create_timer', fake_timer)
|
||||
@mock.patch('nfv_vim.strategy._strategy.get_local_host_name', fake_host_name)
|
||||
@mock.patch('nfv_vim.event_log._instance._event_issue', fake_event_issue)
|
||||
@mock.patch('nfv_vim.nfvi.nfvi_compute_plugin_disabled', fake_nfvi_compute_plugin_disabled)
|
||||
class TestSwPatchStrategy(testcase.NFVTestCase):
|
||||
|
||||
def setUp(self):
|
||||
@ -273,12 +278,15 @@ class TestSwPatchStrategy(testcase.NFVTestCase):
|
||||
"""
|
||||
personality = ''
|
||||
|
||||
openstack_compute = False
|
||||
|
||||
if host_name.startswith('controller'):
|
||||
personality = HOST_PERSONALITY.CONTROLLER
|
||||
if cpe:
|
||||
personality = personality + ',' + HOST_PERSONALITY.WORKER
|
||||
elif host_name.startswith('compute'):
|
||||
personality = HOST_PERSONALITY.WORKER
|
||||
openstack_compute = True
|
||||
elif host_name.startswith('storage'):
|
||||
personality = HOST_PERSONALITY.STORAGE
|
||||
else:
|
||||
@ -294,7 +302,7 @@ class TestSwPatchStrategy(testcase.NFVTestCase):
|
||||
action=nfvi.objects.v1.HOST_ACTION.NONE,
|
||||
software_load='12.01',
|
||||
target_load='12.01',
|
||||
openstack_compute=False,
|
||||
openstack_compute=openstack_compute,
|
||||
openstack_control=False,
|
||||
remote_storage=False,
|
||||
uptime='1000'
|
||||
|
@ -124,9 +124,14 @@ def fake_event_issue(a, b, c, d):
|
||||
return None
|
||||
|
||||
|
||||
def fake_nfvi_compute_plugin_disabled():
|
||||
return False
|
||||
|
||||
|
||||
@mock.patch('nfv_vim.event_log._instance._event_issue', fake_event_issue)
|
||||
@mock.patch('nfv_vim.objects._sw_update.SwUpdate.save', fake_save)
|
||||
@mock.patch('nfv_vim.objects._sw_update.timers.timers_create_timer', fake_timer)
|
||||
@mock.patch('nfv_vim.nfvi.nfvi_compute_plugin_disabled', fake_nfvi_compute_plugin_disabled)
|
||||
class TestSwUpgradeStrategy(testcase.NFVTestCase):
|
||||
|
||||
def setUp(self):
|
||||
@ -250,6 +255,7 @@ class TestSwUpgradeStrategy(testcase.NFVTestCase):
|
||||
"""
|
||||
Create a host
|
||||
"""
|
||||
openstack_compute = False
|
||||
personality = ''
|
||||
if host_name.startswith('controller'):
|
||||
personality = HOST_PERSONALITY.CONTROLLER
|
||||
@ -257,6 +263,7 @@ class TestSwUpgradeStrategy(testcase.NFVTestCase):
|
||||
personality = personality + ',' + HOST_PERSONALITY.WORKER
|
||||
elif host_name.startswith('compute'):
|
||||
personality = HOST_PERSONALITY.WORKER
|
||||
openstack_compute = True
|
||||
elif host_name.startswith('storage'):
|
||||
personality = HOST_PERSONALITY.STORAGE
|
||||
else:
|
||||
@ -272,7 +279,7 @@ class TestSwUpgradeStrategy(testcase.NFVTestCase):
|
||||
action=nfvi.objects.v1.HOST_ACTION.NONE,
|
||||
software_load=software_load,
|
||||
target_load=target_load,
|
||||
openstack_compute=False,
|
||||
openstack_compute=openstack_compute,
|
||||
openstack_control=False,
|
||||
remote_storage=False,
|
||||
uptime='1000'
|
||||
|
@ -189,8 +189,7 @@ class NotifyHostDisabledTaskWork(state_machine.StateTaskWork):
|
||||
self.task.task_work_complete(
|
||||
state_machine.STATE_TASK_WORK_RESULT.SUCCESS,
|
||||
empty_reason)
|
||||
if (self._host.kubernetes_configured and
|
||||
(self._service == objects.HOST_SERVICES.NETWORK)):
|
||||
if self._service == objects.HOST_SERVICES.NETWORK:
|
||||
DLOG.info("Queueing rebalance for host %s disable" % self._host.name)
|
||||
network_rebalance.add_rebalance_work_l3(self._host.name, True)
|
||||
network_rebalance.add_rebalance_work_dhcp(self._host.name, True)
|
||||
@ -202,8 +201,7 @@ class NotifyHostDisabledTaskWork(state_machine.StateTaskWork):
|
||||
self.task.task_work_complete(
|
||||
state_machine.STATE_TASK_WORK_RESULT.SUCCESS,
|
||||
empty_reason)
|
||||
if (self._host.kubernetes_configured and
|
||||
(self._service == objects.HOST_SERVICES.NETWORK)):
|
||||
if self._service == objects.HOST_SERVICES.NETWORK:
|
||||
DLOG.info("Queueing rebalance for host %s disable" % self._host.name)
|
||||
network_rebalance.add_rebalance_work_l3(self._host.name, True)
|
||||
network_rebalance.add_rebalance_work_dhcp(self._host.name, True)
|
||||
@ -581,18 +579,10 @@ class CreateHostServicesTaskWork(state_machine.StateTaskWork):
|
||||
DLOG.verbose("Create-Host-Services for %s %s."
|
||||
% (self._host.name, self._service))
|
||||
|
||||
if self._service == objects.HOST_SERVICES.COMPUTE:
|
||||
nfvi.nfvi_create_compute_host_services(
|
||||
self._host.uuid, self._host.name, self._host.personality,
|
||||
self._callback())
|
||||
elif self._service == objects.HOST_SERVICES.GUEST:
|
||||
if self._service == objects.HOST_SERVICES.GUEST:
|
||||
nfvi.nfvi_create_guest_host_services(
|
||||
self._host.uuid, self._host.name, self._host.personality,
|
||||
self._callback())
|
||||
elif self._service == objects.HOST_SERVICES.NETWORK:
|
||||
nfvi.nfvi_create_network_host_services(
|
||||
self._host.uuid, self._host.name, self._host.personality,
|
||||
self._callback())
|
||||
else:
|
||||
reason = ("Trying to create unknown "
|
||||
"host service %s" % self._service)
|
||||
@ -846,8 +836,7 @@ class EnableHostServicesTaskWork(state_machine.StateTaskWork):
|
||||
state_machine.STATE_TASK_WORK_RESULT.SUCCESS,
|
||||
empty_reason)
|
||||
|
||||
if (self._host.kubernetes_configured and
|
||||
(self._service == objects.HOST_SERVICES.NETWORK)):
|
||||
if self._service == objects.HOST_SERVICES.NETWORK:
|
||||
DLOG.info("Queueing rebalance for host %s enable" % self._host.name)
|
||||
network_rebalance.add_rebalance_work_l3(self._host.name, False)
|
||||
network_rebalance.add_rebalance_work_dhcp(self._host.name, False)
|
||||
@ -858,8 +847,7 @@ class EnableHostServicesTaskWork(state_machine.StateTaskWork):
|
||||
self.task.task_work_complete(
|
||||
state_machine.STATE_TASK_WORK_RESULT.SUCCESS,
|
||||
empty_reason)
|
||||
if (self._host.kubernetes_configured and
|
||||
(self._service == objects.HOST_SERVICES.NETWORK)):
|
||||
if self._service == objects.HOST_SERVICES.NETWORK:
|
||||
DLOG.info("Queueing rebalance for host %s enable" % self._host.name)
|
||||
network_rebalance.add_rebalance_work_l3(self._host.name, False)
|
||||
network_rebalance.add_rebalance_work_dhcp(self._host.name, False)
|
||||
|
@ -42,15 +42,6 @@ class AddHostTask(state_machine.StateTask):
|
||||
|
||||
self._host_reference = weakref.ref(host)
|
||||
task_work_list = list()
|
||||
if not host.kubernetes_configured:
|
||||
# We only create the compute and network services
|
||||
# on non-kubernetes systems.
|
||||
if host.host_service_configured(objects.HOST_SERVICES.COMPUTE):
|
||||
task_work_list.append(CreateHostServicesTaskWork(
|
||||
self, host, objects.HOST_SERVICES.COMPUTE))
|
||||
if host.host_service_configured(objects.HOST_SERVICES.NETWORK):
|
||||
task_work_list.append(CreateHostServicesTaskWork(
|
||||
self, host, objects.HOST_SERVICES.NETWORK))
|
||||
if host.host_service_configured(objects.HOST_SERVICES.GUEST):
|
||||
task_work_list.append(CreateHostServicesTaskWork(
|
||||
self, host, objects.HOST_SERVICES.GUEST))
|
||||
@ -150,21 +141,19 @@ class EnableHostTask(state_machine.StateTask):
|
||||
task_work_list.append(EnableHostServicesTaskWork(
|
||||
self, host, objects.HOST_SERVICES.CONTAINER))
|
||||
if host.host_service_configured(objects.HOST_SERVICES.COMPUTE):
|
||||
if host.kubernetes_configured:
|
||||
# In kubernetes systems we must wait for the compute service
|
||||
# to be created before enabling it.
|
||||
task_work_list.append(WaitHostServicesCreatedTaskWork(
|
||||
self, host, objects.HOST_SERVICES.COMPUTE))
|
||||
# We must wait for the compute service
|
||||
# to be created before enabling it.
|
||||
task_work_list.append(WaitHostServicesCreatedTaskWork(
|
||||
self, host, objects.HOST_SERVICES.COMPUTE))
|
||||
task_work_list.append(NotifyHostEnabledTaskWork(
|
||||
self, host, objects.HOST_SERVICES.COMPUTE))
|
||||
task_work_list.append(EnableHostServicesTaskWork(
|
||||
self, host, objects.HOST_SERVICES.COMPUTE))
|
||||
if host.host_service_configured(objects.HOST_SERVICES.NETWORK):
|
||||
if host.kubernetes_configured:
|
||||
# In kubernetes systems we must wait for the network service
|
||||
# to be created before enabling it.
|
||||
task_work_list.append(WaitHostServicesCreatedTaskWork(
|
||||
self, host, objects.HOST_SERVICES.NETWORK))
|
||||
# We must wait for the network service
|
||||
# to be created before enabling it.
|
||||
task_work_list.append(WaitHostServicesCreatedTaskWork(
|
||||
self, host, objects.HOST_SERVICES.NETWORK))
|
||||
task_work_list.append(EnableHostServicesTaskWork(
|
||||
self, host, objects.HOST_SERVICES.NETWORK))
|
||||
if host.host_service_configured(objects.HOST_SERVICES.GUEST):
|
||||
|
@ -18,7 +18,6 @@ from nfv_vim.nfvi._nfvi_compute_module import nfvi_cold_migrate_confirm_instance
|
||||
from nfv_vim.nfvi._nfvi_compute_module import nfvi_cold_migrate_instance # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_compute_module import nfvi_cold_migrate_revert_instance # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_compute_module import nfvi_compute_plugin_disabled # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_compute_module import nfvi_create_compute_host_services # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_compute_module import nfvi_create_instance # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_compute_module import nfvi_create_instance_type # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_compute_module import nfvi_delete_compute_host_services # noqa: F401
|
||||
@ -128,7 +127,6 @@ from nfv_vim.nfvi._nfvi_module import nfvi_reinitialize # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_network_module import nfvi_add_network_to_dhcp_agent # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_network_module import nfvi_add_router_to_agent # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_network_module import nfvi_create_network # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_network_module import nfvi_create_network_host_services # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_network_module import nfvi_create_subnet # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_network_module import nfvi_delete_network # noqa: F401
|
||||
from nfv_vim.nfvi._nfvi_network_module import nfvi_delete_network_host_services # noqa: F401
|
||||
|
@ -440,18 +440,6 @@ def nfvi_delete_compute_host_services(host_uuid, host_name, host_personality,
|
||||
return cmd_id
|
||||
|
||||
|
||||
def nfvi_create_compute_host_services(host_uuid, host_name, host_personality,
|
||||
callback):
|
||||
"""
|
||||
Create compute services
|
||||
"""
|
||||
cmd_id = _compute_plugin.invoke_plugin('create_host_services',
|
||||
host_uuid, host_name,
|
||||
host_personality,
|
||||
callback=callback)
|
||||
return cmd_id
|
||||
|
||||
|
||||
def nfvi_query_compute_host_services(host_uuid, host_name, host_personality,
|
||||
callback):
|
||||
"""
|
||||
|
@ -234,18 +234,6 @@ def nfvi_delete_network_host_services(host_uuid, host_name, host_personality,
|
||||
return cmd_id
|
||||
|
||||
|
||||
def nfvi_create_network_host_services(host_uuid, host_name, host_personality,
|
||||
callback):
|
||||
"""
|
||||
Create network services
|
||||
"""
|
||||
cmd_id = _network_plugin.invoke_plugin('create_host_services',
|
||||
host_uuid, host_name,
|
||||
host_personality,
|
||||
callback=callback)
|
||||
return cmd_id
|
||||
|
||||
|
||||
def nfvi_query_network_host_services(host_uuid, host_name, host_personality,
|
||||
check_fully_up,
|
||||
callback):
|
||||
|
@ -316,14 +316,6 @@ class NFVIComputeAPI(object):
|
||||
"""
|
||||
pass
|
||||
|
||||
@abc.abstractmethod
|
||||
def create_host_services(self, future, host_uuid, host_name,
|
||||
host_personality, callback):
|
||||
"""
|
||||
Create compute services on a host using the plugin
|
||||
"""
|
||||
pass
|
||||
|
||||
@abc.abstractmethod
|
||||
def query_host_services(self, future, host_uuid, host_name,
|
||||
host_personality, callback):
|
||||
|
@ -201,14 +201,6 @@ class NFVINetworkAPI(object):
|
||||
"""
|
||||
pass
|
||||
|
||||
@abc.abstractmethod
|
||||
def create_host_services(self, future, host_uuid, host_name,
|
||||
host_personality, callback):
|
||||
"""
|
||||
Create network services on a host using the plugin
|
||||
"""
|
||||
pass
|
||||
|
||||
@abc.abstractmethod
|
||||
def query_host_services(self, future, host_uuid, host_name,
|
||||
host_personality, check_fully_up,
|
||||
|
@ -3,7 +3,6 @@
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
import os
|
||||
import six
|
||||
|
||||
from nfv_common import debug
|
||||
@ -156,42 +155,24 @@ class Host(ObjectData):
|
||||
"""
|
||||
return self._fsm.current_state.name
|
||||
|
||||
@property
|
||||
def kubernetes_configured(self):
|
||||
"""
|
||||
Returns whether kubernetes is configured. This will disappear once
|
||||
we cut over to kubernetes.
|
||||
"""
|
||||
if not os.path.isfile('/etc/kubernetes/admin.conf'):
|
||||
return False
|
||||
return True
|
||||
|
||||
def host_service_configured(self, service):
|
||||
"""
|
||||
Returns whether a host service is configured or not
|
||||
"""
|
||||
kubernetes_config = True
|
||||
if not os.path.isfile('/etc/kubernetes/admin.conf'):
|
||||
kubernetes_config = False
|
||||
|
||||
configured = True
|
||||
|
||||
if kubernetes_config:
|
||||
if service == HOST_SERVICES.COMPUTE:
|
||||
configured = (not nfvi.nfvi_compute_plugin_disabled() and
|
||||
self._nfvi_host.openstack_compute)
|
||||
elif service == HOST_SERVICES.NETWORK:
|
||||
configured = (not nfvi.nfvi_network_plugin_disabled() and
|
||||
self._nfvi_host.openstack_compute)
|
||||
elif service == HOST_SERVICES.GUEST:
|
||||
configured = (not nfvi.nfvi_guest_plugin_disabled() and
|
||||
self._nfvi_host.openstack_compute)
|
||||
elif service != HOST_SERVICES.CONTAINER:
|
||||
DLOG.error("unknown service %s" % service)
|
||||
configured = False
|
||||
else:
|
||||
if service == HOST_SERVICES.CONTAINER:
|
||||
configured = False
|
||||
if service == HOST_SERVICES.COMPUTE:
|
||||
configured = (not nfvi.nfvi_compute_plugin_disabled() and
|
||||
self._nfvi_host.openstack_compute)
|
||||
elif service == HOST_SERVICES.NETWORK:
|
||||
configured = (not nfvi.nfvi_network_plugin_disabled() and
|
||||
self._nfvi_host.openstack_compute)
|
||||
elif service == HOST_SERVICES.GUEST:
|
||||
configured = (not nfvi.nfvi_guest_plugin_disabled() and
|
||||
self._nfvi_host.openstack_compute)
|
||||
elif service != HOST_SERVICES.CONTAINER:
|
||||
DLOG.error("unknown service %s" % service)
|
||||
configured = False
|
||||
|
||||
DLOG.verbose("Host configure check for service %s, result %s" %
|
||||
(service, configured))
|
||||
|
Loading…
x
Reference in New Issue
Block a user