Search in sources :

Example 16 with CoordinatorClientInetAddressMap

use of com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap in project coprhd-controller by CoprHD.

the class StubCoordinatorClientImpl method createLocalAddressLookupMap.

/**
 * Creates a local address lookup map for use in local tests.
 *
 * @return the lookup map.
 */
public static CoordinatorClientInetAddressMap createLocalAddressLookupMap() {
    CoordinatorClientInetAddressMap addressMap = new CoordinatorClientInetAddressMap();
    addressMap.setNodeId("localhost");
    try {
        addressMap.setDualInetAddress(DualInetAddress.fromAddress("127.0.0.1"));
    } catch (UnknownHostException e) {
    // Should never happen, ignore
    }
    Map<String, DualInetAddress> ips = new HashMap<>();
    ips.put(addressMap.getNodeId(), addressMap.getDualInetAddress());
    addressMap.setControllerNodeIPLookupMap(ips);
    return addressMap;
}
Also used : UnknownHostException(java.net.UnknownHostException) CoordinatorClientInetAddressMap(com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap) DualInetAddress(com.emc.storageos.coordinator.client.service.impl.DualInetAddress)

Example 17 with CoordinatorClientInetAddressMap

use of com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap in project coprhd-controller by CoprHD.

the class DisasterRecoveryServiceTest method setUp.

@Before
public void setUp() throws Exception {
    Constructor constructor = ProductName.class.getDeclaredConstructors()[0];
    constructor.setAccessible(true);
    ProductName productName = (ProductName) constructor.newInstance();
    productName.setName("vipr");
    SoftwareVersion version = new SoftwareVersion("vipr-2.4.0.0.100");
    LinkedList<SoftwareVersion> available = new LinkedList<SoftwareVersion>();
    available.add(version);
    RepositoryInfo repositoryInfo = new RepositoryInfo(new SoftwareVersion("vipr-2.4.0.0.100"), available);
    standby = new SiteConfigRestRep();
    standby.setClusterStable(true);
    standby.setFreshInstallation(true);
    standby.setDbSchemaVersion("2.4");
    standby.setSoftwareVersion("vipr-2.4.0.0.150");
    standby.setHostIPv4AddressMap(new HashMap<String, String>());
    standby.getHostIPv4AddressMap().put("vipr1", "10.247.101.100");
    // setup standby site
    standbySite1 = new Site();
    standbySite1.setUuid("site-uuid-1");
    standbySite1.setVip("10.247.101.110");
    standbySite1.getHostIPv4AddressMap().put("vipr1", "10.247.101.111");
    standbySite1.getHostIPv4AddressMap().put("vipr2", "10.247.101.112");
    standbySite1.getHostIPv4AddressMap().put("vipr3", "10.247.101.113");
    standbySite1.setState(SiteState.STANDBY_PAUSED);
    standbySite1.setVdcShortId("vdc1");
    standbySite1.setNodeCount(1);
    standbySite2 = new Site();
    standbySite2.setUuid("site-uuid-2");
    standbySite2.setState(SiteState.STANDBY_SYNCED);
    standbySite2.setVdcShortId("vdc1");
    standbySite2.setVip("10.247.101.158");
    standbySite2.setNodeCount(1);
    standbySite3 = new Site();
    standbySite3.setUuid("site-uuid-3");
    standbySite3.setVdcShortId("fake-vdc-id");
    standbySite3.setState(SiteState.ACTIVE);
    standbySite3.setVdcShortId("vdc1");
    standbySite3.setNodeCount(1);
    primarySite = new Site();
    primarySite.setUuid("primary-site-uuid");
    primarySite.setVip("127.0.0.1");
    primarySite.setHostIPv4AddressMap(standbySite1.getHostIPv4AddressMap());
    primarySite.setHostIPv6AddressMap(standbySite1.getHostIPv6AddressMap());
    primarySite.setVdcShortId("vdc1");
    primarySite.setState(SiteState.ACTIVE);
    primarySite.setNodeCount(3);
    // mock DBClient
    dbClientMock = mock(DbClientImpl.class);
    // mock coordinator client
    coordinator = mock(CoordinatorClient.class);
    // mock ipsecconfig
    IPsecConfig ipsecConfig = mock(IPsecConfig.class);
    doReturn("ipsec-preshared-key").when(ipsecConfig).getPreSharedKey();
    drUtil = mock(DrUtil.class);
    natCheckParam = new DRNatCheckParam();
    apiSignatureGeneratorMock = mock(InternalApiSignatureKeyGenerator.class);
    try {
        KeyGenerator keyGenerator = null;
        keyGenerator = KeyGenerator.getInstance("HmacSHA256");
        secretKey = keyGenerator.generateKey();
    } catch (NoSuchAlgorithmException e) {
        fail("generate key fail");
    }
    drService = spy(new DisasterRecoveryService());
    drService.setDbClient(dbClientMock);
    drService.setCoordinator(coordinator);
    drService.setDrUtil(drUtil);
    drService.setSiteMapper(new SiteMapper());
    drService.setSysUtils(new SysUtils());
    drService.setIpsecConfig(ipsecConfig);
    drService.setApiSignatureGenerator(apiSignatureGeneratorMock);
    standbyConfig = new Site();
    standbyConfig.setUuid("standby-site-uuid-1");
    standbyConfig.setVip(standbySite1.getVip());
    standbyConfig.setHostIPv4AddressMap(standbySite1.getHostIPv4AddressMap());
    standbyConfig.setHostIPv6AddressMap(standbySite1.getHostIPv6AddressMap());
    standbyConfig.setNodeCount(3);
    doReturn(standbyConfig.getUuid()).when(coordinator).getSiteId();
    Configuration config = new ConfigurationImpl();
    config.setConfig(Constants.CONFIG_DR_ACTIVE_SITEID, primarySite.getUuid());
    doReturn(config).when(coordinator).queryConfiguration(Constants.CONFIG_DR_ACTIVE_KIND, Constants.CONFIG_DR_ACTIVE_ID);
    doReturn("2.4").when(coordinator).getCurrentDbSchemaVersion();
    doReturn(primarySite.getUuid()).when(coordinator).getSiteId();
    doReturn(ClusterInfo.ClusterState.STABLE).when(coordinator).getControlNodesState();
    // Don't need to record audit log in UT
    doNothing().when(drService).auditDisasterRecoveryOps(any(OperationTypeEnum.class), anyString(), anyString(), anyVararg());
    doReturn(repositoryInfo).when(coordinator).getTargetInfo(RepositoryInfo.class);
    doReturn(standbySite1).when(drUtil).getSiteFromLocalVdc(standbySite1.getUuid());
    doReturn(standbySite2).when(drUtil).getSiteFromLocalVdc(standbySite2.getUuid());
    doThrow(CoordinatorException.retryables.cannotFindSite(NONEXISTENT_ID)).when(drUtil).getSiteFromLocalVdc(NONEXISTENT_ID);
    doReturn(primarySite).when(drUtil).getSiteFromLocalVdc(primarySite.getUuid());
    SiteNetworkState siteNetworkState = new SiteNetworkState();
    siteNetworkState.setNetworkHealth(SiteNetworkState.NetworkHealth.GOOD);
    doReturn(siteNetworkState).when(drUtil).getSiteNetworkState(any(String.class));
    CoordinatorClientInetAddressMap addressMap = new CoordinatorClientInetAddressMap();
    addressMap.setDualInetAddress(DualInetAddress.fromAddresses("10.247.101.110", ""));
    doReturn(addressMap).when(coordinator).getInetAddessLookupMap();
    InterProcessLock lock = mock(InterProcessLock.class);
    doReturn(lock).when(coordinator).getLock(anyString());
    doReturn(true).when(lock).acquire(anyInt(), any(TimeUnit.class));
    doNothing().when(lock).release();
}
Also used : Site(com.emc.storageos.coordinator.client.model.Site) IPsecConfig(com.emc.storageos.security.ipsec.IPsecConfig) ProductName(com.emc.storageos.coordinator.client.model.ProductName) Configuration(com.emc.storageos.coordinator.common.Configuration) OperationTypeEnum(com.emc.storageos.services.OperationTypeEnum) Matchers.anyString(org.mockito.Matchers.anyString) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) CoordinatorClient(com.emc.storageos.coordinator.client.service.CoordinatorClient) TimeUnit(java.util.concurrent.TimeUnit) SiteConfigRestRep(com.emc.storageos.model.dr.SiteConfigRestRep) KeyGenerator(javax.crypto.KeyGenerator) InternalApiSignatureKeyGenerator(com.emc.storageos.security.authentication.InternalApiSignatureKeyGenerator) ConfigurationImpl(com.emc.storageos.coordinator.common.impl.ConfigurationImpl) InternalApiSignatureKeyGenerator(com.emc.storageos.security.authentication.InternalApiSignatureKeyGenerator) RepositoryInfo(com.emc.storageos.coordinator.client.model.RepositoryInfo) Constructor(java.lang.reflect.Constructor) SiteMapper(com.emc.storageos.api.mapper.SiteMapper) DrUtil(com.emc.storageos.coordinator.client.service.DrUtil) LinkedList(java.util.LinkedList) SysUtils(com.emc.storageos.services.util.SysUtils) SoftwareVersion(com.emc.storageos.coordinator.client.model.SoftwareVersion) DbClientImpl(com.emc.storageos.db.client.impl.DbClientImpl) DRNatCheckParam(com.emc.storageos.model.dr.DRNatCheckParam) CoordinatorClientInetAddressMap(com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap) SiteNetworkState(com.emc.storageos.coordinator.client.model.SiteNetworkState) InterProcessLock(org.apache.curator.framework.recipes.locks.InterProcessLock) Before(org.junit.Before)

Example 18 with CoordinatorClientInetAddressMap

use of com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap in project coprhd-controller by CoprHD.

the class DisasterRecoveryServiceTest method testPrecheckForFailover.

@Test
public void testPrecheckForFailover() {
    CoordinatorClientInetAddressMap addrLookupMap = new CoordinatorClientInetAddressMap();
    addrLookupMap.setNodeId("vipr1");
    doReturn(standbySite2).when(drUtil).getLocalSite();
    doReturn(true).when(drUtil).isAllSyssvcUp(standbySite2.getUuid());
    doReturn(ClusterInfo.ClusterState.STABLE).when(coordinator).getControlNodesState(standbySite2.getUuid());
    doReturn("leader").when(drUtil).getLocalCoordinatorMode();
    doReturn(true).when(drUtil).isParticipantNode("leader");
    doReturn(addrLookupMap).when(coordinator).getInetAddessLookupMap();
    drService.precheckForFailover();
}
Also used : CoordinatorClientInetAddressMap(com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap) Test(org.junit.Test)

Example 19 with CoordinatorClientInetAddressMap

use of com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap in project coprhd-controller by CoprHD.

the class CoordinatorTestBase method createLocalInetAddressLookupMap.

protected static CoordinatorClientInetAddressMap createLocalInetAddressLookupMap() throws UnknownHostException {
    CoordinatorClientInetAddressMap lookup = new CoordinatorClientInetAddressMap();
    lookup.setNodeId("localhost");
    lookup.setDualInetAddress(DualInetAddress.fromAddress("127.0.0.1"));
    Map<String, DualInetAddress> addressMap = new HashMap<>();
    addressMap.put(lookup.getNodeId(), lookup.getDualInetAddress());
    lookup.setControllerNodeIPLookupMap(addressMap);
    return lookup;
}
Also used : HashMap(java.util.HashMap) CoordinatorClientInetAddressMap(com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap) DualInetAddress(com.emc.storageos.coordinator.client.service.impl.DualInetAddress)

Example 20 with CoordinatorClientInetAddressMap

use of com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap in project coprhd-controller by CoprHD.

the class BackupOps method initDualAddrHosts.

private synchronized Map<String, String> initDualAddrHosts() {
    if (dualAddrHosts != null && !dualAddrHosts.isEmpty()) {
        return dualAddrHosts;
    }
    dualAddrHosts = new TreeMap<>();
    CoordinatorClientInetAddressMap addressMap = getInetAddressLookupMap();
    for (String nodeId : addressMap.getControllerNodeIPLookupMap().keySet()) {
        String normalizedHost = normalizeDualInetAddress(addressMap.get(nodeId));
        if (normalizedHost == null) {
            throw BackupException.fatals.failedToGetValidDualInetAddress("Neither IPv4 or IPv6 address is configured");
        }
        dualAddrHosts.put(nodeId, normalizedHost);
    }
    return dualAddrHosts;
}
Also used : CoordinatorClientInetAddressMap(com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap)

Aggregations

CoordinatorClientInetAddressMap (com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap)22 DualInetAddress (com.emc.storageos.coordinator.client.service.impl.DualInetAddress)13 ZkConnection (com.emc.storageos.coordinator.common.impl.ZkConnection)9 ArrayList (java.util.ArrayList)9 URI (java.net.URI)8 HashMap (java.util.HashMap)7 FileInputStream (java.io.FileInputStream)6 CoordinatorClientImpl (com.emc.storageos.coordinator.client.service.impl.CoordinatorClientImpl)5 Properties (java.util.Properties)5 Before (org.junit.Before)5 DbVersionInfo (com.emc.storageos.coordinator.client.model.DbVersionInfo)4 KeyCertificateAlgorithmValuesHolder (com.emc.storageos.security.keystore.impl.KeyCertificateAlgorithmValuesHolder)4 KeyCertificatePairGenerator (com.emc.storageos.security.keystore.impl.KeyCertificatePairGenerator)3 ClassPathXmlApplicationContext (org.springframework.context.support.ClassPathXmlApplicationContext)3 DrUtil (com.emc.storageos.coordinator.client.service.DrUtil)2 Configuration (com.emc.storageos.coordinator.common.Configuration)2 ConfigurationImpl (com.emc.storageos.coordinator.common.impl.ConfigurationImpl)2 ServiceImpl (com.emc.storageos.coordinator.common.impl.ServiceImpl)2 DbClientContext (com.emc.storageos.db.client.impl.DbClientContext)2 DbClientImpl (com.emc.storageos.db.client.impl.DbClientImpl)2