/*
* Copyright (c) 2016 EMC Corporation
* All Rights Reserved
*/
package com.emc.sa.service.linux.tasks;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import com.google.common.collect.Sets;
import com.iwave.ext.linux.command.iscsi.ListIScsiSessionsCommand;
import com.iwave.ext.linux.model.IScsiSession;
public class FindIScsiSessions extends LinuxExecutionTask<List<IScsiSession>> {
private Set<String> iqns;
public FindIScsiSessions(Collection<String> iqns) {
this.iqns = Sets.newHashSet(iqns);
}
@Override
public List<IScsiSession> executeTask() throws Exception {
List<IScsiSession> sessions = executeCommand(new ListIScsiSessionsCommand(), SHORT_TIMEOUT);
Iterator<IScsiSession> iter = sessions.iterator();
while (iter.hasNext()) {
IScsiSession session = iter.next();
if (!isMatch(session)) {
iter.remove();
}
}
return sessions;
}
private boolean isMatch(IScsiSession session) {
if (iqns.contains(session.getIfaceInitiatorName())) {
return true;
}
return false;
}
}