This project has retired. For details please refer to its
Attic page.
001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018 package org.apache.oozie.command.coord;
019
020 import org.apache.oozie.CoordinatorJobBean;
021 import org.apache.oozie.client.CoordinatorJob;
022 import org.apache.oozie.client.Job;
023 import org.apache.oozie.command.CommandException;
024 import org.apache.oozie.command.PreconditionException;
025 import org.apache.oozie.command.UnpauseTransitionXCommand;
026 import org.apache.oozie.command.bundle.BundleStatusUpdateXCommand;
027
028 import org.apache.oozie.executor.jpa.CoordJobUpdateJPAExecutor;
029 import org.apache.oozie.executor.jpa.JPAExecutorException;
030 import org.apache.oozie.service.JPAService;
031 import org.apache.oozie.service.Services;
032 import org.apache.oozie.util.LogUtils;
033
034 public class CoordUnpauseXCommand extends UnpauseTransitionXCommand {
035 private final JPAService jpaService = Services.get().get(JPAService.class);
036 private final CoordinatorJobBean coordJob;
037 private CoordinatorJob.Status prevStatus = null;
038
039 public CoordUnpauseXCommand(CoordinatorJobBean coordJob) {
040 super("coord_unpause", "coord_unpause", 1);
041 this.coordJob = coordJob;
042 }
043
044 /*
045 * (non-Javadoc)
046 *
047 * @see org.apache.oozie.command.XCommand#getEntityKey()
048 */
049 @Override
050 protected String getEntityKey() {
051 return coordJob.getId();
052 }
053
054 /*
055 * (non-Javadoc)
056 *
057 * @see org.apache.oozie.command.XCommand#isLockRequired()
058 */
059 @Override
060 protected boolean isLockRequired() {
061 return true;
062 }
063
064 /*
065 * (non-Javadoc)
066 *
067 * @see org.apache.oozie.command.XCommand#loadState()
068 */
069 @Override
070 public void loadState() throws CommandException {
071 prevStatus = coordJob.getStatus();
072 LogUtils.setLogInfo(coordJob, logInfo);
073 }
074
075 /*
076 * (non-Javadoc)
077 *
078 * @see org.apache.oozie.command.XCommand#verifyPrecondition()
079 */
080 @Override
081 protected void verifyPrecondition() throws CommandException, PreconditionException {
082 }
083
084 /*
085 * (non-Javadoc)
086 *
087 * @see org.apache.oozie.command.TransitionXCommand#notifyParent()
088 */
089 @Override
090 public void notifyParent() throws CommandException {
091 // update bundle action
092 if (coordJob.getBundleId() != null) {
093 BundleStatusUpdateXCommand bundleStatusUpdate = new BundleStatusUpdateXCommand(coordJob, prevStatus);
094 bundleStatusUpdate.call();
095 }
096 }
097
098 /*
099 * (non-Javadoc)
100 *
101 * @see org.apache.oozie.command.TransitionXCommand#getJob()
102 */
103 @Override
104 public Job getJob() {
105 return coordJob;
106 }
107
108 /*
109 * (non-Javadoc)
110 *
111 * @see org.apache.oozie.command.TransitionXCommand#updateJob()
112 */
113 @Override
114 public void updateJob() throws CommandException {
115 try {
116 jpaService.execute(new CoordJobUpdateJPAExecutor(coordJob));
117 }
118 catch (JPAExecutorException e) {
119 throw new CommandException(e);
120 }
121 }
122
123 @Override
124 public void unpauseChildren() throws CommandException {
125 // TODO - need revisit when revisiting coord job status redesign;
126
127 }
128
129 }