diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java index 9becd3f6d6e..33ad918caf3 100755 --- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -3914,7 +3914,6 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa return true; } - @Override public synchronized CreateAnswer execute(CreateCommand cmd) { if (s_logger.isInfoEnabled()) { diff --git a/server/src/com/cloud/api/ApiAsyncJobDispatcher.java b/server/src/com/cloud/api/ApiAsyncJobDispatcher.java index ae7e0cff089..c96457f3952 100644 --- a/server/src/com/cloud/api/ApiAsyncJobDispatcher.java +++ b/server/src/com/cloud/api/ApiAsyncJobDispatcher.java @@ -28,9 +28,9 @@ import org.apache.cloudstack.api.response.ExceptionResponse; import org.apache.log4j.Logger; import com.cloud.async.AsyncJob; +import com.cloud.async.AsyncJobConstants; import com.cloud.async.AsyncJobDispatcher; import com.cloud.async.AsyncJobManager; -import com.cloud.async.AsyncJobResult; import com.cloud.user.Account; import com.cloud.user.UserContext; import com.cloud.user.dao.AccountDao; @@ -84,7 +84,7 @@ public class ApiAsyncJobDispatcher extends AdapterBase implements AsyncJobDispat _dispatcher.dispatch(cmdObj, params); // serialize this to the async job table - _asyncJobMgr.completeAsyncJob(job.getId(), AsyncJobResult.STATUS_SUCCEEDED, 0, cmdObj.getResponseObject()); + _asyncJobMgr.completeAsyncJob(job.getId(), AsyncJobConstants.STATUS_SUCCEEDED, 0, cmdObj.getResponseObject()); } finally { UserContext.unregisterContext(); } @@ -107,7 +107,7 @@ public class ApiAsyncJobDispatcher extends AdapterBase implements AsyncJobDispat // FIXME: setting resultCode to ApiErrorCode.INTERNAL_ERROR is not right, usually executors have their exception handling // and we need to preserve that as much as possible here - _asyncJobMgr.completeAsyncJob(job.getId(), AsyncJobResult.STATUS_FAILED, ApiErrorCode.INTERNAL_ERROR.getHttpCode(), response); + _asyncJobMgr.completeAsyncJob(job.getId(), AsyncJobConstants.STATUS_FAILED, ApiErrorCode.INTERNAL_ERROR.getHttpCode(), response); } } } diff --git a/server/src/com/cloud/async/AsyncJobConstants.java b/server/src/com/cloud/async/AsyncJobConstants.java new file mode 100644 index 00000000000..17c37ed9209 --- /dev/null +++ b/server/src/com/cloud/async/AsyncJobConstants.java @@ -0,0 +1,24 @@ +// 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 com.cloud.async; + +public interface AsyncJobConstants { + public static final int STATUS_IN_PROGRESS = 0; + public static final int STATUS_SUCCEEDED = 1; + public static final int STATUS_FAILED = 2; + +} diff --git a/server/src/com/cloud/async/AsyncJobExecutionContext.java b/server/src/com/cloud/async/AsyncJobExecutionContext.java index 9697bed1232..f8f08dd8827 100644 --- a/server/src/com/cloud/async/AsyncJobExecutionContext.java +++ b/server/src/com/cloud/async/AsyncJobExecutionContext.java @@ -86,7 +86,7 @@ public class AsyncJobExecutionContext { assert(_job != null); AsyncJobJoinMapVO record = _joinMapDao.getJoinRecord(_job.getId(), joinedJobId); - if(record.getJoinStatus() == AsyncJobResult.STATUS_FAILED && record.getJoinResult() != null) { + if(record.getJoinStatus() == AsyncJobConstants.STATUS_FAILED && record.getJoinResult() != null) { Object exception = SerializerHelper.fromObjectSerializedString(record.getJoinResult()); if(exception != null && exception instanceof Exception) { if(exception instanceof InsufficientCapacityException) diff --git a/server/src/com/cloud/async/AsyncJobMBeanImpl.java b/server/src/com/cloud/async/AsyncJobMBeanImpl.java index fa579f37650..79407518f55 100644 --- a/server/src/com/cloud/async/AsyncJobMBeanImpl.java +++ b/server/src/com/cloud/async/AsyncJobMBeanImpl.java @@ -51,13 +51,13 @@ public class AsyncJobMBeanImpl extends StandardMBean implements AsyncJobMBean { public String getStatus() { int jobStatus = _job.getStatus(); switch(jobStatus) { - case AsyncJobResult.STATUS_SUCCEEDED : + case AsyncJobConstants.STATUS_SUCCEEDED : return "Completed"; - case AsyncJobResult.STATUS_IN_PROGRESS: + case AsyncJobConstants.STATUS_IN_PROGRESS: return "In preogress"; - case AsyncJobResult.STATUS_FAILED: + case AsyncJobConstants.STATUS_FAILED: return "failed"; } diff --git a/server/src/com/cloud/async/AsyncJobManagerImpl.java b/server/src/com/cloud/async/AsyncJobManagerImpl.java index 57cca06d0e4..576d9d39a96 100644 --- a/server/src/com/cloud/async/AsyncJobManagerImpl.java +++ b/server/src/com/cloud/async/AsyncJobManagerImpl.java @@ -197,7 +197,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, return; } - if(job.getStatus() != AsyncJobResult.STATUS_IN_PROGRESS) { + if(job.getStatus() != AsyncJobConstants.STATUS_IN_PROGRESS) { if(s_logger.isDebugEnabled()) { s_logger.debug("job-" + jobId + " is already completed."); } @@ -387,8 +387,8 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, jobResult.setResultCode(job.getResultCode()); jobResult.setUuid(job.getUuid()); - if(job.getStatus() == AsyncJobResult.STATUS_SUCCEEDED || - job.getStatus() == AsyncJobResult.STATUS_FAILED) { + if(job.getStatus() == AsyncJobConstants.STATUS_SUCCEEDED || + job.getStatus() == AsyncJobConstants.STATUS_FAILED) { if(s_logger.isDebugEnabled()) { s_logger.debug("Async job-" + jobId + " completed"); @@ -402,14 +402,14 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, s_logger.debug("Async job-" + jobId + " does not exist, invalid job id?"); } - jobResult.setJobStatus(AsyncJobResult.STATUS_FAILED); + jobResult.setJobStatus(AsyncJobConstants.STATUS_FAILED); jobResult.setResult("job-" + jobId + " does not exist"); } txt.commit(); } catch(Exception e) { s_logger.error("Unexpected exception while querying async job-" + jobId + " status: ", e); - jobResult.setJobStatus(AsyncJobResult.STATUS_FAILED); + jobResult.setJobStatus(AsyncJobConstants.STATUS_FAILED); jobResult.setResult("Exception: " + e.toString()); txt.rollback(); } @@ -480,7 +480,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, jobDispatcher.RunJob(job); } else { s_logger.error("Unable to find job dispatcher, job will be cancelled"); - completeAsyncJob(job.getId(), AsyncJobResult.STATUS_FAILED, ApiErrorCode.INTERNAL_ERROR.getHttpCode(), null); + completeAsyncJob(job.getId(), AsyncJobConstants.STATUS_FAILED, ApiErrorCode.INTERNAL_ERROR.getHttpCode(), null); } if (s_logger.isDebugEnabled()) { @@ -489,7 +489,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, } catch (Throwable e) { s_logger.error("Unexpected exception", e); - completeAsyncJob(job.getId(), AsyncJobResult.STATUS_FAILED, ApiErrorCode.INTERNAL_ERROR.getHttpCode(), null); + completeAsyncJob(job.getId(), AsyncJobConstants.STATUS_FAILED, ApiErrorCode.INTERNAL_ERROR.getHttpCode(), null); } finally { // guard final clause as well try { @@ -676,7 +676,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, if(blockItems != null && blockItems.size() > 0) { for(SyncQueueItemVO item : blockItems) { if(item.getContentType().equalsIgnoreCase(SyncQueueItem.AsyncJobContentType)) { - completeAsyncJob(item.getContentId(), AsyncJobResult.STATUS_FAILED, 0, + completeAsyncJob(item.getContentId(), AsyncJobConstants.STATUS_FAILED, 0, getResetResultResponse("Job is cancelled as it has been blocking others for too long")); } @@ -725,7 +725,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, Long jobId = item.getContentId(); if(jobId != null) { s_logger.warn("Mark job as failed as its correspoding queue-item has been discarded. job id: " + jobId); - completeAsyncJob(jobId, AsyncJobResult.STATUS_FAILED, 0, getResetResultResponse("Execution was cancelled because of server shutdown")); + completeAsyncJob(jobId, AsyncJobConstants.STATUS_FAILED, 0, getResetResultResponse("Execution was cancelled because of server shutdown")); } } _queueMgr.purgeItem(item.getId()); diff --git a/server/src/com/cloud/async/AsyncJobResult.java b/server/src/com/cloud/async/AsyncJobResult.java index 280780c6f72..7f3ab32fc48 100644 --- a/server/src/com/cloud/async/AsyncJobResult.java +++ b/server/src/com/cloud/async/AsyncJobResult.java @@ -19,9 +19,6 @@ package com.cloud.async; import com.cloud.api.ApiSerializerHelper; public class AsyncJobResult { - public static final int STATUS_IN_PROGRESS = 0; - public static final int STATUS_SUCCEEDED = 1; - public static final int STATUS_FAILED = 2; private long jobId; private int jobStatus; @@ -32,7 +29,7 @@ public class AsyncJobResult { public AsyncJobResult(long jobId) { this.jobId = jobId; - jobStatus = STATUS_IN_PROGRESS; + jobStatus = AsyncJobConstants.STATUS_IN_PROGRESS; processStatus = 0; resultCode = 0; result = ""; diff --git a/server/src/com/cloud/async/dao/AsyncJobDaoImpl.java b/server/src/com/cloud/async/dao/AsyncJobDaoImpl.java index 992b94230ac..3a8798e839f 100644 --- a/server/src/com/cloud/async/dao/AsyncJobDaoImpl.java +++ b/server/src/com/cloud/async/dao/AsyncJobDaoImpl.java @@ -23,6 +23,7 @@ import java.util.List; import org.apache.log4j.Logger; +import com.cloud.async.AsyncJobConstants; import com.cloud.async.AsyncJobResult; import com.cloud.async.AsyncJobVO; import com.cloud.utils.db.DB; @@ -68,7 +69,7 @@ public class AsyncJobDaoImpl extends GenericDaoBase implements SearchCriteria sc = pendingAsyncJobSearch.create(); sc.setParameters("instanceType", instanceType); sc.setParameters("instanceId", instanceId); - sc.setParameters("status", AsyncJobResult.STATUS_IN_PROGRESS); + sc.setParameters("status", AsyncJobConstants.STATUS_IN_PROGRESS); List l = listIncludingRemovedBy(sc); if(l != null && l.size() > 0) { @@ -88,7 +89,7 @@ public class AsyncJobDaoImpl extends GenericDaoBase implements if (accountId != null) { sc.setParameters("accountId", accountId); } - sc.setParameters("status", AsyncJobResult.STATUS_IN_PROGRESS); + sc.setParameters("status", AsyncJobConstants.STATUS_IN_PROGRESS); return listBy(sc); } @@ -102,7 +103,7 @@ public class AsyncJobDaoImpl extends GenericDaoBase implements @DB public void resetJobProcess(long msid, int jobResultCode, String jobResultMessage) { - String sql = "UPDATE async_job SET job_status=" + AsyncJobResult.STATUS_FAILED + ", job_result_code=" + jobResultCode + String sql = "UPDATE async_job SET job_status=" + AsyncJobConstants.STATUS_FAILED + ", job_result_code=" + jobResultCode + ", job_result='" + jobResultMessage + "' where job_status=0 AND (job_complete_msid=? OR (job_complete_msid IS NULL AND job_init_msid=?))"; Transaction txn = Transaction.currentTxn(); diff --git a/server/src/com/cloud/async/dao/AsyncJobJoinMapDaoImpl.java b/server/src/com/cloud/async/dao/AsyncJobJoinMapDaoImpl.java index 0da29680aaf..d441ab9aaba 100644 --- a/server/src/com/cloud/async/dao/AsyncJobJoinMapDaoImpl.java +++ b/server/src/com/cloud/async/dao/AsyncJobJoinMapDaoImpl.java @@ -18,6 +18,7 @@ package com.cloud.async.dao; import java.util.List; +import com.cloud.async.AsyncJobConstants; import com.cloud.async.AsyncJobJoinMapVO; import com.cloud.async.AsyncJobResult; import com.cloud.utils.DateUtil; @@ -48,7 +49,7 @@ public class AsyncJobJoinMapDaoImpl extends GenericDaoBase