On a Brocade driver update of a zone, VM loses access to volume disk
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
Fix Released
|
Undecided
|
Angela Smith |
Bug Description
This is mainly for initiator zoning. During the delete/update sequence of removing target wwpns for an initiator zone, if 'activate=True', the code first does a hard delete of the zone, and then a subsequent recreation. During the time in between the deletion and creation of the zone, the VM loses all access to the volumes disks.
brcd_fc_
@lockutils.
def delete_
...
try:
# Update zone membership.
if zone_map:
brcd_fc_
def add_zones(self, zones, activate, active_
"""Add zone configuration.
for zone in zones.keys():
# If zone exists, its an update. Delete & insert
# TODO(skolathur): This still need to be optimized
# to an update call later. Now we just handled the
# same zone name with same zone members.
if (zone in zone_list):
if set(zones[zone]) == set(zone_
This can be avoided if the delete_zones is a transient operation, by setting activate=False. And when the zone is recreated-the subsequent cfgenable call will configure everything in one go.
This can be fixed by addressing the TODO item. Instead of doing zonedelete/ zonecreate, we can modify the zone using CLIs zoneremove/zoneadd. OR, you can use the new HTTP connector which already handles zone update this way. :)