Search in sources :

Example 16 with InvalidSession

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

the class ContextManagerImpl method unregisterVASACertificate.

/**
 * vasaService interface
 */
@Override
public void unregisterVASACertificate(String existingCertificate) throws InvalidCertificate, InvalidSession, StorageFault {
    final String methodName = "unregisterVASACertificate(): ";
    log.debug(methodName + "Entry with input existingCertificate[" + (existingCertificate != null ? "***" : null) + "]");
    try {
        /*
             * Need to have a valid SSL session, but VASA session not required
             */
        _sslUtil.checkHttpRequest(true, true);
        X509Certificate x509Cert = (X509Certificate) _sslUtil.buildCertificate(existingCertificate);
        SimpleTimeCounter counter = new SimpleTimeCounter("unregisterVASACertificate");
        unregisterCertificate(x509Cert);
        counter.stop();
    } catch (InvalidSession is) {
        // thrown by unregisterCertificate()
        log.error(methodName + "invalid session", is);
        throw is;
    } catch (InvalidCertificate ic) {
        // thrown by sslUtil.buildCertificate()
        // thrown by unregisterCertificate()
        log.error(methodName + "invalid certificate", ic);
        throw ic;
    } catch (StorageFault sf) {
        log.error(methodName + "storage fault occured ", sf);
        throw sf;
    } catch (Exception e) {
        log.error(methodName + "unknown exception", e);
        throw FaultUtil.StorageFault("runtime ", e);
    }
    log.debug(methodName + "Exit");
}
Also used : SimpleTimeCounter(com.emc.storageos.vasa.util.internal.SimpleTimeCounter) InvalidCertificate(com.vmware.vim.vasa._1_0.InvalidCertificate) StorageFault(com.vmware.vim.vasa._1_0.StorageFault) X509Certificate(java.security.cert.X509Certificate) InvalidSession(com.vmware.vim.vasa._1_0.InvalidSession) CertificateNotYetValidException(java.security.cert.CertificateNotYetValidException) CertificateExpiredException(java.security.cert.CertificateExpiredException)

Example 17 with InvalidSession

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

the class ContextManagerImpl method queryCatalog.

@Override
public MessageCatalog[] queryCatalog() throws StorageFault, InvalidSession {
    final String methodName = "queryCatalog(): ";
    log.debug(methodName + "Entry");
    // verify valid SSL and VASA Sessions.
    List<MessageCatalog> mcList = new ArrayList<MessageCatalog>();
    String fs = System.getProperty("file.separator");
    final String productHome = System.getProperty("product.home");
    final String catalogDirPath = productHome + fs + "lib" + fs + "storageos-vasasvc" + fs + "catalog";
    // Determine base Catalog directory
    String catalogDirStr = "";
    String catalinaHome = System.getProperty("server.home");
    if (catalinaHome != null) {
        // Ex: O:\Program Files\Apache\Tomcat 6.0
        catalogDirStr = catalogDirPath;
    } else {
        try {
            // Get the base dir of the running code
            URL url = getClass().getProtectionDomain().getCodeSource().getLocation();
            File catalogDir = new File(url.getPath());
            catalogDirStr = catalogDir.getCanonicalPath();
            if (catalogDirStr.contains("%20")) {
                catalogDirStr = catalogDirStr.replace("%20", " ");
            }
        } catch (Exception e) {
            log.error(methodName + "Exception attempting to locate catalog files", e);
            throw FaultUtil.StorageFault("runtime", e);
        }
    }
    if (catalogDirStr != null && catalogDirStr.length() > 0) {
        File catalogDir = new File(catalogDirStr);
        mcList = compileCatalogInformation(catalogDir, mcList);
    }
    log.debug(methodName + "Exit returning message catalog list of size[" + mcList.size() + "]");
    return (MessageCatalog[]) mcList.toArray(new MessageCatalog[0]);
}
Also used : ArrayList(java.util.ArrayList) MessageCatalog(com.vmware.vim.vasa._1_0.data.xsd.MessageCatalog) File(java.io.File) URL(java.net.URL) CertificateNotYetValidException(java.security.cert.CertificateNotYetValidException) CertificateExpiredException(java.security.cert.CertificateExpiredException)

Example 18 with InvalidSession

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

the class SOSManager method queryStorageFileSystems.

/**
 * Makes a call to Bourne to get the details of given file system Ids
 *
 * @param filesystemIds
 * @return array of <code>StorageFileSystem</code> objects
 * @throws InvalidArgument
 * @throws InvalidSession
 * @throws StorageFault
 * @throws NotImplemented
 * @throws NotFound
 */
public synchronized StorageFileSystem[] queryStorageFileSystems(String[] fsUniqueIds) throws InvalidArgument, StorageFault, NotImplemented, InvalidSession {
    final String methodName = "queryStorageFileSystems(): ";
    log.debug(methodName + "Entry");
    List<StorageFileSystem> list = null;
    try {
        Boolean supportsFile = new Boolean(_config.getConfigValue("config/service/storageTopology/storageArray/support-file-profile"));
        if (!supportsFile) {
            log.error(methodName + " This function is not implemented");
            throw FaultUtil.NotImplemented("This function is not implemented");
        }
        if (Util.isEmpty(fsUniqueIds)) {
            throw FaultUtil.InvalidArgument("Given file system Ids are invalid");
        }
        for (String fsId : fsUniqueIds) {
            if (!Util.isEmpty(fsId)) {
                if (!fsId.startsWith(FILESYSTEM_IDENTIFIER_PREFIX)) {
                    throw FaultUtil.InvalidArgument("Given filesytem Id is invalid: " + fsId);
                }
            } else {
                throw FaultUtil.InvalidArgument("Given filesytem Id is invalid: " + fsId);
            }
        }
        this.setFileSystemIds();
        List<String> existingFsIdList = new ArrayList<String>();
        for (String inputFSId : fsUniqueIds) {
            if (_reportedFileSystemIdList.contains(inputFSId)) {
                existingFsIdList.add(inputFSId);
            }
        }
        list = new ArrayList<StorageFileSystem>();
        List<FileShare> fsList = _syncManager.getFileSystemDetailList(existingFsIdList);
        for (FileShare fileshare : fsList) {
            StorageFileSystem fileSystem = new StorageFileSystem();
            fileSystem.setUniqueIdentifier(fileshare.getId());
            if (fileshare.getProtocols().getProtocol().contains("NFS")) {
                fileSystem.setFileSystem(FileSystemEnum.NFS.getValue());
            } else if (fileshare.getProtocols().getProtocol().contains("NFSv4")) {
                fileSystem.setFileSystem(FileSystemEnum.NFS.getValue());
            } else {
                fileSystem.setFileSystem(FileSystemEnum.Other.getValue());
            }
            fileSystem.setFileSystemVersion(FileSystemVersionEnum.NFSV3_0.getValue());
            FileSystemInfo fsDetail = new FileSystemInfo();
            String fsNetworkId = "";
            if (fileshare.getStoragePort() != null && fileshare.getStorageController() != null) {
                String storageSystemId = fileshare.getStorageController().getId();
                String storagePortId = fileshare.getStoragePort().getId();
                com.emc.storageos.vasa.data.internal.StoragePort storagePort = _syncManager.getStoragePort(storageSystemId, storagePortId);
                fsNetworkId = storagePort.getPortNetworkId();
            }
            fsDetail.setIpAddress(fsNetworkId);
            fsDetail.setFileServerName(fsNetworkId);
            fsDetail.setFileSystemPath(fileshare.getMountPath());
            fileSystem.addFileSystemInfo(fsDetail);
            fileSystem.setNativeSnapshotSupported(true);
            fileSystem.setThinProvisioningStatus(AlarmStatusEnum.Green.getValue());
            if (log.isDebugEnabled()) {
                log.debug(methodName + "filesystem: id[" + fileSystem.getUniqueIdentifier() + "] type[" + fileSystem.getFileSystem() + "] version[" + fileSystem.getFileSystemVersion() + "] thinProvisioningStatus[" + fileSystem.getThinProvisioningStatus() + "] snapShotsupported[" + fileSystem.getNativeSnapshotSupported() + "] IpAddress[" + fileSystem.getFileSystemInfo()[0].getFileServerName() + "] serverName[" + fileSystem.getFileSystemInfo()[0].getFileServerName() + "] fileSystemPath[" + fileSystem.getFileSystemInfo()[0].getFileSystemPath() + "]");
            }
            list.add(fileSystem);
        }
    } catch (SOSFailure e) {
        log.error(methodName + "StorageOSFailure occured ", e);
        throw FaultUtil.StorageFault(e);
    } catch (InvalidArgument e) {
        log.error(methodName + "InvalidArgument occured ", e);
        throw e;
    } catch (NotImplemented e) {
        log.error(methodName + "NotImplemented occured ", e);
        throw e;
    }
    log.debug(methodName + "Exit returning list of file systems of size[" + list.size() + "]");
    return list.toArray(new StorageFileSystem[0]);
}
Also used : ArrayList(java.util.ArrayList) NotImplemented(com.vmware.vim.vasa._1_0.NotImplemented) FileShare(com.emc.storageos.vasa.data.internal.FileShare) StorageFileSystem(com.vmware.vim.vasa._1_0.data.xsd.StorageFileSystem) FileSystemInfo(com.vmware.vim.vasa._1_0.data.xsd.FileSystemInfo) InvalidArgument(com.vmware.vim.vasa._1_0.InvalidArgument) SOSFailure(com.emc.storageos.vasa.fault.SOSFailure)

Example 19 with InvalidSession

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

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

the class SOSManager method getMountPathsFromUsageContext.

public List<String> getMountPathsFromUsageContext() throws InvalidSession, StorageFault {
    final String methodName = "getMountPathsFromUsageContext(): ";
    log.debug(methodName + "Entry");
    Set<String> mountPathList = new HashSet<String>();
    UsageContext uc = this.getUsageContext();
    MountInfo[] mountPoints = uc.getMountPoint();
    if (!Util.isEmpty(mountPoints)) {
        for (MountInfo eachMountPointInfo : mountPoints) {
            String filePath = eachMountPointInfo.getFilePath();
            if (!Util.isEmpty(filePath)) {
                mountPathList.add(filePath);
            }
        }
    }
    log.debug(methodName + "Exit returning [" + mountPathList + "]");
    return new ArrayList<String>(mountPathList);
}
Also used : UsageContext(com.vmware.vim.vasa._1_0.data.xsd.UsageContext) ArrayList(java.util.ArrayList) MountInfo(com.vmware.vim.vasa._1_0.data.xsd.MountInfo) HashSet(java.util.HashSet)

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