/*
* Copyright (c) 2012-2015 iWave Software LLC
* All Rights Reserved
*/
package com.iwave.ext.linux.command.iscsi;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.google.common.collect.Lists;
import com.iwave.ext.linux.command.CommandConstants;
import com.iwave.ext.linux.command.LinuxResultsCommand;
import com.iwave.ext.linux.command.parser.DiscoverIScsiTargetsParser;
import com.iwave.ext.linux.model.IScsiTarget;
public class DiscoverIScsiTargetsCommand extends LinuxResultsCommand<List<IScsiTarget>> {
private static final String PORTAL = "portal";
public DiscoverIScsiTargetsCommand() {
setCommand(CommandConstants.ISCSIADM);
addArgument("--mode discovery --type sendtargets --portal");
addVariable(PORTAL);
setRunAsRoot(true);
}
public DiscoverIScsiTargetsCommand(String portal) {
this();
setPortal(portal);
}
public void setPortal(String portal) {
setVariableValue(PORTAL, quoteString(portal));
}
@Override
public void parseOutput() {
String stdout = getOutput().getStdout();
if (StringUtils.isNotBlank(stdout)) {
results = new DiscoverIScsiTargetsParser().parseTargets(stdout);
}
else {
results = Lists.newArrayList();
}
}
}