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
019 package org.apache.oozie.sla;
020
021 import java.util.Date;
022 import org.apache.oozie.AppType;
023 import org.apache.oozie.client.event.SLAEvent;
024
025 /**
026 * Class used by SLAService to store SLA objects and perform calculations and
027 * sla decisions
028 */
029 public class SLACalcStatus extends SLAEvent {
030
031 private SLARegistrationBean regBean;
032 private String jobStatus;
033 private SLAStatus slaStatus;
034 private EventStatus eventStatus;
035 private Date actualStart;
036 private Date actualEnd;
037 private long actualDuration = -1;
038 private Date lastModifiedTime;
039 private byte eventProcessed;
040
041 public SLACalcStatus(SLARegistrationBean reg) {
042 this();
043 setSLARegistrationBean(reg);
044 }
045
046 public SLACalcStatus(SLASummaryBean summary, SLARegistrationBean regBean) {
047 this();
048 SLARegistrationBean reg = new SLARegistrationBean();
049 reg.setNotificationMsg(regBean.getNotificationMsg());
050 reg.setUpstreamApps(regBean.getUpstreamApps());
051 reg.setAlertContact(regBean.getAlertContact());
052 reg.setAlertEvents(regBean.getAlertEvents());
053 reg.setJobData(regBean.getJobData());
054 reg.setId(summary.getId());
055 reg.setAppType(summary.getAppType());
056 reg.setUser(summary.getUser());
057 reg.setAppName(summary.getAppName());
058 reg.setParentId(summary.getParentId());
059 reg.setNominalTime(summary.getNominalTime());
060 reg.setExpectedStart(summary.getExpectedStart());
061 reg.setExpectedEnd(summary.getExpectedEnd());
062 reg.setExpectedDuration(summary.getExpectedDuration());
063 setSLARegistrationBean(reg);
064 setActualStart(summary.getActualStart());
065 setActualEnd(summary.getActualEnd());
066 setActualDuration(summary.getActualDuration());
067 setSLAStatus(summary.getSLAStatus());
068 setJobStatus(summary.getJobStatus());
069 setEventStatus(summary.getEventStatus());
070 setLastModifiedTime(summary.getLastModifiedTime());
071 setEventProcessed(summary.getEventProcessed());
072 }
073
074 /**
075 * copy constructor
076 * @return SLACalcStatus
077 */
078 public SLACalcStatus(SLACalcStatus a) {
079 this();
080 setSLARegistrationBean(a.getSLARegistrationBean());
081 setJobStatus(a.getJobStatus());
082 setSLAStatus(a.getSLAStatus());
083 setEventStatus(a.getEventStatus());
084 setActualStart(a.getActualStart());
085 setActualEnd(a.getActualEnd());
086 setActualDuration(a.getActualDuration());
087 setEventProcessed(a.getEventProcessed());
088 }
089
090 public SLACalcStatus() {
091 setMsgType(MessageType.SLA);
092 setLastModifiedTime(new Date());
093 }
094
095 public SLARegistrationBean getSLARegistrationBean() {
096 return regBean;
097 }
098
099 public void setSLARegistrationBean(SLARegistrationBean slaBean) {
100 this.regBean = slaBean;
101 }
102
103 @Override
104 public String getId() {
105 return regBean.getId();
106 }
107
108 public void setId(String id) {
109 regBean.setId(id);
110 }
111
112 @Override
113 public Date getActualStart() {
114 return actualStart;
115 }
116
117 public void setActualStart(Date actualStart) {
118 this.actualStart = actualStart;
119 }
120
121 @Override
122 public Date getActualEnd() {
123 return actualEnd;
124 }
125
126 public void setActualEnd(Date actualEnd) {
127 this.actualEnd = actualEnd;
128 }
129
130 @Override
131 public long getActualDuration() {
132 return actualDuration;
133 }
134
135 public void setActualDuration(long actualDuration) {
136 this.actualDuration = actualDuration;
137 }
138
139 @Override
140 public String getJobStatus() {
141 return jobStatus;
142 }
143
144 public void setJobStatus(String status) {
145 this.jobStatus = status;
146 }
147
148 @Override
149 public SLAStatus getSLAStatus() {
150 return slaStatus;
151 }
152
153 public void setSLAStatus(SLAStatus slaStatus) {
154 this.slaStatus = slaStatus;
155 }
156
157 @Override
158 public EventStatus getEventStatus() {
159 return eventStatus;
160 }
161
162 public void setEventStatus(EventStatus es) {
163 this.eventStatus = es;
164 }
165
166 public void setLastModifiedTime(Date lastModifiedTime) {
167 this.lastModifiedTime = lastModifiedTime;
168 }
169
170 /**
171 * Get which type of sla event has been processed needed when calculator
172 * periodically loops to update all jobs' sla
173 *
174 * @return byte 1st bit set (from LSB) = start processed
175 * 2nd bit set = duration processed
176 * 3rd bit set = end processed
177 * only 4th bit set = everything processed
178 */
179 public byte getEventProcessed() {
180 return eventProcessed;
181 }
182
183 public void setEventProcessed(int eventProcessed) {
184 this.eventProcessed = (byte) eventProcessed;
185 }
186
187 @Override
188 public String getParentId() {
189 return regBean.getParentId();
190 }
191
192 @Override
193 public AppType getAppType() {
194 return regBean.getAppType();
195 }
196
197 @Override
198 public String getAppName() {
199 return regBean.getAppName();
200 }
201
202 @Override
203 public Date getNominalTime() {
204 return regBean.getNominalTime();
205 }
206
207 @Override
208 public Date getExpectedStart() {
209 return regBean.getExpectedStart();
210 }
211
212 @Override
213 public Date getExpectedEnd() {
214 return regBean.getExpectedEnd();
215 }
216
217 @Override
218 public long getExpectedDuration() {
219 return regBean.getExpectedDuration();
220 }
221
222 @Override
223 public String getNotificationMsg() {
224 return regBean.getNotificationMsg();
225 }
226
227 @Override
228 public String getAlertEvents() {
229 return regBean.getAlertEvents();
230 }
231
232 @Override
233 public String getAlertContact() {
234 return regBean.getAlertContact();
235 }
236
237 @Override
238 public String getUpstreamApps() {
239 return regBean.getUpstreamApps();
240 }
241
242 @Override
243 public String getJobData() {
244 return regBean.getJobData();
245 }
246
247 @Override
248 public String getUser() {
249 return regBean.getUser();
250 }
251
252 @Override
253 public String getSlaConfig() {
254 return regBean.getSlaConfig();
255 }
256
257 @Override
258 public MessageType getMsgType() {
259 return regBean.getMsgType();
260 }
261
262 @Override
263 public Date getLastModifiedTime() {
264 return lastModifiedTime;
265 }
266
267 }