/*
* Copyright (c) 2012-2015 iWave Software LLC
* All Rights Reserved
*/
package com.iwave.ext.windows.winrm.wmi;
import java.util.List;
import javax.xml.xpath.XPathExpression;
import org.apache.commons.lang.StringUtils;
import org.w3c.dom.Element;
import com.iwave.ext.windows.winrm.WinRMConstants;
import com.iwave.ext.windows.winrm.WinRMEnumerateOperation;
import com.iwave.ext.windows.winrm.WinRMTarget;
import com.iwave.ext.xml.XmlUtils;
public class ListIScsiInitiatorsQuery extends WinRMEnumerateOperation<String> {
public static final String ISCSI_INITIATOR_URI = WinRMConstants.WMI_BASE_URI
+ "root/wmi/MSiSCSIInitiator_MethodClass";
private static final XPathExpression ISCSI_NODE_NAME_EXPR = XmlUtils.compileXPath(
"ns:MSiSCSIInitiator_MethodClass/ns:iSCSINodeName", "ns=" + ISCSI_INITIATOR_URI);
public ListIScsiInitiatorsQuery(WinRMTarget target) {
super(target, ISCSI_INITIATOR_URI);
}
@Override
protected void processItems(Element items, List<String> results) {
for (Element e : XmlUtils.selectElements(ISCSI_NODE_NAME_EXPR, items)) {
String nodeName = XmlUtils.getText(e);
if (StringUtils.isNotBlank(nodeName)) {
results.add(nodeName);
}
}
}
}