The cinder.volume.drivers.zfssa.zfssaiscsi Module

The cinder.volume.drivers.zfssa.zfssaiscsi Module

ZFS Storage Appliance Cinder Volume Driver

class MigrateVolumeCleanUp(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)

Bases: taskflow.task.Task

execute(driver, volume, tgt_zfssa)

Activate a given atom which will perform some operation and return.

This method can be used to perform an action on a given set of input requirements (passed in via *args and **kwargs) to accomplish some type of operation. This operation may provide some named outputs/results as a result of it executing for later reverting (or for other atoms to depend on).

NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).

Parameters:
  • args – positional arguments that atom requires to execute.
  • kwargs – any keyword arguments that atom requires to execute.
class MigrateVolumeCreateAction(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)

Bases: taskflow.task.Task

execute(src_zfssa, volume, src_pool, src_project, target, tgt_pool)

Activate a given atom which will perform some operation and return.

This method can be used to perform an action on a given set of input requirements (passed in via *args and **kwargs) to accomplish some type of operation. This operation may provide some named outputs/results as a result of it executing for later reverting (or for other atoms to depend on).

NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).

Parameters:
  • args – positional arguments that atom requires to execute.
  • kwargs – any keyword arguments that atom requires to execute.
revert(src_zfssa, **kwargs)

Revert this atom.

This method should undo any side-effects caused by previous execution of the atom using the result of the execute() method and information on the failure which triggered reversion of the flow the atom is contained in (if applicable).

Parameters:
  • args – positional arguments that the atom required to execute.
  • kwargs – any keyword arguments that the atom required to execute; the special key 'result' will contain the execute() result (if any) and the **kwargs key 'flow_failures' will contain any failure information.
class MigrateVolumeInit(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)

Bases: taskflow.task.Task

execute(src_zfssa, volume, src_pool, src_project)

Activate a given atom which will perform some operation and return.

This method can be used to perform an action on a given set of input requirements (passed in via *args and **kwargs) to accomplish some type of operation. This operation may provide some named outputs/results as a result of it executing for later reverting (or for other atoms to depend on).

NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).

Parameters:
  • args – positional arguments that atom requires to execute.
  • kwargs – any keyword arguments that atom requires to execute.
revert(src_zfssa, volume, src_pool, src_project, **kwargs)

Revert this atom.

This method should undo any side-effects caused by previous execution of the atom using the result of the execute() method and information on the failure which triggered reversion of the flow the atom is contained in (if applicable).

Parameters:
  • args – positional arguments that the atom required to execute.
  • kwargs – any keyword arguments that the atom required to execute; the special key 'result' will contain the execute() result (if any) and the **kwargs key 'flow_failures' will contain any failure information.
class MigrateVolumeMoveVol(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)

Bases: taskflow.task.Task

execute(tgt_zfssa, tgt_pool, tgt_project, action_id, volume)

Activate a given atom which will perform some operation and return.

This method can be used to perform an action on a given set of input requirements (passed in via *args and **kwargs) to accomplish some type of operation. This operation may provide some named outputs/results as a result of it executing for later reverting (or for other atoms to depend on).

NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).

Parameters:
  • args – positional arguments that atom requires to execute.
  • kwargs – any keyword arguments that atom requires to execute.
revert(tgt_zfssa, tgt_pool, tgt_project, action_id, volume, **kwargs)

Revert this atom.

This method should undo any side-effects caused by previous execution of the atom using the result of the execute() method and information on the failure which triggered reversion of the flow the atom is contained in (if applicable).

Parameters:
  • args – positional arguments that the atom required to execute.
  • kwargs – any keyword arguments that the atom required to execute; the special key 'result' will contain the execute() result (if any) and the **kwargs key 'flow_failures' will contain any failure information.
class MigrateVolumeSendReplUpdate(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)

Bases: taskflow.task.Task

execute(src_zfssa, action_id)

Activate a given atom which will perform some operation and return.

This method can be used to perform an action on a given set of input requirements (passed in via *args and **kwargs) to accomplish some type of operation. This operation may provide some named outputs/results as a result of it executing for later reverting (or for other atoms to depend on).

NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).

Parameters:
  • args – positional arguments that atom requires to execute.
  • kwargs – any keyword arguments that atom requires to execute.
class MigrateVolumeSeverRepl(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)

Bases: taskflow.task.Task

execute(tgt_zfssa, src_asn, action_id, driver)

Activate a given atom which will perform some operation and return.

This method can be used to perform an action on a given set of input requirements (passed in via *args and **kwargs) to accomplish some type of operation. This operation may provide some named outputs/results as a result of it executing for later reverting (or for other atoms to depend on).

NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).

Parameters:
  • args – positional arguments that atom requires to execute.
  • kwargs – any keyword arguments that atom requires to execute.
class ZFSSAISCSIDriver(*args, **kwargs)

Bases: cinder.volume.driver.ISCSIDriver

ZFSSA Cinder iSCSI volume driver.

Version history:

1.0.1:
    Backend enabled volume migration.
    Local cache feature.
1.0.2:
    Volume manage/unmanage support.
1.0.3:
    Fix multi-connect to enable live-migration (LP#1565051).
CI_WIKI_NAME = 'Oracle_ZFSSA_CI'
VERSION = '1.0.3'
check_for_setup_error()

Check that driver can login.

Check also pool, project, initiators, initiatorgroup, target and targetgroup.

clone_image(context, volume, image_location, image_meta, image_service)

Create a volume efficiently from an existing image.

Verify the image ID being used:

(1) If there is no existing cache volume, create one and transfer image data to it. Take a snapshot.

(2) If a cache volume already exists, verify if it is either alternated or updated. If so try to remove it, raise exception if removal fails. Create a new cache volume as in (1).

Clone a volume from the cache volume and returns it to Cinder.

A file lock is placed on this method to prevent:

(a) a race condition when a cache volume has been verified, but then gets deleted before it is cloned.

(b) failure of subsequent clone_image requests if the first request is still pending.

create_cloned_volume(volume, src_vref)

Create a clone of the specified volume.

create_export(context, volume, connector)

Exports the volume.

Can optionally return a Dictionary of changes to the volume object to be persisted.

create_snapshot(snapshot)

Creates a snapshot of a volume.

Snapshot name: snapshot[‘name’] Volume name: snapshot[‘volume_name’]

create_volume(volume)

Create a volume on ZFSSA.

create_volume_from_snapshot(volume, snapshot)

Creates a volume from a snapshot - clone a snapshot.

delete_snapshot(snapshot)

Deletes a snapshot.

delete_volume(volume)

Deletes a volume with the given volume[‘name’].

do_setup(context)

Setup - create multiple elements.

Project, initiators, initiatorgroup, target and targetgroup.

ensure_export(context, volume)

Synchronously recreates an export for a volume.

extend_volume(volume, new_size)

Driver entry point to extent volume size.

get_volume_stats(refresh=False)

Get volume status.

If ‘refresh’ is True, run update the stats first.

initialize_connection(volume, connector)

Driver entry point to setup a connection for a volume.

local_path(volume)

Not implemented.

manage_existing(volume, existing_ref)

Manage an existing volume in the ZFSSA backend.

Parameters:
  • volume – Reference to the new volume.
  • existing_ref – Reference to the existing volume to be managed.
manage_existing_get_size(volume, existing_ref)

Return size of the volume to be managed by manage_existing.

migrate_volume(ctxt, volume, host)

Migrate the volume to the specified host.

Returns a boolean indicating whether the migration occurred, as well as model_update.

Parameters:
  • context – Context
  • volume – A dictionary describing the volume to migrate
  • host – A dictionary describing the host to migrate to, where host[‘host’] is its name, and host[‘capabilities’] is a dictionary of its reported capabilities.
protocol = 'iSCSI'
remove_export(context, volume)

Removes an export for a volume.

terminate_connection(volume, connector, **kwargs)

Driver entry point to terminate a connection for a volume.

unmanage(volume)

Remove an existing volume from cinder management.

Parameters:volume – Reference to the volume to be unmanaged.
update_migrated_volume(ctxt, volume, new_volume, original_volume_status)

Return model update for migrated volume.

Parameters:
  • volume – The original volume that was migrated to this backend
  • new_volume – The migration volume object that was created on this backend as part of the migration process
  • original_volume_status – The status of the original volume
Returns:

model_update to update DB with any needed changes

factory_zfssa()
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.