blob: 62989814f89a40ce48d14da161a9b7ce6baf6a3b [file] [log] [blame]
/**
* 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.entity.v0.feed.ActionType;
import org.apache.falcon.entity.v0.feed.ClusterType;
import org.apache.falcon.regression.core.helpers.ColoHelper;
import org.apache.falcon.regression.core.util.BundleUtil;
import org.apache.falcon.regression.core.util.InstanceUtil;
import org.apache.falcon.regression.core.util.OSUtil;
import org.apache.falcon.regression.core.util.Util;
import org.apache.falcon.regression.core.util.XmlUtil;
import org.apache.falcon.regression.testHelper.BaseTestClass;
import org.apache.log4j.Logger;
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;
@Test(groups = "distributed")
public class FeedDelayParallelTimeoutTest extends BaseTestClass {
ColoHelper cluster1 = servers.get(0);
ColoHelper cluster2 = servers.get(1);
String baseTestDir = baseHDFSDir + "/FeedDelayParallelTimeoutTest";
String feedInputPath = baseTestDir + MINUTE_DATE_PATTERN;
String aggregateWorkflowDir = baseTestDir + "/aggregator";
private static final Logger logger = Logger.getLogger(FeedDelayParallelTimeoutTest.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());
Bundle bundle = BundleUtil.readELBundle();
bundles[0] = new Bundle(bundle, cluster1);
bundles[1] = new Bundle(bundle, cluster2);
bundles[0].generateUniqueBundle();
bundles[1].generateUniqueBundle();
bundles[0].setProcessWorkflow(aggregateWorkflowDir);
bundles[1].setProcessWorkflow(aggregateWorkflowDir);
}
@AfterMethod(alwaysRun = true)
public void tearDown() {
removeBundles();
}
@Test(enabled = true, timeOut = 12000000)
public void timeoutTest() throws Exception {
bundles[0].setInputFeedDataPath(feedInputPath);
Bundle.submitCluster(bundles[0], bundles[1]);
String feedOutput01 = bundles[0].getDataSets().get(0);
org.apache.falcon.entity.v0.Frequency delay =
new org.apache.falcon.entity.v0.Frequency(
"hours(5)");
feedOutput01 = InstanceUtil
.setFeedCluster(feedOutput01,
XmlUtil.createValidity("2010-10-01T12:00Z", "2099-01-01T00:00Z"),
XmlUtil.createRtention("days(10000)", ActionType.DELETE), null,
ClusterType.SOURCE, null);
// uncomment below 2 line when falcon in sync with ivory
// feedOutput01 = instanceUtil.setFeedCluster(feedOutput01,
// XmlUtil.createValidity("2013-04-21T00:00Z",
// "2099-10-01T12:10Z"),XmlUtil.createRtention("hours(15)",ActionType.DELETE),
// Util.readClusterName(bundles[1].getClusters().get(0)),ClusterType.SOURCE,"",delay,
// feedInputPath);
// feedOutput01 = instanceUtil.setFeedCluster(feedOutput01,
// XmlUtil.createValidity("2013-04-21T00:00Z",
// "2099-10-01T12:25Z"),XmlUtil.createRtention("hours(15)",ActionType.DELETE),
// Util.readClusterName(bundles[0].getClusters().get(0)),ClusterType.TARGET,"",delay,
// feedOutputPath);
//feedOutput01 = instanceUtil.setFeedCluster(feedOutput01,
// XmlUtil.createValidity("2013-04-21T00:00Z",
// "2099-10-01T12:10Z"),XmlUtil.createRtention("hours(15)",ActionType.DELETE),
// Util.readClusterName(bundles[1].getClusters().get(0)),ClusterType.SOURCE,"",
// feedInputPath);
//feedOutput01 = instanceUtil.setFeedCluster(feedOutput01,
// XmlUtil.createValidity("2013-04-21T00:00Z",
// "2099-10-01T12:25Z"),XmlUtil.createRtention("hours(15)",ActionType.DELETE),
// Util.readClusterName(bundles[0].getClusters().get(0)),ClusterType.TARGET,"",
// feedOutputPath);
feedOutput01 = Util.setFeedProperty(feedOutput01, "timeout", "minutes(35)");
feedOutput01 = Util.setFeedProperty(feedOutput01, "parallel", "3");
logger.info("feedOutput01: " + Util.prettyPrintXml(feedOutput01));
prism.getFeedHelper().submitAndSchedule(feedOutput01);
}
@AfterClass(alwaysRun = true)
public void tearDownClass() throws IOException {
cleanTestDirs();
}
}