Adding in missing and fixing incorrect validation for Mass Data Migration orders. Fixing bug where billing item was showing $0 for MDMS orders.
Several improvements to LUN ID logic:
Improved error message when trying to change a LUN ID; e.g. “SoftLayerAPIError(SoftLayer_Exception_Network_Storage_Iscsi_UnableToChangeLunId): Unable to change LUN Id: active authorizations must be removed first: SoftLayer_Virtual_Guest/50202410”
When there is a LUN ID conflict and the LUN being authorized has no prior authorizations, then we try to change the LUN ID automatically and retry the authorization.
Improved error message when a LUN ID conflict cannot be automatically resolved; e.g. “SoftLayerAPIError(SoftLayer_Exception_Network_Storage_Group_AccessControlError_LunMappingConflict): Failed to authorize initiator SoftLayer_Virtual_Guest/50202410 to SoftLayer_Network_Storage/39624490 (lunId=0) because initiator is authorized to another LUN with same ID: SoftLayer_Network_Storage/39624486 (lunId=0)”
Modified the SoftLayer_Network_Storage::getTargetIpAddresses endpoint function, which is utilized by the ORM key callback for the iscsiTargetIpAddresses ORM key, so that it returns an empty array. This change should affect all non-iSCSI (non-block) storage volumes. When this function is called for non-iSCSI volumes, it will now return an empty array instead of throwing an error. No changes are expected for iSCSI (block) volumes, since the function overrides for getTargetIpAddresses as defined in the iSCSI-related sub-classes were not modified.
(Note: A bug relating to calling getTargetIpAddresses on File Replicant volumes was also resolved. The override of getTargetIpAddresses was moved out of SoftLayer_Network_Storage_NetApp_Volume_Replicant and into SoftLayer_Network_Storage_NetApp_Volume_Replicant_Iscsi to accomplish this fix.)