diff --git a/cinder/volume/drivers/san/hp/hp_3par_fc.py b/cinder/volume/drivers/san/hp/hp_3par_fc.py index f469ef03f75..6eb6a352771 100644 --- a/cinder/volume/drivers/san/hp/hp_3par_fc.py +++ b/cinder/volume/drivers/san/hp/hp_3par_fc.py @@ -116,6 +116,7 @@ def check_for_setup_error(self): """Returns an error if prerequisites aren't met.""" self._check_flags() + @lockutils.synchronized('3par-vol', 'cinder-', True) def create_volume(self, volume): metadata = self.common.create_volume(volume, self.client) return {'metadata': metadata} @@ -125,9 +126,11 @@ def create_cloned_volume(self, volume, src_vref): self.client) return {'metadata': new_vol} + @lockutils.synchronized('3par-vol', 'cinder-', True) def delete_volume(self, volume): self.common.delete_volume(volume, self.client) + @lockutils.synchronized('3par-vol', 'cinder-', True) def create_volume_from_snapshot(self, volume, snapshot): """ Creates a volume from a snapshot. @@ -136,12 +139,15 @@ def create_volume_from_snapshot(self, volume, snapshot): """ self.common.create_volume_from_snapshot(volume, snapshot, self.client) + @lockutils.synchronized('3par-snap', 'cinder-', True) def create_snapshot(self, snapshot): self.common.create_snapshot(snapshot, self.client) + @lockutils.synchronized('3par-snap', 'cinder-', True) def delete_snapshot(self, snapshot): self.common.delete_snapshot(snapshot, self.client) + @lockutils.synchronized('3par-attach', 'cinder-', True) def initialize_connection(self, volume, connector): """Assigns the volume to a server. @@ -193,6 +199,7 @@ def initialize_connection(self, volume, connector): 'target_wwn': ports['FC']}} return info + @lockutils.synchronized('3par-attach', 'cinder-', True) def terminate_connection(self, volume, connector, force): """ Driver entry point to unattach a volume from an instance. @@ -238,11 +245,14 @@ def _create_host(self, volume, connector): return host + @lockutils.synchronized('3par-exp', 'cinder-', True) def create_export(self, context, volume): pass + @lockutils.synchronized('3par-exp', 'cinder-', True) def ensure_export(self, context, volume): pass + @lockutils.synchronized('3par-exp', 'cinder-', True) def remove_export(self, context, volume): pass