| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.falcon.regression.prism; |
| |
| import org.apache.falcon.regression.core.bundle.Bundle; |
| import org.apache.falcon.regression.core.helpers.ColoHelper; |
| import org.apache.falcon.regression.core.response.ServiceResponse; |
| import org.apache.falcon.regression.core.util.AssertUtil; |
| import org.apache.falcon.regression.core.util.BundleUtil; |
| import org.apache.falcon.regression.core.util.OSUtil; |
| import org.apache.falcon.regression.core.util.TimeUtil; |
| import org.apache.falcon.regression.core.util.Util; |
| import org.apache.falcon.regression.testHelper.BaseTestClass; |
| import org.apache.log4j.Logger; |
| import org.testng.Assert; |
| import org.testng.annotations.AfterClass; |
| import org.testng.annotations.AfterMethod; |
| import org.testng.annotations.BeforeClass; |
| import org.testng.annotations.BeforeMethod; |
| import org.testng.annotations.Test; |
| |
| import java.io.IOException; |
| import java.lang.reflect.Method; |
| import java.net.ConnectException; |
| import java.util.List; |
| |
| @Test(groups = "distributed") |
| public class PrismSubmitTest extends BaseTestClass { |
| |
| ColoHelper cluster1 = servers.get(0); |
| ColoHelper cluster2 = servers.get(1); |
| String baseTestDir = baseHDFSDir + "/PrismSubmitTest"; |
| String randomHDFSPath = baseTestDir + "/someRandomPath"; |
| String aggregateWorkflowDir = baseTestDir + "/aggregator"; |
| boolean restartRequired; |
| private static final Logger logger = Logger.getLogger(PrismSubmitTest.class); |
| |
| @BeforeClass(alwaysRun = true) |
| public void uploadWorkflow() throws Exception { |
| uploadDirToClusters(aggregateWorkflowDir, OSUtil.RESOURCES_OOZIE); |
| } |
| |
| @BeforeMethod(alwaysRun = true) |
| public void setUp(Method method) throws Exception { |
| logger.info("test name: " + method.getName()); |
| restartRequired = false; |
| bundles[0] = BundleUtil.readELBundle(); |
| bundles[0] = new Bundle(bundles[0], cluster1); |
| bundles[0].generateUniqueBundle(); |
| bundles[0].setProcessWorkflow(aggregateWorkflowDir); |
| } |
| |
| |
| @AfterMethod(alwaysRun = true) |
| public void tearDown() throws Exception { |
| if (restartRequired) { |
| Util.startService(prism.getFeedHelper()); |
| Util.startService(cluster1.getFeedHelper()); |
| } |
| removeBundles(); |
| } |
| |
| @Test(groups = "distributed") |
| public void submitCluster_1prism1coloPrismdown() throws Exception { |
| restartRequired = true; |
| Util.shutDownService(prism.getClusterHelper()); |
| |
| List<String> beforeSubmit = cluster1.getClusterHelper().getStoreInfo(); |
| try { |
| prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| } catch (ConnectException e) { |
| Assert.assertTrue(e.getMessage().contains("Connection to " |
| + prism.getClusterHelper().getHostname() + " refused"), e.getMessage()); |
| } |
| List<String> afterSubmit = cluster1.getClusterHelper().getStoreInfo(); |
| |
| AssertUtil.compareDataStoreStates(beforeSubmit, afterSubmit, 0); |
| |
| } |
| |
| @Test(groups = "distributed") |
| public void submitCluster_resubmitDiffContent() throws Exception { |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| List<String> beforeSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| |
| bundles[0].setCLusterWorkingPath(bundles[0].getClusters().get(0), randomHDFSPath); |
| logger.info("modified cluster Data: " |
| + Util.prettyPrintXml(bundles[0].getClusters().get(0))); |
| r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| List<String> afterSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster, afterSubmitCluster, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, 0); |
| } |
| |
| @Test(groups = "distributed") |
| public void submitCluster_resubmitAlreadyPARTIALWithAllUp() throws Exception { |
| restartRequired = true; |
| Util.shutDownService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(30); |
| |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| |
| Assert.assertTrue(r.getMessage().contains("PARTIAL")); |
| |
| Util.startService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(30); |
| |
| r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| } |
| |
| @Test(groups = "distributed") |
| public void submitProcess_1ColoDownAfter2FeedSubmitStartAfterProcessSubmitAnsDeleteProcess() |
| throws Exception { |
| restartRequired = true; |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| r = prism.getFeedHelper().submitEntity(bundles[0].getDataSets().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| r = prism.getFeedHelper().submitEntity(bundles[0].getDataSets().get(1)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| Util.shutDownService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(12); |
| |
| |
| List<String> beforeSubmitCluster1 = cluster1.getProcessHelper().getStoreInfo(); |
| List<String> beforeSubmitCluster2 = cluster2.getProcessHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = prism.getProcessHelper().getStoreInfo(); |
| |
| AssertUtil.assertSucceeded(prism.getProcessHelper().delete(bundles[0].getProcessData())); |
| |
| AssertUtil.assertSucceeded(prism.getProcessHelper().submitEntity(bundles[0].getProcessData())); |
| AssertUtil.assertFailed(r); |
| List<String> afterSubmitCluster1 = cluster1.getProcessHelper().getStoreInfo(); |
| List<String> afterSubmitCluster2 = cluster2.getProcessHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = prism.getProcessHelper().getStoreInfo(); |
| |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster1, afterSubmitCluster1, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| Util.getProcessName(bundles[0].getProcessData()), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster2, afterSubmitCluster2, 0); |
| |
| Util.startService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(15); |
| |
| beforeSubmitCluster1 = cluster1.getProcessHelper().getStoreInfo(); |
| beforeSubmitCluster2 = cluster2.getProcessHelper().getStoreInfo(); |
| beforeSubmitPrism = prism.getProcessHelper().getStoreInfo(); |
| |
| r = prism.getProcessHelper().delete(bundles[0].getProcessData()); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| afterSubmitCluster1 = cluster1.getProcessHelper().getStoreInfo(); |
| afterSubmitCluster2 = cluster2.getProcessHelper().getStoreInfo(); |
| afterSubmitPrism = prism.getProcessHelper().getStoreInfo(); |
| |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster1, afterSubmitCluster1, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| Util.getProcessName(bundles[0].getProcessData()), -1); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster2, afterSubmitCluster2, 0); |
| } |
| |
| @Test(groups = "distributed") |
| public void submitProcess_ideal() throws Exception { |
| |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| List<String> beforeSubmitCluster1 = cluster1.getFeedHelper().getStoreInfo(); |
| List<String> beforeSubmitCluster2 = cluster2.getFeedHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = prism.getFeedHelper().getStoreInfo(); |
| |
| r = prism.getFeedHelper().submitEntity(bundles[0].getDataSets().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| r = prism.getFeedHelper().submitEntity(bundles[0].getDataSets().get(1)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| List<String> afterSubmitCluster1 = cluster1.getFeedHelper().getStoreInfo(); |
| List<String> afterSubmitCluster2 = cluster2.getFeedHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = prism.getFeedHelper().getStoreInfo(); |
| |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster1, afterSubmitCluster1, 2); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, 2); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster2, afterSubmitCluster2, 0); |
| |
| beforeSubmitCluster1 = cluster1.getProcessHelper().getStoreInfo(); |
| beforeSubmitCluster2 = cluster2.getProcessHelper().getStoreInfo(); |
| beforeSubmitPrism = prism.getProcessHelper().getStoreInfo(); |
| |
| r = prism.getProcessHelper().submitEntity(bundles[0].getProcessData()); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| afterSubmitCluster1 = cluster1.getProcessHelper().getStoreInfo(); |
| afterSubmitCluster2 = cluster2.getProcessHelper().getStoreInfo(); |
| afterSubmitPrism = prism.getProcessHelper().getStoreInfo(); |
| |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster1, afterSubmitCluster1, |
| Util.getProcessName(bundles[0].getProcessData()), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| Util.getProcessName(bundles[0].getProcessData()), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster2, afterSubmitCluster2, 0); |
| |
| } |
| |
| @Test(groups = "distributed") |
| public void submitCluster_1prism1coloColoDown() throws Exception { |
| restartRequired = true; |
| Util.shutDownService(cluster1.getClusterHelper()); |
| |
| List<String> beforeSubmitCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = prism.getClusterHelper().getStoreInfo(); |
| |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| |
| |
| List<String> afterSubmitCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = prism.getClusterHelper().getStoreInfo(); |
| |
| Assert.assertTrue(r.getMessage().contains("PARTIAL")); |
| |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster2, afterSubmitCluster2, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| |
| Util.startService(cluster1.getClusterHelper()); |
| |
| TimeUtil.sleepSeconds(10); |
| |
| beforeSubmitCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| beforeSubmitPrism = prism.getClusterHelper().getStoreInfo(); |
| |
| r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| |
| afterSubmitCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| afterSubmitPrism = prism.getClusterHelper().getStoreInfo(); |
| |
| //should be succeeded |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster2, afterSubmitCluster2, 0); |
| } |
| |
| @Test(groups = "distributed") |
| public void submitCluster_1prism1coloSubmitDeleted() throws Exception { |
| prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| prism.getClusterHelper().delete(bundles[0].getClusters().get(0)); |
| |
| List<String> beforeSubmitCluster1 = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = prism.getClusterHelper().getStoreInfo(); |
| |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| |
| List<String> afterSubmitCluster1 = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = prism.getClusterHelper().getStoreInfo(); |
| |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster1, afterSubmitCluster1, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster2, afterSubmitCluster2, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| } |
| |
| @Test(groups = "embedded") |
| public void submitProcess_woClusterSubmit() throws Exception { |
| ServiceResponse r = prism.getProcessHelper().submitEntity(bundles[0].getProcessData()); |
| |
| Assert.assertTrue(r.getMessage().contains("FAILED")); |
| Assert.assertTrue(r.getMessage().contains("is not registered")); |
| } |
| |
| @Test(groups = "embedded") |
| public void submitProcess_woFeedSubmit() throws Exception { |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| r = prism.getProcessHelper().submitEntity(bundles[0].getProcessData()); |
| Assert.assertTrue(r.getMessage().contains("FAILED")); |
| Assert.assertTrue(r.getMessage().contains("is not registered")); |
| } |
| |
| @Test(groups = {"prism", "0.2", "distributed"}) |
| public void submitCluster_resubmitAlreadyPARTIAL() throws Exception { |
| restartRequired = true; |
| bundles[1] = new Bundle(bundles[0], cluster2); |
| bundles[1].generateUniqueBundle(); |
| bundles[1].setProcessWorkflow(aggregateWorkflowDir); |
| |
| List<String> beforeCluster1 = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> beforePrism = prism.getClusterHelper().getStoreInfo(); |
| List<String> beforeCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| |
| Util.shutDownService(cluster1.getFeedHelper()); |
| |
| bundles[1].setCLusterColo(cluster2.getClusterHelper().getColoName()); |
| logger.info("cluster b2: " + Util.prettyPrintXml(bundles[1].getClusters().get(0))); |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[1].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("PARTIAL")); |
| |
| List<String> parCluster1 = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> parPrism = prism.getClusterHelper().getStoreInfo(); |
| List<String> parCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| |
| AssertUtil.compareDataStoreStates(parCluster1, beforeCluster1, 0); |
| AssertUtil.compareDataStoreStates(beforePrism, parPrism, |
| Util.readEntityName(bundles[1].getClusters().get(0)), 1); |
| AssertUtil.compareDataStoreStates(beforeCluster2, parCluster2, |
| Util.readEntityName(bundles[1].getClusters().get(0)), 1); |
| |
| Util.restartService(cluster1.getFeedHelper()); |
| |
| bundles[0].setCLusterColo(cluster1.getClusterHelper().getColoName()); |
| logger.info("cluster b1: " + Util.prettyPrintXml(bundles[0].getClusters().get(0))); |
| r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| List<String> afterCluster1 = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> afterPrism = prism.getClusterHelper().getStoreInfo(); |
| List<String> afterCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| |
| AssertUtil.compareDataStoreStates(parCluster1, afterCluster1, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| AssertUtil.compareDataStoreStates(afterPrism, parPrism, 0); |
| AssertUtil.compareDataStoreStates(afterCluster2, parCluster2, 0); |
| } |
| |
| @Test(groups = "distributed") |
| public void submitCluster_polarization() throws Exception { |
| restartRequired = true; |
| //shutdown one colo and submit |
| Util.shutDownService(cluster1.getClusterHelper()); |
| List<String> beforeSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| List<String> afterSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| Assert.assertTrue(r.getMessage().contains("PARTIAL")); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster, afterSubmitCluster, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| |
| //resubmit PARTIAL success |
| Util.startService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(30); |
| beforeSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| beforeSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| afterSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| afterSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster, afterSubmitCluster, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, 0); |
| } |
| |
| @Test(groups = "distributed") |
| public void submitCluster_resubmitDiffContentPARTIAL() throws Exception { |
| restartRequired = true; |
| Util.shutDownService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(30); |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| |
| Assert.assertTrue(r.getMessage().contains("PARTIAL")); |
| Util.startService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(30); |
| |
| List<String> beforeSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| bundles[0].setCLusterWorkingPath(bundles[0].getClusters().get(0), randomHDFSPath); |
| r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| List<String> afterSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster, afterSubmitCluster, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, 0); |
| } |
| |
| @Test |
| public void submitCluster_PARTIALDeletedOfPARTIALSubmit() throws Exception { |
| restartRequired = true; |
| Util.shutDownService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(30); |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("PARTIAL")); |
| |
| List<String> beforeSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| r = prism.getClusterHelper().delete(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("PARTIAL")); |
| |
| List<String> afterSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster, afterSubmitCluster, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| Util.readEntityName(bundles[0].getClusters().get(0)), -1); |
| |
| r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("PARTIAL")); |
| } |
| |
| @Test(groups = "distributed") |
| public void submitCluster_submitPartialDeleted() throws Exception { |
| restartRequired = true; |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| TimeUtil.sleepSeconds(30); |
| |
| Util.shutDownService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(30); |
| |
| List<String> beforeSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| r = prism.getClusterHelper().delete(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("PARTIAL")); |
| List<String> afterSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster, afterSubmitCluster, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| Util.readEntityName(bundles[0].getClusters().get(0)), -1); |
| |
| Util.startService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(30); |
| |
| beforeSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| beforeSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| afterSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| afterSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster, afterSubmitCluster, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| } |
| |
| @Test(groups = "embedded") |
| public void submitCluster_resubmitAlreadySucceeded() throws Exception { |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| List<String> beforeSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| |
| List<String> afterSubmitCluster = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = cluster2.getClusterHelper().getStoreInfo(); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster, afterSubmitCluster, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, 0); |
| } |
| |
| @Test(groups = "distributed") |
| public void submitCluster_1prism1coloAllUp() throws Exception { |
| List<String> beforeSubmitCluster1 = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = prism.getClusterHelper().getStoreInfo(); |
| |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| |
| List<String> afterSubmitCluster1 = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = prism.getClusterHelper().getStoreInfo(); |
| |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster1, afterSubmitCluster1, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster2, afterSubmitCluster2, |
| Util.readEntityName(bundles[0].getClusters().get(0)), 1); |
| } |
| |
| @Test(groups = "embedded") |
| public void submitCluster_1prism1coloAlreadySubmitted() throws Exception { |
| prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| |
| List<String> beforeSubmitCluster1 = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = prism.getClusterHelper().getStoreInfo(); |
| |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| |
| List<String> afterSubmitCluster1 = cluster1.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitCluster2 = cluster2.getClusterHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = prism.getClusterHelper().getStoreInfo(); |
| |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster1, afterSubmitCluster1, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster2, afterSubmitCluster2, 0); |
| } |
| |
| @Test |
| public void submitProcess_1ColoDownAfter1FeedSubmitStartAfter2feed() throws Exception { |
| restartRequired = true; |
| ServiceResponse r = prism.getClusterHelper().submitEntity(bundles[0].getClusters().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED"), r.getMessage()); |
| |
| r = prism.getFeedHelper().submitEntity(bundles[0].getDataSets().get(0)); |
| Assert.assertTrue(r.getMessage().contains("SUCCEEDED"), r.getMessage()); |
| |
| Util.shutDownService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(30); |
| |
| List<String> beforeSubmitCluster1 = cluster1.getFeedHelper().getStoreInfo(); |
| List<String> beforeSubmitCluster2 = cluster2.getFeedHelper().getStoreInfo(); |
| List<String> beforeSubmitPrism = prism.getFeedHelper().getStoreInfo(); |
| |
| r = prism.getFeedHelper().submitEntity(bundles[0].getDataSets().get(1)); |
| Assert.assertTrue(r.getMessage().contains("FAILED")); |
| |
| List<String> afterSubmitCluster1 = cluster1.getFeedHelper().getStoreInfo(); |
| List<String> afterSubmitCluster2 = cluster2.getFeedHelper().getStoreInfo(); |
| List<String> afterSubmitPrism = prism.getFeedHelper().getStoreInfo(); |
| |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster1, afterSubmitCluster1, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| Util.readEntityName(bundles[0].getDataSets().get(1)), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster2, afterSubmitCluster2, 0); |
| |
| Util.startService(cluster1.getClusterHelper()); |
| TimeUtil.sleepSeconds(15); |
| |
| beforeSubmitCluster1 = cluster1.getProcessHelper().getStoreInfo(); |
| beforeSubmitCluster2 = cluster2.getProcessHelper().getStoreInfo(); |
| beforeSubmitPrism = prism.getProcessHelper().getStoreInfo(); |
| |
| r = prism.getProcessHelper().submitEntity(bundles[0].getProcessData()); |
| Assert.assertTrue(r.getMessage().contains("FAILED"), r.getMessage()); |
| |
| afterSubmitCluster1 = cluster1.getProcessHelper().getStoreInfo(); |
| afterSubmitCluster2 = cluster2.getProcessHelper().getStoreInfo(); |
| afterSubmitPrism = prism.getProcessHelper().getStoreInfo(); |
| |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster1, afterSubmitCluster1, 0); |
| AssertUtil.compareDataStoreStates(beforeSubmitPrism, afterSubmitPrism, |
| Util.getProcessName(bundles[0].getProcessData()), 1); |
| AssertUtil.compareDataStoreStates(beforeSubmitCluster2, afterSubmitCluster2, 0); |
| } |
| |
| @AfterClass(alwaysRun = true) |
| public void tearDownClass() throws IOException { |
| cleanTestDirs(); |
| } |
| } |