/* * Copyright (c) 2012-2015 iWave Software LLC * All Rights Reserved */ package com.iwave.ext.linux.command.fc; import java.util.List; import org.apache.commons.lang.StringUtils; import com.google.common.collect.Lists; import com.iwave.ext.linux.command.LinuxResultsCommand; import com.iwave.ext.linux.command.parser.FcTargetParser; import com.iwave.ext.linux.model.FcTarget; public class ListFcTargetsCommand extends LinuxResultsCommand<List<FcTarget>> { public ListFcTargetsCommand() { StringBuilder sb = new StringBuilder(); sb.append("for target in `ls /sys/class/fc_transport`; do "); sb.append(" echo \"target: $target\" ; "); sb.append(" echo -n \"node: \" ; cat /sys/class/fc_transport/$target/node_name; "); sb.append(" echo -n \"port: \" ; cat /sys/class/fc_transport/$target/port_name; "); sb.append("done; "); setCommand(sb.toString()); } @Override public void parseOutput() { String stdout = getOutput().getStdout(); if (StringUtils.isNotBlank(stdout)) { results = new FcTargetParser().parseFcTargets(stdout); } else { results = Lists.newArrayList(); } } }