Search in sources :

Example 1 with HostInitiatorInfo

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);
    }
}
Also used : HostInitiatorInfo(com.vmware.vim.vasa._1_0.data.xsd.HostInitiatorInfo) StorageFault(com.vmware.vim.vasa._1_0.StorageFault) SessionContext(com.emc.storageos.vasa.util.SessionContext) MountInfo(com.vmware.vim.vasa._1_0.data.xsd.MountInfo) InvalidSession(com.vmware.vim.vasa._1_0.InvalidSession) CertificateNotYetValidException(java.security.cert.CertificateNotYetValidException) CertificateExpiredException(java.security.cert.CertificateExpiredException)

Example 2 with HostInitiatorInfo

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();
}
Also used : HostInitiatorInfo(com.vmware.vim.vasa._1_0.data.xsd.HostInitiatorInfo) UsageContext(com.vmware.vim.vasa._1_0.data.xsd.UsageContext)

Example 3 with HostInitiatorInfo

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;
}
Also used : HostInitiatorInfo(com.vmware.vim.vasa._1_0.data.xsd.HostInitiatorInfo) Itls(com.emc.storageos.vasa.data.internal.Volume.Itls) UsageContext(com.vmware.vim.vasa._1_0.data.xsd.UsageContext)

Aggregations

HostInitiatorInfo (com.vmware.vim.vasa._1_0.data.xsd.HostInitiatorInfo)3 UsageContext (com.vmware.vim.vasa._1_0.data.xsd.UsageContext)2 Itls (com.emc.storageos.vasa.data.internal.Volume.Itls)1 SessionContext (com.emc.storageos.vasa.util.SessionContext)1 InvalidSession (com.vmware.vim.vasa._1_0.InvalidSession)1 StorageFault (com.vmware.vim.vasa._1_0.StorageFault)1 MountInfo (com.vmware.vim.vasa._1_0.data.xsd.MountInfo)1 CertificateExpiredException (java.security.cert.CertificateExpiredException)1 CertificateNotYetValidException (java.security.cert.CertificateNotYetValidException)1