/*
* Copyright (c) 2016 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.vplex.api.clientdata.formatter;
import com.emc.storageos.vplex.api.VPlexApiConstants;
import com.emc.storageos.vplex.api.clientdata.VolumeInfo;
/**
* @{inheritDoc
*/
public class UnityVplexVolumeNameFormatter extends
DefaultVplexVolumeNameFormatter {
private static final String UNITY_NATIVE_ID_PREFIX = "sv_";
/**
* @{inheritDoc
*/
public UnityVplexVolumeNameFormatter(VolumeInfo volumeInfo) {
super(volumeInfo);
}
/**
* {@inheritDoc}
*/
@Override
protected String assembleDefaultName(String storageSystemSerialNumber, String volumeNativeId) {
// Unity native ids have a prefix of "sv_". The "_" can cause problems as
// the underscore is used as a separator character. See COP-25839. Therefore,
// we simply eliminate these characters when generating the claimed name
// for the volume.
StringBuilder nameBuilder = new StringBuilder();
nameBuilder.append(VPlexApiConstants.VOLUME_NAME_PREFIX);
nameBuilder.append(storageSystemSerialNumber);
nameBuilder.append(VPlexApiConstants.HYPHEN_OPERATOR);
nameBuilder.append(volumeNativeId.replace(UNITY_NATIVE_ID_PREFIX,""));
return nameBuilder.toString();
}
}