use of com.vmware.vim.vasa._1_0.data.xsd.HostInitiatorInfo in project coprhd-controller by CoprHD.
the class ContextManagerImpl method setContext.
/**
* vasaService interface
*/
@Override
public VasaProviderInfo setContext(UsageContext uc) throws InvalidArgument, InvalidSession, StorageFault {
final String methodName = "setContext(): ";
log.debug(methodName + "Entry");
if (log.isDebugEnabled()) {
HostInitiatorInfo[] hostInitiators = uc.getHostInitiator();
if (hostInitiators != null && hostInitiators.length > 0) {
log.debug(methodName + "list of host initiators (HBA):");
for (HostInitiatorInfo initiator : hostInitiators) {
log.debug(methodName + "id[" + initiator.getUniqueIdentifier() + "] iSCSIId[" + initiator.getIscsiIdentifier() + "] nodeWWN[" + initiator.getNodeWwn() + "] portWWN[" + initiator.getPortWwn() + "]");
}
}
String[] iscsiIpAddresseses = uc.getIscsiInitiatorIpAddress();
if (iscsiIpAddresseses != null) {
log.debug(methodName + "list of iSCSI initiator IP addresses:");
log.debug(methodName + Arrays.asList(iscsiIpAddresseses));
}
MountInfo[] mountPoints = uc.getMountPoint();
if (mountPoints != null && mountPoints.length > 0) {
log.debug(methodName + "List of file share mount paths:");
for (MountInfo mountPoint : mountPoints) {
log.debug(methodName + "filePath[" + mountPoint.getFilePath() + "] serverName[" + mountPoint.getServerName() + "]");
}
}
log.debug(methodName + "vSphere service instance Id[" + uc.getVcGuid() + "]");
}
String clientAddress = "unknown";
try {
// _sslUtil.checkForUniqueVASASessionId();
SessionContext sc = null;
clientAddress = _sslUtil.checkHttpRequest(true, false);
// Tear down any existing session
log.debug(methodName + "Tear down any existing session");
invalidateSession();
// Create new session.
sc = SessionContext.createSession(uc, clientAddress);
log.trace(methodName + "Created a new session: " + sc.getSessionId());
sc.setSosManager(_sosManager);
log.trace(methodName + "SOS manager is set in session context: " + sc.getSessionId());
_vpInfo.setSessionId(sc.getSessionId());
_sslUtil.setHttpResponse(sc);
log.debug(methodName + "Exit returning VasaProviderInfo with new session Id[" + _vpInfo.getSessionId() + "]");
return _vpInfo;
} catch (StorageFault sf) {
log.error(methodName + " unknown exception occured", sf);
throw sf;
} catch (InvalidSession is) {
log.error(methodName + "Invalid session exception", is);
throw is;
} catch (Exception e) {
log.error("unknown exception occured", e);
throw FaultUtil.StorageFault("runtime ", e);
}
}
use of com.vmware.vim.vasa._1_0.data.xsd.HostInitiatorInfo in project coprhd-controller by CoprHD.
the class SOSManager method getCSVListOfInitiatorsFromUsageContext.
public String getCSVListOfInitiatorsFromUsageContext() throws InvalidSession, StorageFault {
final String methodName = "getCSVListOfInitiatorsFromUsageContext(): ";
log.debug(methodName + "Entry");
StringBuffer returnString = new StringBuffer();
UsageContext uc = this.getUsageContext();
HostInitiatorInfo[] hostInitiators = uc.getHostInitiator();
if (!Util.isEmpty(hostInitiators)) {
for (HostInitiatorInfo initiator : hostInitiators) {
if (Util.isEmpty(initiator.getPortWwn()) && Util.isEmpty(initiator.getIscsiIdentifier())) {
continue;
}
if (!Util.isEmpty(initiator.getPortWwn()) && !initiator.getPortWwn().startsWith("0x")) {
// convert the long into hex string value
try {
long portWWN = Long.parseLong(initiator.getPortWwn());
String portWWNString = "0x" + Long.toHexString(portWWN).toLowerCase();
StringBuffer portWWNBuffer = new StringBuffer();
for (int i = 2; i <= portWWNString.length(); i = i + 2) {
String temp = portWWNString.substring(i - 2, i);
portWWNBuffer.append(temp).append(":");
}
portWWNBuffer.deleteCharAt(portWWNBuffer.length() - 1);
initiator.setPortWwn(portWWNBuffer.toString());
} catch (NumberFormatException e) {
log.warn(methodName + "Unable to parse portWWN: " + initiator.getPortWwn());
continue;
}
}
String portWWN = initiator.getPortWwn();
if (!Util.isEmpty(portWWN)) {
returnString.append(portWWN.replace("0x:", "")).append(",");
}
String iscsiId = initiator.getIscsiIdentifier();
if (!Util.isEmpty(iscsiId)) {
returnString.append(iscsiId).append(",");
}
}
returnString.deleteCharAt(returnString.length() - 1);
}
log.debug(methodName + "Exit returning [" + returnString + "]");
return returnString.toString();
}
use of com.vmware.vim.vasa._1_0.data.xsd.HostInitiatorInfo in project coprhd-controller by CoprHD.
the class SOSManager method isVolumeInvCenterContext.
public boolean isVolumeInvCenterContext(Volume volume) throws InvalidSession, StorageFault {
final String methodName = "isVolumeInvCenterContext(): ";
log.debug(methodName + "Entry with input: " + volume);
UsageContext uc = this.getUsageContext();
HostInitiatorInfo[] hostInitiators = uc.getHostInitiator();
if (!Util.isEmpty(hostInitiators)) {
for (HostInitiatorInfo initiator : hostInitiators) {
if (Util.isEmpty(initiator.getPortWwn()) && Util.isEmpty(initiator.getIscsiIdentifier())) {
continue;
}
if (!Util.isEmpty(initiator.getPortWwn()) && !initiator.getPortWwn().startsWith("0x")) {
// convert the long into hex string value
try {
long portWWN = Long.parseLong(initiator.getPortWwn());
initiator.setPortWwn("0x" + Long.toHexString(portWWN).toLowerCase());
} catch (Exception e) {
log.warn(methodName + "Unable to parse portWWN: " + initiator.getPortWwn());
continue;
}
}
Itls volumeExports = volume.getExports();
List<String> volumeProtocolList = volume.getProtocols().getProtocol();
if (volumeExports != null && volumeExports.getItls() != null) {
for (Volume.Itls.Itl itl : volumeExports.getItls()) {
if (volumeProtocolList.contains("FC")) {
String portWWN = initiator.getPortWwn();
String initiatorPort = itl.getInitiator().getPort().replace(":", "");
if (!Util.isEmpty(portWWN)) {
portWWN = portWWN.substring(2);
log.debug(methodName + " Is portWWN[" + portWWN + "] equals initiator port[" + initiatorPort + "]");
if (initiatorPort.equalsIgnoreCase(portWWN)) {
log.debug(methodName + "Exit returning [true]");
return true;
}
}
}
if (volumeProtocolList.contains("iSCSI") || volumeProtocolList.contains("ISCSI")) {
String iscsiId = initiator.getIscsiIdentifier();
if (!Util.isEmpty(iscsiId)) {
log.debug(methodName + " Is iscsiId[" + iscsiId + "] equals initiator port[" + itl.getInitiator().getPort() + "]");
if (itl.getInitiator().getPort().equalsIgnoreCase(iscsiId)) {
log.debug(methodName + "Exit returning [true]");
return true;
}
}
}
}
}
}
}
log.debug(methodName + "Exit returning [false]");
return false;
}
Aggregations