Search in sources :

Example 26 with InvalidSession

use of com.vmware.vim.vasa._1_0.InvalidSession 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)

Example 27 with InvalidSession

use of com.vmware.vim.vasa._1_0.InvalidSession in project coprhd-controller by CoprHD.

the class ServiceImpl method handleExceptionsAsStorageFault.

protected void handleExceptionsAsStorageFault(Exception e) throws InvalidArgument, InvalidSession, StorageFault {
    if (e instanceof InvalidArgument) {
        throw (InvalidArgument) e;
    } else if (e instanceof InvalidSession) {
        throw (InvalidSession) e;
    } else if (e instanceof StorageFault) {
        throw (StorageFault) e;
    } else {
        StorageFault sfe = FaultUtil.StorageFault(e);
        sfe.setStackTrace(e.getStackTrace());
        throw sfe;
    }
}
Also used : InvalidArgument(com.vmware.vim.vasa._1_0.InvalidArgument) StorageFault(com.vmware.vim.vasa._1_0.StorageFault) InvalidSession(com.vmware.vim.vasa._1_0.InvalidSession)

Example 28 with InvalidSession

use of com.vmware.vim.vasa._1_0.InvalidSession in project coprhd-controller by CoprHD.

the class ServiceImpl method queryArrays.

/**
 * Returns array details of the requested arrayIds
 *
 * @param arrayId
 *            array of arrayIds
 * @return array of StorageArray objects having storage array details
 *         respectively
 * @throws InvalidArgument
 *             if usage context is incorrect
 * @throws InvalidSession
 *             if session Id is invalid
 * @throws StorageFault
 *             if there is a failure in the underlying storage
 */
public StorageArray[] queryArrays(String[] arrayId) throws InvalidArgument, InvalidSession, StorageFault {
    // Mandatory function
    final String methodName = "queryArrays(): ";
    log.info(methodName + "Entry");
    if (arrayId != null) {
        log.info(methodName + "input array Ids: " + Arrays.asList(arrayId));
    }
    // verify valid SSL and VASA Sessions.
    sslUtil.checkHttpRequest(true, true);
    UsageContext uc = contextManager.getUsageContext();
    if (Util.isEmpty(uc.getHostInitiator())) {
        StorageArray[] arrays = new StorageArray[0];
        log.info(methodName + "Exit returning storage arrays of size[" + (arrays != null ? arrays.length : 0) + "]");
        return arrays;
    }
    SOSManager sosManager = contextManager.getSOSManager();
    StorageArray[] arrays = sosManager.queryArrays(arrayId);
    log.info(methodName + "Exit returning storage arrays of size[" + (arrays != null ? arrays.length : 0) + "]");
    return arrays;
}
Also used : UsageContext(com.vmware.vim.vasa._1_0.data.xsd.UsageContext) StorageArray(com.vmware.vim.vasa._1_0.data.xsd.StorageArray)

Aggregations

InvalidArgument (com.vmware.vim.vasa._1_0.InvalidArgument)13 NotImplemented (com.vmware.vim.vasa._1_0.NotImplemented)10 ArrayList (java.util.ArrayList)10 SOSFailure (com.emc.storageos.vasa.fault.SOSFailure)8 StorageFault (com.vmware.vim.vasa._1_0.StorageFault)8 InvalidSession (com.vmware.vim.vasa._1_0.InvalidSession)7 CertificateExpiredException (java.security.cert.CertificateExpiredException)7 CertificateNotYetValidException (java.security.cert.CertificateNotYetValidException)7 UsageContext (com.vmware.vim.vasa._1_0.data.xsd.UsageContext)6 BaseStorageEntity (com.vmware.vim.vasa._1_0.data.xsd.BaseStorageEntity)5 VasaAssociationObject (com.vmware.vim.vasa._1_0.data.xsd.VasaAssociationObject)5 FileShare (com.emc.storageos.vasa.data.internal.FileShare)3 Volume (com.emc.storageos.vasa.data.internal.Volume)3 SessionContext (com.emc.storageos.vasa.util.SessionContext)3 InvalidCertificate (com.vmware.vim.vasa._1_0.InvalidCertificate)3 HostInitiatorInfo (com.vmware.vim.vasa._1_0.data.xsd.HostInitiatorInfo)3 EventList (com.emc.storageos.vasa.data.internal.Event.EventList)2 MountInfo (com.vmware.vim.vasa._1_0.data.xsd.MountInfo)2 StorageArray (com.vmware.vim.vasa._1_0.data.xsd.StorageArray)2 VasaProviderInfo (com.vmware.vim.vasa._1_0.data.xsd.VasaProviderInfo)2