Switch kaminario to use standard trace decorator
We have a standard debug tracing decorator in utils. We missed that Kaminario added their own version of the same thing. This removes that custom trace decorator in favor of our more standardized decorator. Change-Id: Ic118cfc943008e869893a229c5267d045a21b570
This commit is contained in:
parent
fb27334719
commit
2127e55093
@ -105,28 +105,6 @@ if krest:
|
|||||||
self.krestlock.release()
|
self.krestlock.release()
|
||||||
|
|
||||||
|
|
||||||
def kaminario_logger(func):
|
|
||||||
"""Return a function wrapper.
|
|
||||||
|
|
||||||
The wrapper adds log for entry and exit to the function.
|
|
||||||
"""
|
|
||||||
def func_wrapper(*args, **kwargs):
|
|
||||||
LOG.debug('Entering %(function)s of %(class)s with arguments: '
|
|
||||||
' %(args)s, %(kwargs)s',
|
|
||||||
{'class': args[0].__class__.__name__,
|
|
||||||
'function': func.__name__,
|
|
||||||
'args': args[1:],
|
|
||||||
'kwargs': kwargs})
|
|
||||||
ret = func(*args, **kwargs)
|
|
||||||
LOG.debug('Exiting %(function)s of %(class)s '
|
|
||||||
'having return value: %(ret)s',
|
|
||||||
{'class': args[0].__class__.__name__,
|
|
||||||
'function': func.__name__,
|
|
||||||
'ret': ret})
|
|
||||||
return ret
|
|
||||||
return func_wrapper
|
|
||||||
|
|
||||||
|
|
||||||
class Replication(object):
|
class Replication(object):
|
||||||
def __init__(self, config, *args, **kwargs):
|
def __init__(self, config, *args, **kwargs):
|
||||||
self.backend_id = config.get('backend_id')
|
self.backend_id = config.get('backend_id')
|
||||||
@ -148,7 +126,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
k2_lock_sfx = self.configuration.safe_get('san_ip')
|
k2_lock_sfx = self.configuration.safe_get('san_ip')
|
||||||
self.k2_lock_name = "%s-%s" % (K2_LOCK_PREFIX, k2_lock_sfx)
|
self.k2_lock_name = "%s-%s" % (K2_LOCK_PREFIX, k2_lock_sfx)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def check_for_setup_error(self):
|
def check_for_setup_error(self):
|
||||||
if krest is None:
|
if krest is None:
|
||||||
msg = _("Unable to import 'krest' python module.")
|
msg = _("Unable to import 'krest' python module.")
|
||||||
@ -197,12 +175,12 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
raise exception.InvalidInput(reason=msg)
|
raise exception.InvalidInput(reason=msg)
|
||||||
self.replica = Replication(replica[0])
|
self.replica = Replication(replica[0])
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def do_setup(self, context):
|
def do_setup(self, context):
|
||||||
super(KaminarioCinderDriver, self).do_setup(context)
|
super(KaminarioCinderDriver, self).do_setup(context)
|
||||||
self._check_ops()
|
self._check_ops()
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def create_volume(self, volume):
|
def create_volume(self, volume):
|
||||||
"""Volume creation in K2 needs a volume group.
|
"""Volume creation in K2 needs a volume group.
|
||||||
|
|
||||||
@ -236,7 +214,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
if self._get_is_replica(volume.volume_type) and self.replica:
|
if self._get_is_replica(volume.volume_type) and self.replica:
|
||||||
self._create_volume_replica(volume, vg, vol, self.replica.rpo)
|
self._create_volume_replica(volume, vg, vol, self.replica.rpo)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def _create_volume_replica(self, volume, vg, vol, rpo):
|
def _create_volume_replica(self, volume, vg, vol, rpo):
|
||||||
"""Volume replica creation in K2 needs session and remote volume.
|
"""Volume replica creation in K2 needs session and remote volume.
|
||||||
|
|
||||||
@ -294,7 +272,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
self._delete_by_ref(self.client, "volume_groups", vg.name, "vg")
|
self._delete_by_ref(self.client, "volume_groups", vg.name, "vg")
|
||||||
raise exception.KaminarioCinderDriverException(reason=ex)
|
raise exception.KaminarioCinderDriverException(reason=ex)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def _create_failover_volume_replica(self, volume, vg_name, vol_name):
|
def _create_failover_volume_replica(self, volume, vg_name, vol_name):
|
||||||
"""Volume replica creation in K2 needs session and remote volume.
|
"""Volume replica creation in K2 needs session and remote volume.
|
||||||
|
|
||||||
@ -349,14 +327,14 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
self._delete_by_ref(self.client, "volume_groups", vg_name, "vg")
|
self._delete_by_ref(self.client, "volume_groups", vg_name, "vg")
|
||||||
raise exception.KaminarioCinderDriverException(reason=ex)
|
raise exception.KaminarioCinderDriverException(reason=ex)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def _delete_by_ref(self, device, url, name, msg):
|
def _delete_by_ref(self, device, url, name, msg):
|
||||||
rs = device.search(url, name=name)
|
rs = device.search(url, name=name)
|
||||||
for result in rs.hits:
|
for result in rs.hits:
|
||||||
result.delete()
|
result.delete()
|
||||||
LOG.debug("Deleting %(msg)s: %(name)s", {'msg': msg, 'name': name})
|
LOG.debug("Deleting %(msg)s: %(name)s", {'msg': msg, 'name': name})
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def _failover_volume(self, volume):
|
def _failover_volume(self, volume):
|
||||||
"""Promoting a secondary volume to primary volume."""
|
"""Promoting a secondary volume to primary volume."""
|
||||||
session_name = self.get_session_name(volume.id)
|
session_name = self.get_session_name(volume.id)
|
||||||
@ -369,7 +347,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
LOG.debug("The target session: %s state is "
|
LOG.debug("The target session: %s state is "
|
||||||
"changed to failed_over ", rsession_name)
|
"changed to failed_over ", rsession_name)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def failover_host(self, context, volumes, secondary_id=None, groups=None):
|
def failover_host(self, context, volumes, secondary_id=None, groups=None):
|
||||||
"""Failover to replication target."""
|
"""Failover to replication target."""
|
||||||
volume_updates = []
|
volume_updates = []
|
||||||
@ -523,7 +501,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
back_end_ip = self.replica.backend_id
|
back_end_ip = self.replica.backend_id
|
||||||
return back_end_ip, volume_updates, []
|
return back_end_ip, volume_updates, []
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def _create_volume_replica_user_snap(self, k2, sess):
|
def _create_volume_replica_user_snap(self, k2, sess):
|
||||||
snap = k2.new("snapshots")
|
snap = k2.new("snapshots")
|
||||||
snap.is_application_consistent = "False"
|
snap.is_application_consistent = "False"
|
||||||
@ -552,7 +530,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
self.snap_updates.remove(l)
|
self.snap_updates.remove(l)
|
||||||
eventlet.sleep(1)
|
eventlet.sleep(1)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def create_volume_from_snapshot(self, volume, snapshot):
|
def create_volume_from_snapshot(self, volume, snapshot):
|
||||||
"""Create volume from snapshot.
|
"""Create volume from snapshot.
|
||||||
|
|
||||||
@ -617,7 +595,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
"failed", {"vol": vol_name, "view": view_name})
|
"failed", {"vol": vol_name, "view": view_name})
|
||||||
raise exception.KaminarioCinderDriverException(reason=ex)
|
raise exception.KaminarioCinderDriverException(reason=ex)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def create_cloned_volume(self, volume, src_vref):
|
def create_cloned_volume(self, volume, src_vref):
|
||||||
"""Create a clone from source volume.
|
"""Create a clone from source volume.
|
||||||
|
|
||||||
@ -662,7 +640,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
LOG.exception("Create a clone: %s failed.", clone_name)
|
LOG.exception("Create a clone: %s failed.", clone_name)
|
||||||
raise exception.KaminarioCinderDriverException(reason=ex)
|
raise exception.KaminarioCinderDriverException(reason=ex)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def delete_volume(self, volume):
|
def delete_volume(self, volume):
|
||||||
"""Volume in K2 exists in a volume group.
|
"""Volume in K2 exists in a volume group.
|
||||||
|
|
||||||
@ -687,7 +665,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
LOG.exception("Deletion of volume %s failed.", vol_name)
|
LOG.exception("Deletion of volume %s failed.", vol_name)
|
||||||
raise exception.KaminarioCinderDriverException(reason=ex)
|
raise exception.KaminarioCinderDriverException(reason=ex)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def _delete_volume_replica(self, volume, vg_name, vol_name):
|
def _delete_volume_replica(self, volume, vg_name, vol_name):
|
||||||
rvg_name = self.get_rep_name(vg_name)
|
rvg_name = self.get_rep_name(vg_name)
|
||||||
rvol_name = self.get_rep_name(vol_name)
|
rvol_name = self.get_rep_name(vol_name)
|
||||||
@ -721,7 +699,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
self._delete_by_ref(self.target, "volume_groups",
|
self._delete_by_ref(self.target, "volume_groups",
|
||||||
rvg_name, "remote vg")
|
rvg_name, "remote vg")
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def _delete_failover_volume_replica(self, volume, vg_name, vol_name):
|
def _delete_failover_volume_replica(self, volume, vg_name, vol_name):
|
||||||
rvg_name = self.get_rep_name(vg_name)
|
rvg_name = self.get_rep_name(vg_name)
|
||||||
rvol_name = self.get_rep_name(vol_name)
|
rvol_name = self.get_rep_name(vol_name)
|
||||||
@ -746,7 +724,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
obj.refresh()
|
obj.refresh()
|
||||||
eventlet.sleep(1)
|
eventlet.sleep(1)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def get_volume_stats(self, refresh=False):
|
def get_volume_stats(self, refresh=False):
|
||||||
if refresh:
|
if refresh:
|
||||||
self.update_volume_stats()
|
self.update_volume_stats()
|
||||||
@ -768,7 +746,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
def remove_export(self, context, volume):
|
def remove_export(self, context, volume):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def create_snapshot(self, snapshot):
|
def create_snapshot(self, snapshot):
|
||||||
"""Create a snapshot from a volume_group."""
|
"""Create a snapshot from a volume_group."""
|
||||||
vg_name = self.get_volume_group_name(snapshot.volume_id)
|
vg_name = self.get_volume_group_name(snapshot.volume_id)
|
||||||
@ -786,7 +764,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
LOG.exception("Creation of snapshot: %s failed.", snap_name)
|
LOG.exception("Creation of snapshot: %s failed.", snap_name)
|
||||||
raise exception.KaminarioCinderDriverException(reason=ex)
|
raise exception.KaminarioCinderDriverException(reason=ex)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def delete_snapshot(self, snapshot):
|
def delete_snapshot(self, snapshot):
|
||||||
"""Delete a snapshot."""
|
"""Delete a snapshot."""
|
||||||
snap_name = self.get_snap_name(snapshot.id)
|
snap_name = self.get_snap_name(snapshot.id)
|
||||||
@ -799,7 +777,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
LOG.exception("Deletion of snapshot: %s failed.", snap_name)
|
LOG.exception("Deletion of snapshot: %s failed.", snap_name)
|
||||||
raise exception.KaminarioCinderDriverException(reason=ex)
|
raise exception.KaminarioCinderDriverException(reason=ex)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def extend_volume(self, volume, new_size):
|
def extend_volume(self, volume, new_size):
|
||||||
"""Extend volume."""
|
"""Extend volume."""
|
||||||
vol_name = self.get_volume_name(volume.id)
|
vol_name = self.get_volume_name(volume.id)
|
||||||
@ -878,7 +856,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
"""Return the corresponding replication names."""
|
"""Return the corresponding replication names."""
|
||||||
return "r{0}".format(name)
|
return "r{0}".format(name)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def _delete_host_by_name(self, name):
|
def _delete_host_by_name(self, name):
|
||||||
"""Deleting host by name."""
|
"""Deleting host by name."""
|
||||||
host_rs = self.client.search("hosts", name=name)
|
host_rs = self.client.search("hosts", name=name)
|
||||||
@ -922,7 +900,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
def initialize_connection(self, volume, connector):
|
def initialize_connection(self, volume, connector):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def terminate_connection(self, volume, connector):
|
def terminate_connection(self, volume, connector):
|
||||||
"""Terminate connection of volume from host."""
|
"""Terminate connection of volume from host."""
|
||||||
# Get volume object
|
# Get volume object
|
||||||
@ -953,7 +931,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
else:
|
else:
|
||||||
LOG.warning("Host: %s not found on K2.", host_name)
|
LOG.warning("Host: %s not found on K2.", host_name)
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def k2_initialize_connection(self, volume, connector):
|
def k2_initialize_connection(self, volume, connector):
|
||||||
# Get volume object.
|
# Get volume object.
|
||||||
if type(volume).__name__ != 'RestObject':
|
if type(volume).__name__ != 'RestObject':
|
||||||
@ -1012,7 +990,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def manage_existing(self, volume, existing_ref):
|
def manage_existing(self, volume, existing_ref):
|
||||||
vol_name = existing_ref['source-name']
|
vol_name = existing_ref['source-name']
|
||||||
new_name = self.get_volume_name(volume.id)
|
new_name = self.get_volume_name(volume.id)
|
||||||
@ -1063,7 +1041,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
vg.save()
|
vg.save()
|
||||||
raise
|
raise
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def manage_existing_get_size(self, volume, existing_ref):
|
def manage_existing_get_size(self, volume, existing_ref):
|
||||||
vol_name = existing_ref['source-name']
|
vol_name = existing_ref['source-name']
|
||||||
v_rs = self.client.search("volumes", name=vol_name)
|
v_rs = self.client.search("volumes", name=vol_name)
|
||||||
@ -1076,7 +1054,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
existing_ref=existing_ref,
|
existing_ref=existing_ref,
|
||||||
reason=_('Unable to get size of manage volume.'))
|
reason=_('Unable to get size of manage volume.'))
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def after_volume_copy(self, ctxt, volume, new_volume, remote=None):
|
def after_volume_copy(self, ctxt, volume, new_volume, remote=None):
|
||||||
self.delete_volume(volume)
|
self.delete_volume(volume)
|
||||||
vg_name_old = self.get_volume_group_name(volume.id)
|
vg_name_old = self.get_volume_group_name(volume.id)
|
||||||
@ -1090,7 +1068,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
|||||||
vol_new.name = vol_name_old
|
vol_new.name = vol_name_old
|
||||||
vol_new.save()
|
vol_new.save()
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def retype(self, ctxt, volume, new_type, diff, host):
|
def retype(self, ctxt, volume, new_type, diff, host):
|
||||||
old_type = volume.get('volume_type')
|
old_type = volume.get('volume_type')
|
||||||
vg_name = self.get_volume_group_name(volume.id)
|
vg_name = self.get_volume_group_name(volume.id)
|
||||||
|
@ -19,12 +19,12 @@ from cinder import coordination
|
|||||||
from cinder import exception
|
from cinder import exception
|
||||||
from cinder.i18n import _
|
from cinder.i18n import _
|
||||||
from cinder.objects import fields
|
from cinder.objects import fields
|
||||||
|
from cinder import utils
|
||||||
from cinder.volume.drivers.kaminario import kaminario_common as common
|
from cinder.volume.drivers.kaminario import kaminario_common as common
|
||||||
from cinder.zonemanager import utils as fczm_utils
|
from cinder.zonemanager import utils as fczm_utils
|
||||||
|
|
||||||
K2_REP_FAILED_OVER = fields.ReplicationStatus.FAILED_OVER
|
K2_REP_FAILED_OVER = fields.ReplicationStatus.FAILED_OVER
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
kaminario_logger = common.kaminario_logger
|
|
||||||
|
|
||||||
|
|
||||||
class KaminarioFCDriver(common.KaminarioCinderDriver):
|
class KaminarioFCDriver(common.KaminarioCinderDriver):
|
||||||
@ -43,14 +43,14 @@ class KaminarioFCDriver(common.KaminarioCinderDriver):
|
|||||||
# ThirdPartySystems wiki page name
|
# ThirdPartySystems wiki page name
|
||||||
CI_WIKI_NAME = "Kaminario_K2_CI"
|
CI_WIKI_NAME = "Kaminario_K2_CI"
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(KaminarioFCDriver, self).__init__(*args, **kwargs)
|
super(KaminarioFCDriver, self).__init__(*args, **kwargs)
|
||||||
self._protocol = 'FC'
|
self._protocol = 'FC'
|
||||||
self.lookup_service = fczm_utils.create_lookup_service()
|
self.lookup_service = fczm_utils.create_lookup_service()
|
||||||
|
|
||||||
@fczm_utils.add_fc_zone
|
@fczm_utils.add_fc_zone
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
@coordination.synchronized('{self.k2_lock_name}')
|
@coordination.synchronized('{self.k2_lock_name}')
|
||||||
def initialize_connection(self, volume, connector):
|
def initialize_connection(self, volume, connector):
|
||||||
"""Attach K2 volume to host."""
|
"""Attach K2 volume to host."""
|
||||||
@ -83,7 +83,7 @@ class KaminarioFCDriver(common.KaminarioCinderDriver):
|
|||||||
"initiator_target_map": init_target_map}}
|
"initiator_target_map": init_target_map}}
|
||||||
|
|
||||||
@fczm_utils.remove_fc_zone
|
@fczm_utils.remove_fc_zone
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
@coordination.synchronized('{self.k2_lock_name}')
|
@coordination.synchronized('{self.k2_lock_name}')
|
||||||
def terminate_connection(self, volume, connector, **kwargs):
|
def terminate_connection(self, volume, connector, **kwargs):
|
||||||
# To support replication failback
|
# To support replication failback
|
||||||
@ -124,7 +124,7 @@ class KaminarioFCDriver(common.KaminarioCinderDriver):
|
|||||||
raise exception.KaminarioCinderDriverException(reason=msg)
|
raise exception.KaminarioCinderDriverException(reason=msg)
|
||||||
return target_wwpns
|
return target_wwpns
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def _get_host_object(self, connector):
|
def _get_host_object(self, connector):
|
||||||
host_name = self.get_initiator_host_name(connector)
|
host_name = self.get_initiator_host_name(connector)
|
||||||
LOG.debug("Searching initiator hostname: %s in K2.", host_name)
|
LOG.debug("Searching initiator hostname: %s in K2.", host_name)
|
||||||
|
@ -20,12 +20,13 @@ from cinder import exception
|
|||||||
from cinder.i18n import _
|
from cinder.i18n import _
|
||||||
from cinder import interface
|
from cinder import interface
|
||||||
from cinder.objects import fields
|
from cinder.objects import fields
|
||||||
|
from cinder import utils
|
||||||
from cinder.volume.drivers.kaminario import kaminario_common as common
|
from cinder.volume.drivers.kaminario import kaminario_common as common
|
||||||
|
|
||||||
ISCSI_TCP_PORT = "3260"
|
ISCSI_TCP_PORT = "3260"
|
||||||
K2_REP_FAILED_OVER = fields.ReplicationStatus.FAILED_OVER
|
K2_REP_FAILED_OVER = fields.ReplicationStatus.FAILED_OVER
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
kaminario_logger = common.kaminario_logger
|
utils.trace = common.utils.trace
|
||||||
|
|
||||||
|
|
||||||
@interface.volumedriver
|
@interface.volumedriver
|
||||||
@ -45,12 +46,12 @@ class KaminarioISCSIDriver(common.KaminarioCinderDriver):
|
|||||||
# ThirdPartySystems wiki page name
|
# ThirdPartySystems wiki page name
|
||||||
CI_WIKI_NAME = "Kaminario_K2_CI"
|
CI_WIKI_NAME = "Kaminario_K2_CI"
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(KaminarioISCSIDriver, self).__init__(*args, **kwargs)
|
super(KaminarioISCSIDriver, self).__init__(*args, **kwargs)
|
||||||
self._protocol = 'iSCSI'
|
self._protocol = 'iSCSI'
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
@coordination.synchronized('{self.k2_lock_name}')
|
@coordination.synchronized('{self.k2_lock_name}')
|
||||||
def initialize_connection(self, volume, connector):
|
def initialize_connection(self, volume, connector):
|
||||||
"""Attach K2 volume to host."""
|
"""Attach K2 volume to host."""
|
||||||
@ -80,7 +81,7 @@ class KaminarioISCSIDriver(common.KaminarioCinderDriver):
|
|||||||
target_luns=[lun] * len(target_iqns))
|
target_luns=[lun] * len(target_iqns))
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
@coordination.synchronized('{self.k2_lock_name}')
|
@coordination.synchronized('{self.k2_lock_name}')
|
||||||
def terminate_connection(self, volume, connector, **kwargs):
|
def terminate_connection(self, volume, connector, **kwargs):
|
||||||
# To support replication failback
|
# To support replication failback
|
||||||
@ -119,7 +120,7 @@ class KaminarioISCSIDriver(common.KaminarioCinderDriver):
|
|||||||
raise exception.KaminarioCinderDriverException(reason=msg)
|
raise exception.KaminarioCinderDriverException(reason=msg)
|
||||||
return iscsi_portals, target_iqns
|
return iscsi_portals, target_iqns
|
||||||
|
|
||||||
@kaminario_logger
|
@utils.trace
|
||||||
def _get_host_object(self, connector):
|
def _get_host_object(self, connector):
|
||||||
host_name = self.get_initiator_host_name(connector)
|
host_name = self.get_initiator_host_name(connector)
|
||||||
LOG.debug("Searching initiator hostname: %s in K2.", host_name)
|
LOG.debug("Searching initiator hostname: %s in K2.", host_name)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user