/*
* Copyright 2016 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.hp3par.utils;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.text.StrBuilder;
public class SanUtils {
private static Pattern LOOSE_WWN_PATTERN = Pattern.compile("[0-9a-f:]+");
public static String formatWWN(String wwn) {
if (StringUtils.isBlank(wwn)) {
return null;
}
// Left pad with zeros to make 16 chars, trim any excess
wwn = StringUtils.substring(StringUtils.leftPad(wwn, 16, '0'), 0, 16);
StrBuilder sb = new StrBuilder();
for (int i = 0; i < wwn.length(); i += 2) {
sb.appendSeparator(':');
sb.append(StringUtils.substring(wwn, i, i + 2));
}
return sb.toString();
}
public static String cleanWWN(String wwn) {
if (StringUtils.isBlank(wwn)) {
return null;
}
wwn = StringUtils.lowerCase(StringUtils.trim(wwn));
if (!LOOSE_WWN_PATTERN.matcher(wwn).matches()) {
return null;
}
wwn = StringUtils.replace(wwn, ":", "");
return wwn;
}
}