49f88f15c9
This commit re-orders the imports to allow enabling in flake8: H306: imports not in alphabetical order This change should have no functional impact on the code Scenario tests all passing. Story: 2004515 Task: 28684 Change-Id: I412474dfdd1ee9d7deade7f7d6aca32085c0f3f2 Signed-off-by: Al Bailey <Al.Bailey@windriver.com>
216 lines
7.5 KiB
Python
Executable File
216 lines
7.5 KiB
Python
Executable File
#
|
|
# Copyright (c) 2015-2016 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
import json
|
|
|
|
from nfv_common import debug
|
|
from nfv_vim import directors
|
|
from nfv_vim import rpc
|
|
from nfv_vim import tables
|
|
|
|
DLOG = debug.debug_get_logger('nfv_vim.vim_image_api_events')
|
|
|
|
_image_create_operations = dict()
|
|
_image_update_operations = dict()
|
|
_image_delete_operations = dict()
|
|
|
|
|
|
def _create_image_callback(success, image_uuid, image_name, image_description,
|
|
container_format, disk_format, min_disk_size_gb,
|
|
min_memory_size_mb, visibility, protected,
|
|
avail_status, action, properties):
|
|
"""
|
|
Handle Create-Image callback
|
|
"""
|
|
DLOG.verbose("Create image callback, name=%s." % image_name)
|
|
|
|
connection = _image_create_operations.get(image_name, None)
|
|
if connection is not None:
|
|
response = rpc.APIResponseCreateImage()
|
|
if success:
|
|
response.uuid = image_uuid
|
|
response.name = image_name
|
|
response.description = image_description
|
|
response.container_format = container_format
|
|
response.disk_format = disk_format
|
|
response.min_disk_size_gb = min_disk_size_gb
|
|
response.min_memory_size_mb = min_memory_size_mb
|
|
response.visibility = visibility
|
|
response.protected = protected
|
|
response.avail_status = avail_status
|
|
response.action = action
|
|
response.properties = json.dumps(properties)
|
|
else:
|
|
response.result = rpc.RPC_MSG_RESULT.FAILED
|
|
|
|
connection.send(response.serialize())
|
|
connection.close()
|
|
DLOG.verbose("Sent response=%s" % response)
|
|
del _image_create_operations[image_name]
|
|
|
|
|
|
def vim_image_api_create_image(connection, msg):
|
|
"""
|
|
Handle Create-Image API request
|
|
"""
|
|
global _image_create_operations
|
|
|
|
DLOG.verbose("Create image, name=%s." % msg.name)
|
|
_image_create_operations[msg.name] = connection
|
|
image_director = directors.get_image_director()
|
|
image_director.image_create(msg.name, msg.description,
|
|
msg.container_format, msg.disk_format,
|
|
msg.min_disk_size_gb, msg.min_memory_size_mb,
|
|
msg.visibility, msg.protected, msg.properties,
|
|
msg.image_data_ref, _create_image_callback)
|
|
|
|
|
|
def _update_image_callback(success, image_uuid, image_name, image_description,
|
|
container_format, disk_format, min_disk_size_gb,
|
|
min_memory_size_mb, visibility, protected,
|
|
avail_status, action, properties):
|
|
"""
|
|
Handle Update-Image callback
|
|
"""
|
|
DLOG.verbose("Update image callback, uuid=%s." % image_uuid)
|
|
|
|
connection = _image_update_operations.get(image_uuid, None)
|
|
if connection is not None:
|
|
response = rpc.APIResponseUpdateImage()
|
|
if success:
|
|
response.uuid = image_uuid
|
|
response.name = image_name
|
|
response.description = image_description
|
|
response.container_format = container_format
|
|
response.disk_format = disk_format
|
|
response.min_disk_size_gb = min_disk_size_gb
|
|
response.min_memory_size_mb = min_memory_size_mb
|
|
response.visibility = visibility
|
|
response.protected = protected
|
|
response.avail_status = avail_status
|
|
response.action = action
|
|
response.properties = json.dumps(properties)
|
|
else:
|
|
response.result = rpc.RPC_MSG_RESULT.FAILED
|
|
|
|
connection.send(response.serialize())
|
|
connection.close()
|
|
DLOG.verbose("Sent response=%s" % response)
|
|
del _image_update_operations[image_uuid]
|
|
|
|
|
|
def vim_image_api_update_image(connection, msg):
|
|
"""
|
|
Handle Update-Image API request
|
|
"""
|
|
global _image_update_operations
|
|
|
|
DLOG.verbose("Update image, uuid=%s." % msg.uuid)
|
|
_image_update_operations[msg.uuid] = connection
|
|
image_director = directors.get_image_director()
|
|
image_director.image_update(msg.uuid, msg.description,
|
|
msg.min_disk_size_gb, msg.min_memory_size_mb,
|
|
msg.visibility, msg.protected, msg.properties,
|
|
_update_image_callback)
|
|
|
|
|
|
def _delete_image_callback(success, image_uuid):
|
|
"""
|
|
Handle Delete-Image callback
|
|
"""
|
|
DLOG.verbose("Delete image callback, uuid=%s." % image_uuid)
|
|
|
|
connection = _image_delete_operations.get(image_uuid, None)
|
|
if connection is not None:
|
|
response = rpc.APIResponseDeleteImage()
|
|
if success:
|
|
response.uuid = image_uuid
|
|
else:
|
|
response.result = rpc.RPC_MSG_RESULT.FAILED
|
|
|
|
connection.send(response.serialize())
|
|
connection.close()
|
|
DLOG.verbose("Sent response=%s" % response)
|
|
del _image_delete_operations[image_uuid]
|
|
|
|
|
|
def vim_image_api_delete_image(connection, msg):
|
|
"""
|
|
Handle Delete-Image API request
|
|
"""
|
|
global _image_delete_operations
|
|
|
|
DLOG.verbose("Delete image, uuid=%s." % msg.uuid)
|
|
_image_delete_operations[msg.uuid] = connection
|
|
image_director = directors.get_image_director()
|
|
image_director.image_delete(msg.uuid, _delete_image_callback)
|
|
|
|
|
|
def vim_image_api_get_image(connection, msg):
|
|
"""
|
|
Handle Get-Image API request
|
|
"""
|
|
DLOG.verbose("Get image, filter_by_uuid=%s." % msg.filter_by_uuid)
|
|
image_table = tables.tables_get_image_table()
|
|
response = rpc.APIResponseGetImage()
|
|
image = image_table.get(msg.filter_by_uuid, None)
|
|
if image is not None:
|
|
response.uuid = image.uuid
|
|
response.name = image.name
|
|
response.description = image.description
|
|
response.container_format = image.container_format
|
|
response.disk_format = image.disk_format
|
|
response.min_disk_size_gb = image.min_disk_size_gb
|
|
response.min_memory_size_mb = image.min_memory_size_mb
|
|
response.visibility = image.visibility
|
|
response.protected = image.protected
|
|
response.avail_status = image.avail_status
|
|
response.action = image.action
|
|
response.properties = json.dumps(image.properties)
|
|
else:
|
|
response.result = rpc.RPC_MSG_RESULT.NOT_FOUND
|
|
connection.send(response.serialize())
|
|
DLOG.verbose("Sent response=%s" % response)
|
|
connection.close()
|
|
|
|
|
|
def vim_image_api_get_images(connection, msg):
|
|
"""
|
|
Handle Get-Images API request
|
|
"""
|
|
DLOG.verbose("Get image, all=%s." % msg.get_all)
|
|
image_table = tables.tables_get_image_table()
|
|
for image in image_table.values():
|
|
response = rpc.APIResponseGetImage()
|
|
response.uuid = image.uuid
|
|
response.name = image.name
|
|
response.description = image.description
|
|
response.container_format = image.container_format
|
|
response.disk_format = image.disk_format
|
|
response.min_disk_size_gb = image.min_disk_size_gb
|
|
response.min_memory_size_mb = image.min_memory_size_mb
|
|
response.visibility = image.visibility
|
|
response.protected = image.protected
|
|
response.avail_status = image.avail_status
|
|
response.action = image.action
|
|
response.properties = json.dumps(image.properties)
|
|
connection.send(response.serialize())
|
|
DLOG.verbose("Sent response=%s" % response)
|
|
connection.close()
|
|
|
|
|
|
def vim_image_api_initialize():
|
|
"""
|
|
Initialize VIM Image API Handling
|
|
"""
|
|
pass
|
|
|
|
|
|
def vim_image_api_finalize():
|
|
"""
|
|
Finalize VIM Image API Handling
|
|
"""
|
|
pass
|