488 lines
16 KiB
Python
Executable File
488 lines
16 KiB
Python
Executable File
#
|
|
# Copyright (c) 2015-2016 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
from nfv_common import debug
|
|
|
|
from nfv_vim.nfvi._nfvi_compute_plugin import NFVIComputePlugin
|
|
|
|
DLOG = debug.debug_get_logger('nfv_vim.nfvi.nfvi_compute_module')
|
|
|
|
_compute_plugin = None
|
|
|
|
|
|
def nfvi_compute_plugin_disabled():
|
|
"""
|
|
Get compute plugin disabled status
|
|
"""
|
|
return (_compute_plugin is None)
|
|
|
|
|
|
def nfvi_get_host_aggregates(callback):
|
|
"""
|
|
Get a list of host aggregates
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('get_host_aggregates',
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_get_hypervisors(callback):
|
|
"""
|
|
Get a list of hypervisors
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('get_hypervisors',
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_get_hypervisor(hypervisor_id, callback):
|
|
"""
|
|
Get hypervisor details
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('get_hypervisor', hypervisor_id,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_get_instance_types(paging, callback):
|
|
"""
|
|
Get a list of instance types
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('get_instance_types', paging,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_create_instance_type(instance_type_uuid, instance_type_name,
|
|
instance_type_attributes, callback):
|
|
"""
|
|
Create an instance type
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('create_instance_type',
|
|
instance_type_uuid,
|
|
instance_type_name,
|
|
instance_type_attributes,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_delete_instance_type(instance_type_uuid, callback):
|
|
"""
|
|
Delete an instance type
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('delete_instance_type',
|
|
instance_type_uuid,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_get_instance_type(instance_type_uuid, callback):
|
|
"""
|
|
Get an instance type
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('get_instance_type',
|
|
instance_type_uuid,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_get_instance_groups(callback):
|
|
"""
|
|
Get a list of instance groups
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('get_instance_groups',
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_get_instances(paging, callback, context=None):
|
|
"""
|
|
Get a list of instances
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('get_instances', paging, context,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_create_instance(instance_name, instance_type_uuid, image_uuid,
|
|
block_devices, networks, callback, context=None):
|
|
"""
|
|
Create an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('create_instance', instance_name,
|
|
instance_type_uuid, image_uuid,
|
|
block_devices, networks, context,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_live_migrate_instance(instance_uuid, callback, to_host_name=None,
|
|
block_storage_migration='auto', context=None):
|
|
"""
|
|
Live migrate an instance
|
|
"""
|
|
if context is None:
|
|
cmd_id = _compute_plugin.invoke_plugin_expediate(
|
|
'live_migrate_instance', instance_uuid, to_host_name,
|
|
block_storage_migration, context, callback=callback)
|
|
else:
|
|
cmd_id = _compute_plugin.invoke_plugin(
|
|
'live_migrate_instance', instance_uuid, to_host_name,
|
|
block_storage_migration, context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_cold_migrate_instance(instance_uuid, callback, to_host_name=None,
|
|
context=None):
|
|
"""
|
|
Cold migrate an instance
|
|
"""
|
|
if context is None:
|
|
cmd_id = _compute_plugin.invoke_plugin_expediate(
|
|
'cold_migrate_instance', instance_uuid, to_host_name, context,
|
|
callback=callback)
|
|
else:
|
|
cmd_id = _compute_plugin.invoke_plugin(
|
|
'cold_migrate_instance', instance_uuid, to_host_name, context,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_cold_migrate_confirm_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Cold migrate confirm an instance
|
|
"""
|
|
if context is None:
|
|
cmd_id = _compute_plugin.invoke_plugin_expediate(
|
|
'cold_migrate_confirm_instance', instance_uuid, context,
|
|
callback=callback)
|
|
else:
|
|
cmd_id = _compute_plugin.invoke_plugin(
|
|
'cold_migrate_confirm_instance', instance_uuid, context,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_cold_migrate_revert_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Cold migrate revert an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('cold_migrate_revert_instance',
|
|
instance_uuid, context,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_resize_instance(instance_uuid, instance_type_uuid, callback,
|
|
context=None):
|
|
"""
|
|
Resize an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('resize_instance', instance_uuid,
|
|
instance_type_uuid, context,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_resize_confirm_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Resize confirm an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('resize_confirm_instance',
|
|
instance_uuid, context,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_resize_revert_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Resize revert an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('resize_revert_instance',
|
|
instance_uuid, context,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_evacuate_instance(instance_uuid, callback, admin_password=None,
|
|
to_host_name=None, context=None):
|
|
"""
|
|
Evacuate an instance
|
|
"""
|
|
if context is None:
|
|
cmd_id = _compute_plugin.invoke_plugin_expediate(
|
|
'evacuate_instance', instance_uuid, admin_password, to_host_name,
|
|
context, callback=callback)
|
|
else:
|
|
cmd_id = _compute_plugin.invoke_plugin(
|
|
'evacuate_instance', instance_uuid, admin_password, to_host_name,
|
|
context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_reboot_instance(instance_uuid, graceful_shutdown, callback,
|
|
context=None):
|
|
"""
|
|
Reboot an instance
|
|
"""
|
|
if context is None:
|
|
cmd_id = _compute_plugin.invoke_plugin_expediate(
|
|
'reboot_instance', instance_uuid, graceful_shutdown, context,
|
|
callback=callback)
|
|
else:
|
|
cmd_id = _compute_plugin.invoke_plugin(
|
|
'reboot_instance', instance_uuid, graceful_shutdown, context,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_rebuild_instance(instance_uuid, instance_name, image_uuid, callback,
|
|
admin_password=None, context=None):
|
|
"""
|
|
Rebuild an instance
|
|
"""
|
|
if context is None:
|
|
cmd_id = _compute_plugin.invoke_plugin_expediate(
|
|
'rebuild_instance', instance_uuid, instance_name, image_uuid,
|
|
admin_password, context, callback=callback)
|
|
else:
|
|
cmd_id = _compute_plugin.invoke_plugin(
|
|
'rebuild_instance', instance_uuid, instance_name, image_uuid,
|
|
admin_password, context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_fail_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Fail an instance
|
|
"""
|
|
if context is None:
|
|
cmd_id = _compute_plugin.invoke_plugin_expediate(
|
|
'fail_instance', instance_uuid, context, callback=callback)
|
|
else:
|
|
cmd_id = _compute_plugin.invoke_plugin(
|
|
'fail_instance', instance_uuid, context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_pause_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Pause an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('pause_instance', instance_uuid,
|
|
context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_unpause_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Unpause an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('unpause_instance', instance_uuid,
|
|
context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_suspend_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Suspend an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('suspend_instance', instance_uuid,
|
|
context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_resume_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Resume an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('resume_instance', instance_uuid,
|
|
context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_start_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Start an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('start_instance', instance_uuid,
|
|
context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_stop_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Stop an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('stop_instance', instance_uuid,
|
|
context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_delete_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Delete an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('delete_instance', instance_uuid,
|
|
context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_get_instance(instance_uuid, callback, context=None):
|
|
"""
|
|
Get an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('get_instance', instance_uuid,
|
|
context, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_reject_instance_action(instance_uuid, message, context):
|
|
"""
|
|
Reject an action against an instance
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('reject_instance_action',
|
|
instance_uuid, message, context)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_register_instance_state_change_callback(callback):
|
|
"""
|
|
Register for instance state change notifications
|
|
"""
|
|
_compute_plugin.invoke_plugin('register_instance_state_change_callback',
|
|
callback=callback)
|
|
|
|
|
|
def nfvi_register_instance_action_change_callback(callback):
|
|
"""
|
|
Register for instance action change notifications
|
|
"""
|
|
_compute_plugin.invoke_plugin('register_instance_action_change_callback',
|
|
callback=callback)
|
|
|
|
|
|
def nfvi_register_instance_action_callback(callback):
|
|
"""
|
|
Register for instance action callback
|
|
"""
|
|
_compute_plugin.invoke_plugin('register_instance_action_callback',
|
|
callback=callback)
|
|
|
|
|
|
def nfvi_register_instance_delete_callback(callback):
|
|
"""
|
|
Register for instance delete notifications
|
|
"""
|
|
_compute_plugin.invoke_plugin('register_instance_delete_callback',
|
|
callback=callback)
|
|
|
|
|
|
def nfvi_notify_compute_host_enabled(host_uuid, host_name, host_personality,
|
|
callback):
|
|
"""
|
|
Notify compute host is enabled
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('notify_host_enabled',
|
|
host_uuid, host_name,
|
|
host_personality,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_notify_compute_host_disabled(host_uuid, host_name, host_personality,
|
|
callback):
|
|
"""
|
|
Notify compute host is disabled
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('notify_host_disabled',
|
|
host_uuid, host_name,
|
|
host_personality,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_disable_compute_host_services(host_uuid, host_name, host_personality,
|
|
callback):
|
|
"""
|
|
Disable compute host services
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('disable_host_services',
|
|
host_uuid, host_name,
|
|
host_personality,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_enable_compute_host_services(host_uuid, host_name, host_personality,
|
|
callback):
|
|
"""
|
|
Enable compute host services
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('enable_host_services',
|
|
host_uuid, host_name,
|
|
host_personality,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_delete_compute_host_services(host_uuid, host_name, host_personality,
|
|
callback):
|
|
"""
|
|
Delete compute services
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('delete_host_services',
|
|
host_uuid, host_name,
|
|
host_personality,
|
|
callback=callback)
|
|
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):
|
|
"""
|
|
Query compute services
|
|
"""
|
|
cmd_id = _compute_plugin.invoke_plugin('query_host_services',
|
|
host_uuid, host_name,
|
|
host_personality,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_compute_initialize(config, pool):
|
|
"""
|
|
Initialize the NFVI compute package
|
|
"""
|
|
global _compute_plugin
|
|
|
|
if _compute_plugin is None:
|
|
_compute_plugin = NFVIComputePlugin(config['namespace'], pool)
|
|
if _compute_plugin.ready_to_initialize(config['config_file']):
|
|
_compute_plugin.initialize(config['config_file'])
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
|
|
def nfvi_compute_finalize():
|
|
"""
|
|
Finalize the NFVI compute package
|
|
"""
|
|
if _compute_plugin is not None:
|
|
_compute_plugin.finalize()
|