Search in sources :

Example 6 with ConnectionManagerException

use of com.emc.storageos.cimadapter.connections.ConnectionManagerException in project coprhd-controller by CoprHD.

the class CIMConnectionFactory method getConnection.

/**
 * Return the cimConnection for the given storageDevice.
 * We would end up in scenarios ,where Provider present in StorageDevice is not there in
 * PhysicalStorageSystem.
 * TODO remove once metering integrated.
 *
 * @param storageDevice
 *            : StorageDevice.
 * @return CimConnection.
 */
public synchronized CimConnection getConnection(final StorageSystem storageDevice) {
    CimConnection connection = null;
    try {
        _connectionManager.configure(coordinatorClient.getPropertyInfo());
        /**
         * Check cimConnection already exist for vnxfile, if not create new one
         */
        if (StorageSystem.Type.vnxfile.name().equals(storageDevice.getSystemType())) {
            connection = _connectionManager.getConnection(storageDevice.getSmisProviderIP(), storageDevice.getPortNumber());
        } else {
            connection = getConnection(storageDevice.getSmisProviderIP(), storageDevice.getSmisPortNumber().toString());
        }
        if (null == connection) {
            final CimConnectionInfo connInfo = new CimConnectionInfo();
            connInfo.setHost(storageDevice.getSmisProviderIP());
            connInfo.setPort(storageDevice.getSmisPortNumber());
            connInfo.setUser(storageDevice.getSmisUserName());
            connInfo.setPassword(storageDevice.getSmisPassword());
            connInfo.setUseSSL(storageDevice.getSmisUseSSL());
            connInfo.setInteropNS(CimConstants.DFLT_CIM_CONNECTION_INTEROP_NS);
            // Set the type of connection to be created.
            connInfo.setType(getConnectionTypeForDevice(storageDevice.getSystemType()));
            // Set the implementation namespace for this type of storage device
            connInfo.setImplNS(getImplNamespaceForDevice(storageDevice.getSystemType()));
            _connectionManager.addConnection(connInfo);
            connection = getConnection(storageDevice.getSmisProviderIP(), storageDevice.getSmisPortNumber().toString());
        }
    } catch (final ConnectionManagerException ex) {
        _log.error("No CIMOM Connection found for ipaddress due to ", ex);
    }
    return connection;
}
Also used : CimConnection(com.emc.storageos.cimadapter.connections.cim.CimConnection) ConnectionManagerException(com.emc.storageos.cimadapter.connections.ConnectionManagerException) CimConnectionInfo(com.emc.storageos.cimadapter.connections.cim.CimConnectionInfo)

Example 7 with ConnectionManagerException

use of com.emc.storageos.cimadapter.connections.ConnectionManagerException in project coprhd-controller by CoprHD.

the class CIMConnectionFactory method addConnection.

/**
 * If connection is null, create a new Connection
 *
 * @param smisIPAddress
 */
private synchronized CimConnection addConnection(String smisIPAddress, String port) {
    CimConnection connection = null;
    try {
        connection = _connectionManager.getConnection(smisIPAddress, Integer.parseInt(port));
        if (null == connection) {
            String smisAltId = smisIPAddress + "-" + port;
            List<StorageProvider> providers = CustomQueryUtility.getActiveStorageProvidersByProviderId(_dbClient, smisAltId);
            if (providers.isEmpty()) {
                _log.error("No SMISProvider found with id {}", smisAltId);
                return connection;
            }
            StorageProvider smisProvider = providers.get(0);
            final CimConnectionInfo connInfo = new CimConnectionInfo();
            connInfo.setHost(smisProvider.getIPAddress());
            connInfo.setPort(smisProvider.getPortNumber());
            connInfo.setUser(smisProvider.getUserName());
            connInfo.setPassword(smisProvider.getPassword());
            connInfo.setUseSSL(smisProvider.getUseSSL());
            if (smisProvider.getInterfaceType().equals(StorageProvider.InterfaceType.ibmxiv.name()) || "IBM".equals(smisProvider.getManufacturer())) {
                connInfo.setType(CimConstants.CIM_CONNECTION_TYPE);
                connInfo.setImplNS(CimConstants.DFLT_IBM_CIM_CONNECTION_IMPL_NS);
            } else {
                connInfo.setType(CimConstants.ECOM_CONNECTION_TYPE);
                connInfo.setImplNS(CimConstants.DFLT_CIM_CONNECTION_IMPL_NS);
            }
            connInfo.setInteropNS(CimConstants.DFLT_CIM_CONNECTION_INTEROP_NS);
            _connectionManager.addConnection(connInfo);
            connection = _connectionManager.getConnection(smisIPAddress, Integer.parseInt(port));
            _log.info("Connection Added to Cache {}", ConnectionManager.generateConnectionCacheKey(smisProvider.getIPAddress(), smisProvider.getPortNumber()));
        }
    } catch (ConnectionManagerException ex) {
        _log.error("Exception occurred while adding connections due to ", ex);
    } catch (Exception ex) {
        _log.error("Exception occurred while adding connections due to ", ex);
    }
    return connection;
}
Also used : CimConnection(com.emc.storageos.cimadapter.connections.cim.CimConnection) StorageProvider(com.emc.storageos.db.client.model.StorageProvider) ConnectionManagerException(com.emc.storageos.cimadapter.connections.ConnectionManagerException) WBEMException(javax.wbem.WBEMException) DatabaseException(com.emc.storageos.db.exceptions.DatabaseException) ConnectionManagerException(com.emc.storageos.cimadapter.connections.ConnectionManagerException) IOException(java.io.IOException) CimConnectionInfo(com.emc.storageos.cimadapter.connections.cim.CimConnectionInfo)

Example 8 with ConnectionManagerException

use of com.emc.storageos.cimadapter.connections.ConnectionManagerException in project coprhd-controller by CoprHD.

the class CIMConnectionFactory method getConnection.

/**
 * Get a CimConnection for a given hostName.
 * if connection is null, then add a new Connection.
 * getConnection, at any point of time will get a new Connection Object.
 *
 * @param hostName
 *            : Provider hostName, if not existing.
 * @return CimConnection.
 * @throws IOException
 */
public synchronized CimConnection getConnection(String ipAddress, String port) {
    CimConnection connection = null;
    try {
        _connectionManager.configure(coordinatorClient.getPropertyInfo());
        connection = _connectionManager.getConnection(ipAddress, Integer.parseInt(port));
        if (null == connection) {
            connection = addConnection(ipAddress, port);
        }
    } catch (final ConnectionManagerException ex) {
        _log.error("Problem establishing connection to the SMI-S Provider: {} due to ", ipAddress, ex);
        throw new IllegalStateException("Problem establishing connection to the SMI-S Provider: " + ipAddress, ex);
    }
    return connection;
}
Also used : CimConnection(com.emc.storageos.cimadapter.connections.cim.CimConnection) ConnectionManagerException(com.emc.storageos.cimadapter.connections.ConnectionManagerException)

Aggregations

ConnectionManagerException (com.emc.storageos.cimadapter.connections.ConnectionManagerException)8 CimConnection (com.emc.storageos.cimadapter.connections.cim.CimConnection)4 CimConnectionInfo (com.emc.storageos.cimadapter.connections.cim.CimConnectionInfo)3 StorageProvider (com.emc.storageos.db.client.model.StorageProvider)2 DatabaseException (com.emc.storageos.db.exceptions.DatabaseException)2 StorageMonitorException (com.emc.storageos.volumecontroller.StorageMonitorException)2 IOException (java.io.IOException)2 WBEMException (javax.wbem.WBEMException)2 File (java.io.File)1 FileOutputStream (java.io.FileOutputStream)1 OutputStream (java.io.OutputStream)1 URI (java.net.URI)1 URL (java.net.URL)1 KeyStore (java.security.KeyStore)1 X509Certificate (java.security.cert.X509Certificate)1 ArrayList (java.util.ArrayList)1 CIMProperty (javax.cim.CIMProperty)1 SSLContext (javax.net.ssl.SSLContext)1 SSLException (javax.net.ssl.SSLException)1 SSLSocket (javax.net.ssl.SSLSocket)1