diff --git a/api/src/com/cloud/api/commands/CancelPrimaryStorageMaintenanceCmd.java b/api/src/com/cloud/api/commands/CancelPrimaryStorageMaintenanceCmd.java index c571152bc60..5cf83de9399 100644 --- a/api/src/com/cloud/api/commands/CancelPrimaryStorageMaintenanceCmd.java +++ b/api/src/com/cloud/api/commands/CancelPrimaryStorageMaintenanceCmd.java @@ -70,7 +70,7 @@ public class CancelPrimaryStorageMaintenanceCmd extends BaseAsyncCmd { } public AsyncJob.Type getInstanceType() { - return AsyncJob.Type.Host; + return AsyncJob.Type.StoragePool; } public Long getInstanceId() { diff --git a/api/src/com/cloud/api/commands/ListStoragePoolsCmd.java b/api/src/com/cloud/api/commands/ListStoragePoolsCmd.java index 6f3cc241b71..3a0846ecd64 100644 --- a/api/src/com/cloud/api/commands/ListStoragePoolsCmd.java +++ b/api/src/com/cloud/api/commands/ListStoragePoolsCmd.java @@ -98,7 +98,7 @@ public class ListStoragePoolsCmd extends BaseListCmd { } public AsyncJob.Type getInstanceType() { - return AsyncJob.Type.Host; + return AsyncJob.Type.StoragePool; } @Override diff --git a/api/src/com/cloud/api/commands/PreparePrimaryStorageForMaintenanceCmd.java b/api/src/com/cloud/api/commands/PreparePrimaryStorageForMaintenanceCmd.java index f6dd08121f6..6494b3de6c6 100644 --- a/api/src/com/cloud/api/commands/PreparePrimaryStorageForMaintenanceCmd.java +++ b/api/src/com/cloud/api/commands/PreparePrimaryStorageForMaintenanceCmd.java @@ -66,7 +66,7 @@ public class PreparePrimaryStorageForMaintenanceCmd extends BaseAsyncCmd { } public AsyncJob.Type getInstanceType() { - return AsyncJob.Type.Host; + return AsyncJob.Type.StoragePool; } public Long getInstanceId() { diff --git a/api/src/com/cloud/api/response/HostResponse.java b/api/src/com/cloud/api/response/HostResponse.java index 572e2aac402..059220fe410 100755 --- a/api/src/com/cloud/api/response/HostResponse.java +++ b/api/src/com/cloud/api/response/HostResponse.java @@ -132,6 +132,12 @@ public class HostResponse extends BaseResponse { @SerializedName("events") @Param(description="events available for the host") private String events; + @SerializedName(ApiConstants.JOB_ID) @Param(description="shows the current pending asynchronous job ID. This tag is not returned if no current pending jobs are acting on the host") + private Long jobId; + + @SerializedName("jobstatus") @Param(description="shows the current pending asynchronous job status") + private Integer jobStatus; + public Long getObjectId() { return getId(); } @@ -415,4 +421,20 @@ public class HostResponse extends BaseResponse { public void setEvents(String events) { this.events = events; } + + public Long getJobId() { + return jobId; + } + + public void setJobId(Long jobId) { + this.jobId = jobId; + } + + public Integer getJobStatus() { + return jobStatus; + } + + public void setJobStatus(Integer jobStatus) { + this.jobStatus = jobStatus; + } } diff --git a/api/src/com/cloud/api/response/StoragePoolResponse.java b/api/src/com/cloud/api/response/StoragePoolResponse.java index b5a2dc8cf31..9755c614fff 100644 --- a/api/src/com/cloud/api/response/StoragePoolResponse.java +++ b/api/src/com/cloud/api/response/StoragePoolResponse.java @@ -72,6 +72,16 @@ public class StoragePoolResponse extends BaseResponse { @SerializedName(ApiConstants.STATE) @Param(description="the state of the storage pool") private Status state; + + @SerializedName(ApiConstants.JOB_ID) @Param(description="shows the current pending asynchronous job ID. This tag is not returned if no current pending jobs are acting on the storage pool") + private Long jobId; + + @SerializedName("jobstatus") @Param(description="shows the current pending asynchronous job status") + private Integer jobStatus; + + public Long getObjectId() { + return getId(); + } public Long getId() { return id; @@ -200,4 +210,20 @@ public class StoragePoolResponse extends BaseResponse { public void setState(Status state) { this.state = state; } + + public Integer getJobStatus() { + return jobStatus; + } + + public void setJobStatus(Integer jobStatus) { + this.jobStatus = jobStatus; + } + + public Long getJobId() { + return jobId; + } + + public void setJobId(Long jobId) { + this.jobId = jobId; + } } diff --git a/api/src/com/cloud/async/AsyncJob.java b/api/src/com/cloud/async/AsyncJob.java index 51f2994a1b9..dfac93d77ce 100644 --- a/api/src/com/cloud/async/AsyncJob.java +++ b/api/src/com/cloud/async/AsyncJob.java @@ -30,7 +30,8 @@ public interface AsyncJob { Template, Iso, SystemVm, - Host + Host, + StoragePool } Long getId(); diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java index 1d12658f9bc..b428a0617ce 100755 --- a/server/src/com/cloud/api/ApiServer.java +++ b/server/src/com/cloud/api/ApiServer.java @@ -441,10 +441,10 @@ public class ApiServer implements HttpRequestHandler { for (AsyncJob job : jobs) { if (job.getInstanceId() == null) continue; for (ResponseObject response : responses) { - if (job.getInstanceId() == response.getObjectId()) { - response.setJobId(job.getId()); - response.setJobStatus(job.getStatus()); - } + if (response.getObjectId() != null && job.getInstanceId().longValue() == response.getObjectId().longValue()) { + response.setJobId(job.getId()); + response.setJobStatus(job.getStatus()); + } } } }