/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.sa.util; import java.net.URI; import java.util.Collections; import java.util.HashMap; import java.util.Map; import com.emc.sa.model.mock.StubCoordinatorClientImpl; import com.emc.storageos.coordinator.client.service.CoordinatorClient; import com.emc.storageos.coordinator.client.service.impl.CoordinatorClientImpl; import com.emc.storageos.coordinator.client.service.impl.CoordinatorClientInetAddressMap; import com.emc.storageos.coordinator.client.service.impl.DualInetAddress; import com.emc.storageos.coordinator.common.impl.ZkConnection; import org.apache.curator.test.TestingServer; /** * Starts the CoordinatorSvc for testing * * @author dmaddison */ public class TestCoordinatorService { private TestingServer zkServer; private ZkConnection zkConnection; private CoordinatorClientImpl coordinatorClient; private CoordinatorClientInetAddressMap createInetAddressLookup() throws Exception { 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; } /** Starts the Coordinator, but first deletes all persisted Zookeeper data */ public void startClean() throws Exception { start(); } public void start() throws Exception { zkServer = new TestingServer(); zkConnection = new ZkConnection(); zkConnection.setServer(Collections.singletonList(new URI("coordinator://localhost:" + zkServer.getPort()))); zkConnection.build(); coordinatorClient = new CoordinatorClientImpl(); coordinatorClient.setZkConnection(zkConnection); coordinatorClient.setInetAddessLookupMap(StubCoordinatorClientImpl.createLocalAddressLookupMap()); coordinatorClient.start(); } public void stop() throws Exception { zkServer.stop(); } public CoordinatorClient getCoordinatorClient() { return coordinatorClient; } }