95 lines
2.6 KiB
Python
Executable File
95 lines
2.6 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_block_storage_plugin import NFVIBlockStoragePlugin
|
|
|
|
DLOG = debug.debug_get_logger('nfv_vim.nfvi.nfvi_block_storage_module')
|
|
|
|
_block_storage_plugin = None
|
|
|
|
|
|
def nfvi_block_storage_plugin_disabled():
|
|
"""
|
|
Get block storage plugin disabled status
|
|
"""
|
|
return (_block_storage_plugin is None)
|
|
|
|
|
|
def nfvi_get_volumes(paging, callback):
|
|
"""
|
|
Get a list of volumes
|
|
"""
|
|
cmd_id = _block_storage_plugin.invoke_plugin('get_volumes', paging,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_create_volume(volume_name, volume_description, size_gb,
|
|
callback, image_uuid=None):
|
|
"""
|
|
Create a volume in the NFVI
|
|
"""
|
|
cmd_id = _block_storage_plugin.invoke_plugin('create_volume', volume_name,
|
|
volume_description, size_gb,
|
|
image_uuid, callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_delete_volume(volume_uuid, callback):
|
|
"""
|
|
Delete a volume from the NFVI
|
|
"""
|
|
cmd_id = _block_storage_plugin.invoke_plugin('delete_volume', volume_uuid,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_update_volume(volume_uuid, volume_description, callback):
|
|
"""
|
|
Update a volume in the NFVI
|
|
"""
|
|
cmd_id = _block_storage_plugin.invoke_plugin('update_volume', volume_uuid,
|
|
volume_description,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_get_volume(volume_uuid, callback):
|
|
"""
|
|
Get volume details from the NFVI
|
|
"""
|
|
cmd_id = _block_storage_plugin.invoke_plugin('get_volume', volume_uuid,
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_get_volume_snapshots(callback):
|
|
"""
|
|
Get a list of volume snapshots
|
|
"""
|
|
cmd_id = _block_storage_plugin.invoke_plugin('get_volume_snapshots',
|
|
callback=callback)
|
|
return cmd_id
|
|
|
|
|
|
def nfvi_block_storage_initialize(config, pool):
|
|
"""
|
|
Initialize the NFVI block storage package
|
|
"""
|
|
global _block_storage_plugin
|
|
|
|
_block_storage_plugin = NFVIBlockStoragePlugin(config['namespace'], pool)
|
|
_block_storage_plugin.initialize(config['config_file'])
|
|
|
|
|
|
def nfvi_block_storage_finalize():
|
|
"""
|
|
Finalize the NFVI block storage package
|
|
"""
|
|
if _block_storage_plugin is not None:
|
|
_block_storage_plugin.finalize()
|