Modified: oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionQueryExecutor.java URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionQueryExecutor.java?rev=1524923&r1=1524922&r2=1524923&view=diff ============================================================================== --- oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionQueryExecutor.java (original) +++ oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionQueryExecutor.java Fri Sep 20 07:39:43 2013 @@ -17,6 +17,8 @@ */ package org.apache.oozie.executor.jpa; +import java.util.List; + import javax.persistence.EntityManager; import javax.persistence.Query; import org.apache.oozie.WorkflowActionBean; @@ -44,20 +46,11 @@ public class TestWorkflowActionQueryExec @Override protected void tearDown() throws Exception { - System.out.println("Debug: In teardown"); - new Throwable().printStackTrace(); - try { - services.destroy(); - super.tearDown(); - } - catch (Exception e) { - System.out.println("Debug: exception In teardown"); - e.printStackTrace(); - throw e; - } + services.destroy(); + super.tearDown(); } - public void testGetQuery() throws Exception { + public void testGetUpdateQuery() throws Exception { EntityManager em = jpaService.getEntityManager(); WorkflowJobBean job = this.addRecordToWfJobTable(WorkflowJob.Status.RUNNING, WorkflowInstance.Status.RUNNING); WorkflowActionBean bean = addRecordToWfActionTable(job.getId(), "1", WorkflowAction.Status.PREP); @@ -102,24 +95,28 @@ public class TestWorkflowActionQueryExec query = WorkflowActionQueryExecutor.getInstance().getUpdateQuery(WorkflowActionQuery.UPDATE_ACTION_PENDING, bean, em); assertEquals(query.getParameterValue("pending"), bean.getPending()); + assertEquals(query.getParameterValue("pendingAge"), bean.getPendingAgeTimestamp()); assertEquals(query.getParameterValue("id"), bean.getId()); // UPDATE_ACTION_STATUS_PENDING query = WorkflowActionQueryExecutor.getInstance().getUpdateQuery( WorkflowActionQuery.UPDATE_ACTION_STATUS_PENDING, bean, em); assertEquals(query.getParameterValue("pending"), bean.getPending()); + assertEquals(query.getParameterValue("pendingAge"), bean.getPendingAgeTimestamp()); assertEquals(query.getParameterValue("status"), bean.getStatus().toString()); assertEquals(query.getParameterValue("id"), bean.getId()); // UPDATE_ACTION_PENDING_TRANS query = WorkflowActionQueryExecutor.getInstance().getUpdateQuery( WorkflowActionQuery.UPDATE_ACTION_PENDING_TRANS, bean, em); assertEquals(query.getParameterValue("pending"), bean.getPending()); + assertEquals(query.getParameterValue("pendingAge"), bean.getPendingAgeTimestamp()); assertEquals(query.getParameterValue("transition"), bean.getTransition()); assertEquals(query.getParameterValue("id"), bean.getId()); // UPDATE_ACTION_PENDING_TRANS_ERROR query = WorkflowActionQueryExecutor.getInstance().getUpdateQuery( WorkflowActionQuery.UPDATE_ACTION_PENDING_TRANS_ERROR, bean, em); assertEquals(query.getParameterValue("pending"), bean.getPending()); + assertEquals(query.getParameterValue("pendingAge"), bean.getPendingAgeTimestamp()); assertEquals(query.getParameterValue("transition"), bean.getTransition()); assertEquals(query.getParameterValue("errorCode"), bean.getErrorCode()); assertEquals(query.getParameterValue("errorMessage"), bean.getErrorMessage()); @@ -169,6 +166,7 @@ public class TestWorkflowActionQueryExec assertEquals(query.getParameterValue("retries"), bean.getRetries()); assertEquals(query.getParameterValue("endTime"), bean.getEndTimestamp()); assertEquals(query.getParameterValue("status"), bean.getStatus().toString()); + assertEquals(query.getParameterValue("retries"), bean.getRetries()); assertEquals(query.getParameterValue("pending"), bean.getPending()); assertEquals(query.getParameterValue("pendingAge"), bean.getPendingAgeTimestamp()); assertEquals(query.getParameterValue("signalValue"), bean.getSignalValue()); @@ -184,18 +182,186 @@ public class TestWorkflowActionQueryExec WorkflowJobBean job = this.addRecordToWfJobTable(WorkflowJob.Status.RUNNING, WorkflowInstance.Status.RUNNING); WorkflowActionBean bean = addRecordToWfActionTable(job.getId(), "1", WorkflowAction.Status.PREP); bean.setStatus(WorkflowAction.Status.RUNNING); + bean.setName("test-name"); WorkflowActionQueryExecutor.getInstance().executeUpdate(WorkflowActionQuery.UPDATE_ACTION, bean); WorkflowActionBean retBean = WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION, bean.getId()); + assertEquals("test-name", retBean.getName()); assertEquals(retBean.getStatus(), WorkflowAction.Status.RUNNING); } public void testGet() throws Exception { - // TODO + WorkflowActionBean bean = addRecordToWfActionTable("workflowId","testAction", WorkflowAction.Status.PREP); + WorkflowActionBean retBean; + + //GET_WORKFFLOW_ID_TYPE + retBean = WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_ID_TYPE, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getType(), retBean.getType()); + + //GET_WORKFFLOW_FAIL + retBean = WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_FAIL, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getJobId(), retBean.getJobId()); + assertEquals(bean.getName(), retBean.getName()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getPending(), retBean.getPending()); + assertEquals(bean.getType(), retBean.getType()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(bean.getTransition(), retBean.getTransition()); + assertEquals(bean.getErrorCode(), retBean.getErrorCode()); + assertEquals(bean.getErrorMessage(), retBean.getErrorMessage()); + assertNull(retBean.getConf()); + assertNull(retBean.getSlaXml()); + assertNull(retBean.getData()); + assertNull(retBean.getStats()); + assertNull(retBean.getExternalChildIDs()); + + //GET_WORKFFLOW_SIGNAL + retBean = WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_SIGNAL, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getJobId(), retBean.getJobId()); + assertEquals(bean.getName(), retBean.getName()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getPending(), retBean.getPending()); + assertEquals(bean.getType(), retBean.getType()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(bean.getTransition(), retBean.getTransition()); + assertEquals(bean.getErrorCode(), retBean.getErrorCode()); + assertEquals(bean.getErrorMessage(), retBean.getErrorMessage()); + assertEquals(bean.getExecutionPath(), retBean.getExecutionPath()); + assertEquals(bean.getSignalValue(), retBean.getSignalValue()); + assertEquals(bean.getSlaXml(), retBean.getSlaXml()); + assertNull(retBean.getConf()); + assertNull(retBean.getData()); + assertNull(retBean.getStats()); + assertNull(retBean.getExternalChildIDs()); + + // GET_WORKFLOW_START + retBean = WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_START, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getJobId(), retBean.getJobId()); + assertEquals(bean.getName(), retBean.getName()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getPending(), retBean.getPending()); + assertEquals(bean.getType(), retBean.getType()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(bean.getTransition(), retBean.getTransition()); + assertEquals(bean.getUserRetryCount(), retBean.getUserRetryCount()); + assertEquals(bean.getUserRetryMax(), retBean.getUserRetryMax()); + assertEquals(bean.getUserRetryInterval(), retBean.getUserRetryInterval()); + assertEquals(bean.getStartTime().getTime(), retBean.getStartTime().getTime()); + assertEquals(bean.getEndTime().getTime(), retBean.getEndTime().getTime()); + assertEquals(bean.getErrorCode(), retBean.getErrorCode()); + assertEquals(bean.getErrorMessage(), retBean.getErrorMessage()); + assertEquals(bean.getCred(), retBean.getCred()); + assertEquals(bean.getConf(), retBean.getConf()); + assertEquals(bean.getSlaXml(), retBean.getSlaXml()); + assertNull(retBean.getData()); + assertNull(retBean.getStats()); + assertNull(retBean.getExternalChildIDs()); + + // GET_WORKFLOW_CHECK + retBean = WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_CHECK, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getJobId(), retBean.getJobId()); + assertEquals(bean.getName(), retBean.getName()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getPending(), retBean.getPending()); + assertEquals(bean.getType(), retBean.getType()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(bean.getTransition(), retBean.getTransition()); + assertEquals(bean.getRetries(), retBean.getRetries()); + assertEquals(bean.getTrackerUri(), retBean.getTrackerUri()); + assertEquals(bean.getStartTime().getTime(), retBean.getStartTime().getTime()); + assertEquals(bean.getEndTime().getTime(), retBean.getEndTime().getTime()); + assertEquals(bean.getLastCheckTime().getTime(), retBean.getLastCheckTime().getTime()); + assertEquals(bean.getErrorCode(), retBean.getErrorCode()); + assertEquals(bean.getErrorMessage(), retBean.getErrorMessage()); + assertEquals(bean.getExternalId(), retBean.getExternalId()); + assertEquals(bean.getExternalStatus(), retBean.getExternalStatus()); + assertEquals(bean.getExternalChildIDs(), retBean.getExternalChildIDs()); + assertEquals(bean.getConf(), retBean.getConf()); + assertNull(retBean.getData()); + assertNull(retBean.getStats()); + assertNull(retBean.getSlaXml()); + + // GET_WORKFLOW_END + retBean = WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_END, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getJobId(), retBean.getJobId()); + assertEquals(bean.getName(), retBean.getName()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getPending(), retBean.getPending()); + assertEquals(bean.getType(), retBean.getType()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(bean.getTransition(), retBean.getTransition()); + assertEquals(bean.getRetries(), retBean.getRetries()); + assertEquals(bean.getTrackerUri(), retBean.getTrackerUri()); + assertEquals(bean.getUserRetryCount(), retBean.getUserRetryCount()); + assertEquals(bean.getUserRetryMax(), retBean.getUserRetryMax()); + assertEquals(bean.getUserRetryInterval(), retBean.getUserRetryInterval()); + assertEquals(bean.getExternalId(), retBean.getExternalId()); + assertEquals(bean.getExternalStatus(), retBean.getExternalStatus()); + assertEquals(bean.getExternalChildIDs(), retBean.getExternalChildIDs()); + assertEquals(bean.getStartTime().getTime(), retBean.getStartTime().getTime()); + assertEquals(bean.getEndTime().getTime(), retBean.getEndTime().getTime()); + assertEquals(bean.getErrorCode(), retBean.getErrorCode()); + assertEquals(bean.getErrorMessage(), retBean.getErrorMessage()); + assertEquals(bean.getConf(), retBean.getConf()); + assertEquals(bean.getData(), retBean.getData()); + assertEquals(bean.getStats(), retBean.getStats()); + assertNull(retBean.getSlaXml()); + + // GET_WORKFLOW_KILL + retBean = WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_KILL, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getJobId(), retBean.getJobId()); + assertEquals(bean.getName(), retBean.getName()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getPending(), retBean.getPending()); + assertEquals(bean.getType(), retBean.getType()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(bean.getTransition(), retBean.getTransition()); + assertEquals(bean.getRetries(), retBean.getRetries()); + assertEquals(bean.getTrackerUri(), retBean.getTrackerUri()); + assertEquals(bean.getErrorCode(), retBean.getErrorCode()); + assertEquals(bean.getStartTime().getTime(), retBean.getStartTime().getTime()); + assertEquals(bean.getEndTime().getTime(), retBean.getEndTime().getTime()); + assertEquals(bean.getErrorMessage(), retBean.getErrorMessage()); + assertEquals(bean.getExternalId(), retBean.getExternalId()); + assertEquals(bean.getConf(), retBean.getConf()); + assertEquals(bean.getData(), retBean.getData()); + assertNull(retBean.getExternalChildIDs()); + assertNull(retBean.getStats()); + assertNull(retBean.getSlaXml()); + + //GET_WORKFLOW_COMPLETED + retBean = WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_COMPLETED, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getJobId(), retBean.getJobId()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getType(), retBean.getType()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertNull(retBean.getSlaXml()); + assertNull(retBean.getConf()); + assertNull(retBean.getData()); + assertNull(retBean.getStats()); + assertNull(retBean.getExternalChildIDs()); } public void testGetList() throws Exception { - // TODO + //GET_RUNNING_ACTIONS + addRecordToWfActionTable("wrkflow","1", WorkflowAction.Status.RUNNING, true); + addRecordToWfActionTable("wrkflow","2", WorkflowAction.Status.RUNNING, true); + addRecordToWfActionTable("wrkflow","3", WorkflowAction.Status.RUNNING, true); + List<WorkflowActionBean> retList = WorkflowActionQueryExecutor.getInstance().getList( + WorkflowActionQuery.GET_RUNNING_ACTIONS, 0); + assertEquals(3, retList.size()); + for(WorkflowActionBean bean : retList){ + assertTrue(bean.getId().equals("wrkflow@1") || bean.getId().equals("wrkflow@2") || bean.getId().equals("wrkflow@3")); + } + } public void testInsert() throws Exception {
Modified: oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionsRunningGetJPAExecutor.java URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionsRunningGetJPAExecutor.java?rev=1524923&r1=1524922&r2=1524923&view=diff ============================================================================== --- oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionsRunningGetJPAExecutor.java (original) +++ oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionsRunningGetJPAExecutor.java Fri Sep 20 07:39:43 2013 @@ -1,83 +0,0 @@ -/** - * 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.oozie.executor.jpa; - -import java.util.List; - -import org.apache.oozie.WorkflowActionBean; -import org.apache.oozie.WorkflowJobBean; -import org.apache.oozie.client.WorkflowAction; -import org.apache.oozie.client.WorkflowJob; -import org.apache.oozie.service.JPAService; -import org.apache.oozie.service.Services; -import org.apache.oozie.test.XDataTestCase; -import org.apache.oozie.workflow.WorkflowInstance; - -public class TestWorkflowActionsRunningGetJPAExecutor extends XDataTestCase { - Services services; - - @Override - protected void setUp() throws Exception { - super.setUp(); - services = new Services(); - services.init(); - cleanUpDBTables(); - } - - @Override - protected void tearDown() throws Exception { - services.destroy(); - super.tearDown(); - } - - public void testWfActionsRunningGet() throws Exception { - WorkflowJobBean job = addRecordToWfJobTable(WorkflowJob.Status.RUNNING, WorkflowInstance.Status.RUNNING); - addRecordToWfActionTable(job.getId(), "1", WorkflowAction.Status.OK); - addRecordToWfActionTableWithRunningStatus(job.getId(), "2", WorkflowAction.Status.RUNNING); - sleep(2000); - _testGetRunningActions(1); - } - - private void _testGetRunningActions(long checkAgeSecs) throws Exception { - JPAService jpaService = Services.get().get(JPAService.class); - assertNotNull(jpaService); - WorkflowActionsRunningGetJPAExecutor runningActionsGetExe = new WorkflowActionsRunningGetJPAExecutor(checkAgeSecs); - List<WorkflowActionBean> list = jpaService.execute(runningActionsGetExe); - assertNotNull(list); - assertEquals(1, list.size()); - } - - protected WorkflowActionBean addRecordToWfActionTableWithRunningStatus(String wfId, String actionName, WorkflowAction.Status status) throws Exception { - WorkflowActionBean action = createWorkflowAction(wfId, actionName, status); - action.setPending(); - try { - JPAService jpaService = Services.get().get(JPAService.class); - assertNotNull(jpaService); - WorkflowActionInsertJPAExecutor actionInsertCmd = new WorkflowActionInsertJPAExecutor(action); - jpaService.execute(actionInsertCmd); - } - catch (JPAExecutorException je) { - je.printStackTrace(); - fail("Unable to insert the test wf action record to table"); - throw je; - } - return action; - } - - -} Modified: oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowJobQueryExecutor.java URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowJobQueryExecutor.java?rev=1524923&r1=1524922&r2=1524923&view=diff ============================================================================== --- oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowJobQueryExecutor.java (original) +++ oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowJobQueryExecutor.java Fri Sep 20 07:39:43 2013 @@ -17,6 +17,9 @@ */ package org.apache.oozie.executor.jpa; +import java.nio.ByteBuffer; +import java.util.Date; + import javax.persistence.EntityManager; import javax.persistence.Query; @@ -47,7 +50,7 @@ public class TestWorkflowJobQueryExecuto super.tearDown(); } - public void testGetQuery() throws Exception { + public void testGetUpdateQuery() throws Exception { EntityManager em = jpaService.getEntityManager(); WorkflowJobBean bean = addRecordToWfJobTable(WorkflowJob.Status.PREP, WorkflowInstance.Status.PREP); @@ -143,53 +146,162 @@ public class TestWorkflowJobQueryExecuto assertEquals(query.getParameterValue("wfInstance"), bean.getWfInstanceBlob()); assertEquals(query.getParameterValue("lastModTime"), bean.getLastModifiedTimestamp()); assertEquals(query.getParameterValue("id"), bean.getId()); + } + + public void testExecuteUpdate() throws Exception { + + WorkflowJobBean bean = addRecordToWfJobTable(WorkflowJob.Status.PREP, WorkflowInstance.Status.PREP); + bean.setStatus(WorkflowJob.Status.RUNNING); + WorkflowJobQueryExecutor.getInstance().executeUpdate(WorkflowJobQuery.UPDATE_WORKFLOW, bean); + WorkflowJobBean bean2 = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW, bean.getId()); + assertEquals(bean2.getStatus(), WorkflowJob.Status.RUNNING); + } + + public void testGetSelectQuery() throws Exception { + EntityManager em = jpaService.getEntityManager(); + WorkflowJobBean bean = addRecordToWfJobTable(WorkflowJob.Status.PREP, WorkflowInstance.Status.PREP); // GET_WORKFLOW - query = WorkflowJobQueryExecutor.getInstance().getSelectQuery(WorkflowJobQuery.GET_WORKFLOW, em, bean.getId()); + Query query = WorkflowJobQueryExecutor.getInstance().getSelectQuery(WorkflowJobQuery.GET_WORKFLOW, em, bean.getId()); assertEquals(query.getParameterValue("id"), bean.getId()); - } - public void testExecuteUpdate() throws Throwable { + // GET_WORKFLOW_SUSPEND + query = WorkflowJobQueryExecutor.getInstance().getSelectQuery(WorkflowJobQuery.GET_WORKFLOW_SUSPEND, em, bean.getId()); + assertEquals(query.getParameterValue("id"), bean.getId()); + } - try { - WorkflowJobBean bean = addRecordToWfJobTable(WorkflowJob.Status.PREP, WorkflowInstance.Status.PREP); - bean.setStatus(WorkflowJob.Status.RUNNING); - WorkflowJobQueryExecutor.getInstance().executeUpdate(WorkflowJobQuery.UPDATE_WORKFLOW, bean); - WorkflowJobBean bean2 = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW, - bean.getId()); - assertEquals(bean2.getStatus(), WorkflowJob.Status.RUNNING); - } - catch (Throwable e) { - // TODO Auto-generated catch block - System.out.println("Debug: encountered exception"); - e.printStackTrace(); - throw e; - } - } - - public void testInsert() throws Throwable { - try { - WorkflowJobBean bean = new WorkflowJobBean(); - bean.setId("test-oozie-wrk"); - bean.setAppName("test"); - bean.setUser("oozie"); - WorkflowJobQueryExecutor.getInstance().insert(bean); - WorkflowJobBean retBean = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW, - "test-oozie-wrk"); - assertNotNull(retBean); - assertEquals(retBean.getAppName(), "test"); - assertEquals(retBean.getUser(), "oozie"); - } - catch (Throwable e) { - System.out.println("Debug: encountered exception testinsert"); - // TODO Auto-generated catch block - e.printStackTrace(); - throw e; - } + public void testInsert() throws Exception { + WorkflowJobBean bean = new WorkflowJobBean(); + bean.setId("test-oozie-wrk"); + bean.setAppName("test"); + bean.setUser("oozie"); + WorkflowJobQueryExecutor.getInstance().insert(bean); + WorkflowJobBean retBean = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW, + "test-oozie-wrk"); + assertNotNull(retBean); + assertEquals(retBean.getAppName(), "test"); + assertEquals(retBean.getUser(), "oozie"); } public void testGet() throws Exception { - // TODO + WorkflowJobBean bean = addRecordToWfJobTable(WorkflowJob.Status.RUNNING, WorkflowInstance.Status.RUNNING); + bean.setStartTime(new Date(System.currentTimeMillis() - 10)); + bean.setEndTime(new Date()); + WorkflowJobQueryExecutor.getInstance().executeUpdate(WorkflowJobQuery.UPDATE_WORKFLOW, bean); + WorkflowJobBean retBean; + // GET_WORKFLOW_STARTTIME + retBean = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW_STARTTIME, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getStartTime().getTime(), retBean.getStartTime().getTime()); + assertNull(retBean.getWorkflowInstance()); + assertNull(retBean.getProtoActionConf()); + assertNull(retBean.getSlaXml()); + assertNull(retBean.getConf()); + // GET_WORKFLOW_USER_GROUP + retBean = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW_USER_GROUP, bean.getId()); + assertEquals(bean.getUser(), retBean.getUser()); + assertEquals(bean.getGroup(), retBean.getGroup()); + assertNull(retBean.getWorkflowInstance()); + assertNull(retBean.getProtoActionConf()); + assertNull(retBean.getSlaXml()); + assertNull(retBean.getConf()); + + // GET_WORKFLOW_SUSPEND + retBean = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW_SUSPEND, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getUser(), retBean.getUser()); + assertEquals(bean.getGroup(), retBean.getGroup()); + assertEquals(bean.getAppName(), retBean.getAppName()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getParentId(), retBean.getParentId()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(ByteBuffer.wrap(bean.getWfInstanceBlob().getBytes()).getInt(), + ByteBuffer.wrap(retBean.getWfInstanceBlob().getBytes()).getInt()); + assertEquals(bean.getStartTime().getTime(), retBean.getStartTime().getTime()); + assertEquals(bean.getEndTime().getTime(), retBean.getEndTime().getTime()); + assertNull(retBean.getProtoActionConf()); + assertNull(retBean.getSlaXml()); + assertNull(retBean.getConf()); + + // GET_WORKFLOW_ACTION_OP + retBean = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW_ACTION_OP, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getUser(), retBean.getUser()); + assertEquals(bean.getGroup(), retBean.getGroup()); + assertEquals(bean.getAppName(), retBean.getAppName()); + assertEquals(bean.getAppPath(), retBean.getAppPath()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getParentId(), retBean.getParentId()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(ByteBuffer.wrap(bean.getWfInstanceBlob().getBytes()).getInt(), + ByteBuffer.wrap(retBean.getWfInstanceBlob().getBytes()).getInt()); + assertEquals(bean.getProtoActionConf(), retBean.getProtoActionConf()); + assertNull(retBean.getSlaXml()); + assertNull(retBean.getConf()); + + //GET_WORKFLOW_RERUN + retBean = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW_RERUN, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getUser(), retBean.getUser()); + assertEquals(bean.getGroup(), retBean.getGroup()); + assertEquals(bean.getAppName(), retBean.getAppName()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getRun(), retBean.getRun()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(ByteBuffer.wrap(bean.getWfInstanceBlob().getBytes()).getInt(), + ByteBuffer.wrap(retBean.getWfInstanceBlob().getBytes()).getInt()); + assertNull(retBean.getProtoActionConf()); + assertNull(retBean.getSlaXml()); + assertNull(retBean.getConf()); + + //GET_WORKFLOW_DEFINITION + retBean = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW_DEFINITION, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getUser(), retBean.getUser()); + assertEquals(bean.getGroup(), retBean.getGroup()); + assertEquals(bean.getAppName(), retBean.getAppName()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(ByteBuffer.wrap(bean.getWfInstanceBlob().getBytes()).getInt(), + ByteBuffer.wrap(retBean.getWfInstanceBlob().getBytes()).getInt()); + assertNull(retBean.getProtoActionConf()); + assertNull(retBean.getSlaXml()); + assertNull(retBean.getConf()); + + // GET_WORKFLOW_KILL + retBean = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW_KILL, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getUser(), retBean.getUser()); + assertEquals(bean.getGroup(), retBean.getGroup()); + assertEquals(bean.getAppName(), retBean.getAppName()); + assertEquals(bean.getAppPath(), retBean.getAppPath()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getParentId(), retBean.getParentId()); + assertEquals(bean.getStartTime().getTime(), retBean.getStartTime().getTime()); + assertEquals(bean.getEndTime().getTime(), retBean.getEndTime().getTime()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(ByteBuffer.wrap(bean.getWfInstanceBlob().getBytes()).getInt(), + ByteBuffer.wrap(retBean.getWfInstanceBlob().getBytes()).getInt()); + assertEquals(bean.getSlaXml(), retBean.getSlaXml()); + assertNull(retBean.getProtoActionConf()); + assertNull(retBean.getConf()); + + // GET_WORKFLOW_RESUME + retBean = WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW_RESUME, bean.getId()); + assertEquals(bean.getId(), retBean.getId()); + assertEquals(bean.getUser(), retBean.getUser()); + assertEquals(bean.getGroup(), retBean.getGroup()); + assertEquals(bean.getAppName(), retBean.getAppName()); + assertEquals(bean.getAppPath(), retBean.getAppPath()); + assertEquals(bean.getStatusStr(), retBean.getStatusStr()); + assertEquals(bean.getParentId(), retBean.getParentId()); + assertEquals(bean.getStartTime().getTime(), retBean.getStartTime().getTime()); + assertEquals(bean.getEndTime().getTime(), retBean.getEndTime().getTime()); + assertEquals(bean.getLogToken(), retBean.getLogToken()); + assertEquals(ByteBuffer.wrap(bean.getWfInstanceBlob().getBytes()).getInt(), + ByteBuffer.wrap(retBean.getWfInstanceBlob().getBytes()).getInt()); + assertEquals(bean.getProtoActionConf(), retBean.getProtoActionConf()); + assertNull(retBean.getConf()); + assertNull(retBean.getSlaXml()); } public void testGetList() throws Exception { Modified: oozie/trunk/core/src/test/java/org/apache/oozie/sla/TestSLAEventGeneration.java URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/sla/TestSLAEventGeneration.java?rev=1524923&r1=1524922&r2=1524923&view=diff ============================================================================== --- oozie/trunk/core/src/test/java/org/apache/oozie/sla/TestSLAEventGeneration.java (original) +++ oozie/trunk/core/src/test/java/org/apache/oozie/sla/TestSLAEventGeneration.java Fri Sep 20 07:39:43 2013 @@ -17,12 +17,10 @@ */ package org.apache.oozie.sla; -import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.HashSet; -import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; @@ -30,16 +28,13 @@ import org.apache.oozie.AppType; import org.apache.oozie.CoordinatorActionBean; import org.apache.oozie.CoordinatorJobBean; import org.apache.oozie.ErrorCode; -import org.apache.oozie.WorkflowActionBean; import org.apache.oozie.WorkflowJobBean; import org.apache.oozie.client.CoordinatorAction; import org.apache.oozie.client.CoordinatorJob; import org.apache.oozie.client.OozieClient; -import org.apache.oozie.client.WorkflowAction; import org.apache.oozie.client.WorkflowJob; import org.apache.oozie.client.event.Event; import org.apache.oozie.client.event.JobEvent; -import org.apache.oozie.client.event.SLAEvent; import org.apache.oozie.client.event.SLAEvent.SLAStatus; import org.apache.oozie.client.event.SLAEvent.EventStatus; import org.apache.oozie.client.rest.RestConstants; @@ -55,13 +50,9 @@ import org.apache.oozie.command.wf.Start import org.apache.oozie.command.wf.SubmitXCommand; import org.apache.oozie.event.CoordinatorActionEvent; import org.apache.oozie.event.listener.JobEventListener; -import org.apache.oozie.executor.jpa.BatchQueryExecutor.UpdateEntry; import org.apache.oozie.executor.jpa.CoordActionGetJPAExecutor; import org.apache.oozie.executor.jpa.CoordActionQueryExecutor; import org.apache.oozie.executor.jpa.CoordActionQueryExecutor.CoordActionQuery; -import org.apache.oozie.executor.jpa.BatchQueryExecutor; -import org.apache.oozie.executor.jpa.WorkflowActionQueryExecutor.WorkflowActionQuery; -import org.apache.oozie.executor.jpa.WorkflowActionsGetForJobJPAExecutor; import org.apache.oozie.executor.jpa.WorkflowJobGetJPAExecutor; import org.apache.oozie.executor.jpa.WorkflowJobInsertJPAExecutor; import org.apache.oozie.executor.jpa.WorkflowJobQueryExecutor; @@ -70,7 +61,6 @@ import org.apache.oozie.executor.jpa.sla import org.apache.oozie.service.EventHandlerService; import org.apache.oozie.service.JPAService; import org.apache.oozie.service.Services; -import org.apache.oozie.service.EventHandlerService.EventWorker; import org.apache.oozie.sla.listener.SLAJobEventListener; import org.apache.oozie.sla.service.SLAService; import org.apache.oozie.test.XDataTestCase; Modified: oozie/trunk/core/src/test/java/org/apache/oozie/test/XDataTestCase.java URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/test/XDataTestCase.java?rev=1524923&r1=1524922&r2=1524923&view=diff ============================================================================== --- oozie/trunk/core/src/test/java/org/apache/oozie/test/XDataTestCase.java (original) +++ oozie/trunk/core/src/test/java/org/apache/oozie/test/XDataTestCase.java Fri Sep 20 07:39:43 2013 @@ -25,6 +25,7 @@ import java.io.OutputStreamWriter; import java.io.Reader; import java.io.UnsupportedEncodingException; import java.io.Writer; +import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.regex.Matcher; @@ -1170,6 +1171,7 @@ public abstract class XDataTestCase exte workflow.setUser(conf.get(OozieClient.USER_NAME)); workflow.setGroup(conf.get(OozieClient.GROUP_NAME)); workflow.setWorkflowInstance(wfInstance); + workflow.setSlaXml("<sla></sla>"); return workflow; } @@ -1221,6 +1223,17 @@ public abstract class XDataTestCase exte + "<property><name>mapred.output.dir</name><value>" + outputDir.toString() + "</value></property>" + "</configuration>" + "</map-reduce>"; action.setConf(actionXml); + action.setSlaXml("<sla></sla>"); + action.setData("dummy data"); + action.setStats("dummy stats"); + action.setExternalChildIDs("00000001-dummy-oozie-wrkf-W"); + action.setRetries(2); + action.setUserRetryCount(1); + action.setUserRetryMax(2); + action.setUserRetryInterval(1); + action.setErrorInfo("dummyErrorCode", "dummyErrorMessage"); + action.setExternalId("dummy external id"); + action.setExternalStatus("RUNNING"); return action; } Modified: oozie/trunk/release-log.txt URL: http://svn.apache.org/viewvc/oozie/trunk/release-log.txt?rev=1524923&r1=1524922&r2=1524923&view=diff ============================================================================== --- oozie/trunk/release-log.txt (original) +++ oozie/trunk/release-log.txt Fri Sep 20 07:39:43 2013 @@ -1,5 +1,6 @@ -- Oozie 4.1.0 release (trunk - unreleased) +OOZIE-1524 Change Workflow SELECT query to fetch only necessary columns and consolidate JPA Executors (ryota) OOZIE-1515 Passing superset of action id range should be allowed (mona) OOZIE-1530 Fork-join mismatch makes workflow Failed but some actions stay Running (mona) OOZIE-1539 Load more coordinator jobs eligible to be materialized in MaterializeTriggerService (mona)
