package com.neverwinterdp.scribengin.builder; import com.neverwinterdp.scribengin.ScribenginClient; import com.neverwinterdp.scribengin.event.ScribenginWaitingEventListener; import com.neverwinterdp.vm.VMStatus; import com.neverwinterdp.vm.client.VMClient; import com.neverwinterdp.vm.tool.VMClusterBuilder; import static com.neverwinterdp.vm.tool.VMClusterBuilder.* ; public class ScribenginClusterBuilder { private VMClusterBuilder vmClusterBuilder ; private ScribenginClient scribenginClient; public ScribenginClusterBuilder(VMClusterBuilder vmClusterBuilder) { this.vmClusterBuilder = vmClusterBuilder ; } public VMClusterBuilder getVMClusterBuilder() { return this.vmClusterBuilder ; } public ScribenginClient getScribenginClient() { if(scribenginClient == null) { scribenginClient = new ScribenginClient(vmClusterBuilder.getVMClient()); } return this.scribenginClient ; } public void clean() throws Exception { vmClusterBuilder.clean(); } public void start() throws Exception { startVMMasters() ; startScribenginMasters(); } public void startVMMasters() throws Exception { vmClusterBuilder.start(); } public void startScribenginMasters() throws Exception { VMClient vmClient = vmClusterBuilder.getVMClient(); if(!vmClient.getRegistry().isConnect()) { vmClient.getRegistry().connect() ; } scribenginClient = new ScribenginClient(vmClient); ScribenginWaitingEventListener sribenginAssert = new ScribenginWaitingEventListener(vmClusterBuilder.getVMClient().getRegistry()); h1("Create Scribengin Master 1"); sribenginAssert.waitScribenginMaster("Expect vm-scribengin-master-1 as the leader", "vm-scribengin-master-1"); scribenginClient.createVMScribenginMaster(vmClient, "vm-scribengin-master-1") ; sribenginAssert.waitForEvents(60000); h2("Finish creating Scribengin Master 1") ; h1("Create Scribengin Master 2"); sribenginAssert.waitVMStatus("vm-scribengin-master-2 running", "vm-scribengin-master-2", VMStatus.RUNNING); scribenginClient.createVMScribenginMaster(vmClient, "vm-scribengin-master-2") ; sribenginAssert.waitForEvents(60000); h2("Finish creating Scribengin Master 2") ; } public void shutdown() throws Exception { vmClusterBuilder.shutdown(); } }