/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.hpux.command;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
import com.emc.hpux.model.RDisk;
public class ListRDisksCommand extends HpuxResultsCommand<List<RDisk>> {
private static Pattern IQN_PATTERN = Pattern.compile("(.+):0x(.+)");
public ListRDisksCommand() {
StringBuilder sb = new StringBuilder();
sb.append("scsimgr -p get_attr all_lun -a device_file -a wwid");
setCommand(sb.toString());
}
@Override
public void parseOutput() {
results = new ArrayList<RDisk>();
String stdout = getOutput().getStdout();
if (StringUtils.isNotBlank(stdout)) {
Matcher m = IQN_PATTERN.matcher(stdout);
while (m.find()) {
RDisk disk = new RDisk(m.group(1).replace("/dev/rdisk", "/dev/disk"), m.group(1), m.group(2));
results.add(disk);
}
}
}
}