mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
bug 6969: return jobId/jobStatus for IpAddress and SecurityGroup as ids for these objects were introduced in 2.2.x
This commit is contained in:
parent
b5152e27ec
commit
e4765fb32b
@ -102,10 +102,12 @@ public class AssignToLoadBalancerRuleCmd extends BaseAsyncCmd {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getSyncObjType() {
|
public String getSyncObjType() {
|
||||||
return BaseAsyncCmd.networkSyncObject;
|
return BaseAsyncCmd.networkSyncObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Long getSyncObjId() {
|
public Long getSyncObjId() {
|
||||||
return _lbService.findById(id).getNetworkId();
|
return _lbService.findById(id).getNetworkId();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,6 +29,7 @@ import com.cloud.api.Implementation;
|
|||||||
import com.cloud.api.Parameter;
|
import com.cloud.api.Parameter;
|
||||||
import com.cloud.api.ServerApiException;
|
import com.cloud.api.ServerApiException;
|
||||||
import com.cloud.api.response.IPAddressResponse;
|
import com.cloud.api.response.IPAddressResponse;
|
||||||
|
import com.cloud.async.AsyncJob;
|
||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
import com.cloud.exception.ConcurrentOperationException;
|
||||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||||
@ -161,11 +162,18 @@ public class AssociateIPAddrCmd extends BaseAsyncCreateCmd {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getSyncObjType() {
|
public String getSyncObjType() {
|
||||||
return BaseAsyncCmd.networkSyncObject;
|
return BaseAsyncCmd.networkSyncObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Long getSyncObjId() {
|
public Long getSyncObjId() {
|
||||||
return getNetworkId();
|
return getNetworkId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AsyncJob.Type getInstanceType() {
|
||||||
|
return AsyncJob.Type.IpAddress;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,6 +34,7 @@ import com.cloud.api.Parameter;
|
|||||||
import com.cloud.api.ServerApiException;
|
import com.cloud.api.ServerApiException;
|
||||||
import com.cloud.api.response.IngressRuleResponse;
|
import com.cloud.api.response.IngressRuleResponse;
|
||||||
import com.cloud.api.response.SecurityGroupResponse;
|
import com.cloud.api.response.SecurityGroupResponse;
|
||||||
|
import com.cloud.async.AsyncJob;
|
||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
import com.cloud.network.security.IngressRule;
|
import com.cloud.network.security.IngressRule;
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
@ -206,4 +207,14 @@ public class AuthorizeSecurityGroupIngressCmd extends BaseAsyncCmd {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AsyncJob.Type getInstanceType() {
|
||||||
|
return AsyncJob.Type.SecurityGroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getInstanceId() {
|
||||||
|
return getSecurityGroupId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -89,10 +89,12 @@ public class CancelMaintenanceCmd extends BaseAsyncCmd {
|
|||||||
return "canceling maintenance for host: " + getId();
|
return "canceling maintenance for host: " + getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public AsyncJob.Type getInstanceType() {
|
public AsyncJob.Type getInstanceType() {
|
||||||
return AsyncJob.Type.Host;
|
return AsyncJob.Type.Host;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Long getInstanceId() {
|
public Long getInstanceId() {
|
||||||
return getId();
|
return getId();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -70,10 +70,12 @@ public class CancelPrimaryStorageMaintenanceCmd extends BaseAsyncCmd {
|
|||||||
return "primarystorage";
|
return "primarystorage";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public AsyncJob.Type getInstanceType() {
|
public AsyncJob.Type getInstanceType() {
|
||||||
return AsyncJob.Type.StoragePool;
|
return AsyncJob.Type.StoragePool;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Long getInstanceId() {
|
public Long getInstanceId() {
|
||||||
return getId();
|
return getId();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import com.cloud.api.Implementation;
|
|||||||
import com.cloud.api.Parameter;
|
import com.cloud.api.Parameter;
|
||||||
import com.cloud.api.ServerApiException;
|
import com.cloud.api.ServerApiException;
|
||||||
import com.cloud.api.response.SuccessResponse;
|
import com.cloud.api.response.SuccessResponse;
|
||||||
|
import com.cloud.async.AsyncJob;
|
||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
import com.cloud.exception.InvalidParameterValueException;
|
import com.cloud.exception.InvalidParameterValueException;
|
||||||
import com.cloud.network.IpAddress;
|
import com.cloud.network.IpAddress;
|
||||||
@ -96,10 +97,12 @@ public class DisassociateIPAddrCmd extends BaseAsyncCmd {
|
|||||||
return ownerId;
|
return ownerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getSyncObjType() {
|
public String getSyncObjType() {
|
||||||
return BaseAsyncCmd.networkSyncObject;
|
return BaseAsyncCmd.networkSyncObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Long getSyncObjId() {
|
public Long getSyncObjId() {
|
||||||
IpAddress ip = getIpAddress(id);
|
IpAddress ip = getIpAddress(id);
|
||||||
return ip.getAssociatedWithNetworkId();
|
return ip.getAssociatedWithNetworkId();
|
||||||
@ -114,4 +117,14 @@ public class DisassociateIPAddrCmd extends BaseAsyncCmd {
|
|||||||
return ip;
|
return ip;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AsyncJob.Type getInstanceType() {
|
||||||
|
return AsyncJob.Type.IpAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getInstanceId() {
|
||||||
|
return getIpAddressId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,6 +29,7 @@ import com.cloud.api.Implementation;
|
|||||||
import com.cloud.api.Parameter;
|
import com.cloud.api.Parameter;
|
||||||
import com.cloud.api.response.IPAddressResponse;
|
import com.cloud.api.response.IPAddressResponse;
|
||||||
import com.cloud.api.response.ListResponse;
|
import com.cloud.api.response.ListResponse;
|
||||||
|
import com.cloud.async.AsyncJob;
|
||||||
import com.cloud.network.IpAddress;
|
import com.cloud.network.IpAddress;
|
||||||
|
|
||||||
@Implementation(description="Lists all public ip addresses", responseObject=IPAddressResponse.class)
|
@Implementation(description="Lists all public ip addresses", responseObject=IPAddressResponse.class)
|
||||||
@ -123,5 +124,9 @@ public class ListPublicIpAddressesCmd extends BaseListCmd {
|
|||||||
response.setResponses(ipAddrResponses);
|
response.setResponses(ipAddrResponses);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
this.setResponseObject(response);
|
this.setResponseObject(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AsyncJob.Type getInstanceType() {
|
||||||
|
return AsyncJob.Type.IpAddress;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import com.cloud.api.Implementation;
|
|||||||
import com.cloud.api.Parameter;
|
import com.cloud.api.Parameter;
|
||||||
import com.cloud.api.response.ListResponse;
|
import com.cloud.api.response.ListResponse;
|
||||||
import com.cloud.api.response.SecurityGroupResponse;
|
import com.cloud.api.response.SecurityGroupResponse;
|
||||||
|
import com.cloud.async.AsyncJob;
|
||||||
import com.cloud.network.security.SecurityGroupRules;
|
import com.cloud.network.security.SecurityGroupRules;
|
||||||
|
|
||||||
@Implementation(description="Lists security groups", responseObject=SecurityGroupResponse.class)
|
@Implementation(description="Lists security groups", responseObject=SecurityGroupResponse.class)
|
||||||
@ -95,4 +96,9 @@ public class ListSecurityGroupsCmd extends BaseListCmd {
|
|||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
this.setResponseObject(response);
|
this.setResponseObject(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AsyncJob.Type getInstanceType() {
|
||||||
|
return AsyncJob.Type.SecurityGroup;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,7 +26,6 @@ import com.cloud.api.ApiConstants;
|
|||||||
import com.cloud.api.BaseListCmd;
|
import com.cloud.api.BaseListCmd;
|
||||||
import com.cloud.api.Implementation;
|
import com.cloud.api.Implementation;
|
||||||
import com.cloud.api.Parameter;
|
import com.cloud.api.Parameter;
|
||||||
import com.cloud.api.BaseCmd.CommandType;
|
|
||||||
import com.cloud.api.response.ListResponse;
|
import com.cloud.api.response.ListResponse;
|
||||||
import com.cloud.api.response.VolumeResponse;
|
import com.cloud.api.response.VolumeResponse;
|
||||||
import com.cloud.async.AsyncJob;
|
import com.cloud.async.AsyncJob;
|
||||||
@ -125,6 +124,7 @@ public class ListVolumesCmd extends BaseListCmd {
|
|||||||
return s_name;
|
return s_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public AsyncJob.Type getInstanceType() {
|
public AsyncJob.Type getInstanceType() {
|
||||||
return AsyncJob.Type.Volume;
|
return AsyncJob.Type.Volume;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -86,10 +86,12 @@ public class PrepareForMaintenanceCmd extends BaseAsyncCmd {
|
|||||||
return "preparing host: " + getId() + " for maintenance";
|
return "preparing host: " + getId() + " for maintenance";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public AsyncJob.Type getInstanceType() {
|
public AsyncJob.Type getInstanceType() {
|
||||||
return AsyncJob.Type.Host;
|
return AsyncJob.Type.Host;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Long getInstanceId() {
|
public Long getInstanceId() {
|
||||||
return getId();
|
return getId();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -67,10 +67,12 @@ public class PreparePrimaryStorageForMaintenanceCmd extends BaseAsyncCmd {
|
|||||||
return "primarystorage";
|
return "primarystorage";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public AsyncJob.Type getInstanceType() {
|
public AsyncJob.Type getInstanceType() {
|
||||||
return AsyncJob.Type.StoragePool;
|
return AsyncJob.Type.StoragePool;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Long getInstanceId() {
|
public Long getInstanceId() {
|
||||||
return getId();
|
return getId();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import com.cloud.api.Implementation;
|
|||||||
import com.cloud.api.Parameter;
|
import com.cloud.api.Parameter;
|
||||||
import com.cloud.api.ServerApiException;
|
import com.cloud.api.ServerApiException;
|
||||||
import com.cloud.api.response.SuccessResponse;
|
import com.cloud.api.response.SuccessResponse;
|
||||||
|
import com.cloud.async.AsyncJob;
|
||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
import com.cloud.user.UserContext;
|
import com.cloud.user.UserContext;
|
||||||
@ -100,4 +101,14 @@ public class RevokeSecurityGroupIngressCmd extends BaseAsyncCmd {
|
|||||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to revoke security group ingress rule");
|
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to revoke security group ingress rule");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AsyncJob.Type getInstanceType() {
|
||||||
|
return AsyncJob.Type.SecurityGroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getInstanceId() {
|
||||||
|
return getId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -141,8 +141,29 @@ public class HostResponse extends BaseResponse {
|
|||||||
@SerializedName("jobstatus") @Param(description="shows the current pending asynchronous job status")
|
@SerializedName("jobstatus") @Param(description="shows the current pending asynchronous job status")
|
||||||
private Integer jobStatus;
|
private Integer jobStatus;
|
||||||
|
|
||||||
|
@Override
|
||||||
public Long getObjectId() {
|
public Long getObjectId() {
|
||||||
return getId();
|
return getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getJobId() {
|
||||||
|
return jobId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setJobId(Long jobId) {
|
||||||
|
this.jobId = jobId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getJobStatus() {
|
||||||
|
return jobStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setJobStatus(Integer jobStatus) {
|
||||||
|
this.jobStatus = jobStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getId() {
|
public Long getId() {
|
||||||
@ -432,20 +453,4 @@ public class HostResponse extends BaseResponse {
|
|||||||
public void setEvents(String events) {
|
public void setEvents(String events) {
|
||||||
this.events = 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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -81,6 +81,12 @@ public class IPAddressResponse extends BaseResponse {
|
|||||||
@SerializedName(ApiConstants.STATE) @Param(description="State of the ip address. Can be: Allocatin, Allocated and Releasing")
|
@SerializedName(ApiConstants.STATE) @Param(description="State of the ip address. Can be: Allocatin, Allocated and Releasing")
|
||||||
private String state;
|
private String 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 volume")
|
||||||
|
private Long jobId;
|
||||||
|
|
||||||
|
@SerializedName("jobstatus") @Param(description="shows the current pending asynchronous job status")
|
||||||
|
private Integer jobStatus;
|
||||||
|
|
||||||
public String getIpAddress() {
|
public String getIpAddress() {
|
||||||
return ipAddress;
|
return ipAddress;
|
||||||
}
|
}
|
||||||
@ -232,4 +238,29 @@ public class IPAddressResponse extends BaseResponse {
|
|||||||
public void setState(String state) {
|
public void setState(String state) {
|
||||||
this.state = state;
|
this.state = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getObjectId() {
|
||||||
|
return getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getJobId() {
|
||||||
|
return jobId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setJobId(Long jobId) {
|
||||||
|
this.jobId = jobId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getJobStatus() {
|
||||||
|
return jobStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setJobStatus(Integer jobStatus) {
|
||||||
|
this.jobStatus = jobStatus;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,7 @@ package com.cloud.api.response;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.cloud.api.ApiConstants;
|
||||||
import com.cloud.serializer.Param;
|
import com.cloud.serializer.Param;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
@ -40,6 +41,12 @@ public class SecurityGroupResponse extends BaseResponse {
|
|||||||
|
|
||||||
@SerializedName("domain") @Param(description="the domain name of the security group")
|
@SerializedName("domain") @Param(description="the domain name of the security group")
|
||||||
private String domainName;
|
private String domainName;
|
||||||
|
|
||||||
|
@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 volume")
|
||||||
|
private Long jobId;
|
||||||
|
|
||||||
|
@SerializedName("jobstatus") @Param(description="shows the current pending asynchronous job status")
|
||||||
|
private Integer jobStatus;
|
||||||
|
|
||||||
@SerializedName("ingressrule") @Param(description="the list of ingress rules associated with the security group", responseObject = IngressRuleResponse.class)
|
@SerializedName("ingressrule") @Param(description="the list of ingress rules associated with the security group", responseObject = IngressRuleResponse.class)
|
||||||
private List<IngressRuleResponse> ingressRules;
|
private List<IngressRuleResponse> ingressRules;
|
||||||
@ -99,4 +106,29 @@ public class SecurityGroupResponse extends BaseResponse {
|
|||||||
public void setIngressRules(List<IngressRuleResponse> ingressRules) {
|
public void setIngressRules(List<IngressRuleResponse> ingressRules) {
|
||||||
this.ingressRules = ingressRules;
|
this.ingressRules = ingressRules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getObjectId() {
|
||||||
|
return getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getJobId() {
|
||||||
|
return jobId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setJobId(Long jobId) {
|
||||||
|
this.jobId = jobId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getJobStatus() {
|
||||||
|
return jobStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setJobStatus(Integer jobStatus) {
|
||||||
|
this.jobStatus = jobStatus;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,6 @@ package com.cloud.api.response;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.cloud.api.ApiConstants;
|
import com.cloud.api.ApiConstants;
|
||||||
import com.cloud.host.Status;
|
|
||||||
import com.cloud.serializer.Param;
|
import com.cloud.serializer.Param;
|
||||||
import com.cloud.storage.StoragePoolStatus;
|
import com.cloud.storage.StoragePoolStatus;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
@ -80,9 +79,30 @@ public class StoragePoolResponse extends BaseResponse {
|
|||||||
@SerializedName("jobstatus") @Param(description="shows the current pending asynchronous job status")
|
@SerializedName("jobstatus") @Param(description="shows the current pending asynchronous job status")
|
||||||
private Integer jobStatus;
|
private Integer jobStatus;
|
||||||
|
|
||||||
|
@Override
|
||||||
public Long getObjectId() {
|
public Long getObjectId() {
|
||||||
return getId();
|
return getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getJobId() {
|
||||||
|
return jobId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setJobId(Long jobId) {
|
||||||
|
this.jobId = jobId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getJobStatus() {
|
||||||
|
return jobStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setJobStatus(Integer jobStatus) {
|
||||||
|
this.jobStatus = jobStatus;
|
||||||
|
}
|
||||||
|
|
||||||
public Long getId() {
|
public Long getId() {
|
||||||
return id;
|
return id;
|
||||||
@ -212,19 +232,4 @@ public class StoragePoolResponse extends BaseResponse {
|
|||||||
this.state = 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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -123,9 +123,30 @@ public class VolumeResponse extends BaseResponse {
|
|||||||
@SerializedName("isextractable") @Param(description="true if the volume is extractable, false otherwise")
|
@SerializedName("isextractable") @Param(description="true if the volume is extractable, false otherwise")
|
||||||
private Boolean extractable;
|
private Boolean extractable;
|
||||||
|
|
||||||
|
@Override
|
||||||
public Long getObjectId() {
|
public Long getObjectId() {
|
||||||
return getId();
|
return getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getJobId() {
|
||||||
|
return jobId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setJobId(Long jobId) {
|
||||||
|
this.jobId = jobId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getJobStatus() {
|
||||||
|
return jobStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setJobStatus(Integer jobStatus) {
|
||||||
|
this.jobStatus = jobStatus;
|
||||||
|
}
|
||||||
|
|
||||||
public Boolean getDestroyed() {
|
public Boolean getDestroyed() {
|
||||||
return destroyed;
|
return destroyed;
|
||||||
@ -143,22 +164,6 @@ public class VolumeResponse extends BaseResponse {
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,7 +31,9 @@ public interface AsyncJob {
|
|||||||
Iso,
|
Iso,
|
||||||
SystemVm,
|
SystemVm,
|
||||||
Host,
|
Host,
|
||||||
StoragePool
|
StoragePool,
|
||||||
|
IpAddress,
|
||||||
|
SecurityGroup,
|
||||||
}
|
}
|
||||||
|
|
||||||
Long getId();
|
Long getId();
|
||||||
|
|||||||
@ -445,7 +445,15 @@ public class ApiServer implements HttpRequestHandler {
|
|||||||
private void buildAsyncListResponse(BaseListCmd command, Account account) {
|
private void buildAsyncListResponse(BaseListCmd command, Account account) {
|
||||||
List<ResponseObject> responses = ((ListResponse)command.getResponseObject()).getResponses();
|
List<ResponseObject> responses = ((ListResponse)command.getResponseObject()).getResponses();
|
||||||
if (responses != null && responses.size() > 0) {
|
if (responses != null && responses.size() > 0) {
|
||||||
List<? extends AsyncJob> jobs = _asyncMgr.findInstancePendingAsyncJobs(command.getInstanceType(), account.getId());
|
List<? extends AsyncJob> jobs = null;
|
||||||
|
|
||||||
|
//list all jobs for ROOT admin
|
||||||
|
if (account.getType() == Account.ACCOUNT_TYPE_ADMIN) {
|
||||||
|
jobs = _asyncMgr.findInstancePendingAsyncJobs(command.getInstanceType(), null);
|
||||||
|
} else {
|
||||||
|
jobs = _asyncMgr.findInstancePendingAsyncJobs(command.getInstanceType(), account.getId());
|
||||||
|
}
|
||||||
|
|
||||||
if (jobs.size() == 0) {
|
if (jobs.size() == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,7 +31,7 @@ public interface AsyncJobManager extends Manager {
|
|||||||
|
|
||||||
public AsyncJobVO getAsyncJob(long jobId);
|
public AsyncJobVO getAsyncJob(long jobId);
|
||||||
public AsyncJobVO findInstancePendingAsyncJob(String instanceType, long instanceId);
|
public AsyncJobVO findInstancePendingAsyncJob(String instanceType, long instanceId);
|
||||||
public List<? extends AsyncJob> findInstancePendingAsyncJobs(AsyncJob.Type instanceType, long accountId);
|
public List<? extends AsyncJob> findInstancePendingAsyncJobs(AsyncJob.Type instanceType, Long accountId);
|
||||||
|
|
||||||
public long submitAsyncJob(AsyncJobVO job);
|
public long submitAsyncJob(AsyncJobVO job);
|
||||||
public long submitAsyncJob(AsyncJobVO job, boolean scheduleJobExecutionInContext);
|
public long submitAsyncJob(AsyncJobVO job, boolean scheduleJobExecutionInContext);
|
||||||
|
|||||||
@ -106,7 +106,7 @@ public class AsyncJobManagerImpl implements AsyncJobManager, ClusterManagerListe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AsyncJobVO> findInstancePendingAsyncJobs(AsyncJob.Type instanceType, long accountId) {
|
public List<AsyncJobVO> findInstancePendingAsyncJobs(AsyncJob.Type instanceType, Long accountId) {
|
||||||
return _jobDao.findInstancePendingAsyncJobs(instanceType, accountId);
|
return _jobDao.findInstancePendingAsyncJobs(instanceType, accountId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -27,7 +27,7 @@ import com.cloud.utils.db.GenericDao;
|
|||||||
|
|
||||||
public interface AsyncJobDao extends GenericDao<AsyncJobVO, Long> {
|
public interface AsyncJobDao extends GenericDao<AsyncJobVO, Long> {
|
||||||
AsyncJobVO findInstancePendingAsyncJob(String instanceType, long instanceId);
|
AsyncJobVO findInstancePendingAsyncJob(String instanceType, long instanceId);
|
||||||
List<AsyncJobVO> findInstancePendingAsyncJobs(AsyncJob.Type instanceType, long accountId);
|
List<AsyncJobVO> findInstancePendingAsyncJobs(AsyncJob.Type instanceType, Long accountId);
|
||||||
List<AsyncJobVO> getExpiredJobs(Date cutTime, int limit);
|
List<AsyncJobVO> getExpiredJobs(Date cutTime, int limit);
|
||||||
void resetJobProcess(long msid);
|
void resetJobProcess(long msid);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -87,10 +87,13 @@ public class AsyncJobDaoImpl extends GenericDaoBase<AsyncJobVO, Long> implements
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<AsyncJobVO> findInstancePendingAsyncJobs(AsyncJob.Type instanceType, long accountId) {
|
public List<AsyncJobVO> findInstancePendingAsyncJobs(AsyncJob.Type instanceType, Long accountId) {
|
||||||
SearchCriteria<AsyncJobVO> sc = pendingAsyncJobsSearch.create();
|
SearchCriteria<AsyncJobVO> sc = pendingAsyncJobsSearch.create();
|
||||||
sc.setParameters("instanceType", instanceType);
|
sc.setParameters("instanceType", instanceType);
|
||||||
sc.setParameters("accountId", accountId);
|
|
||||||
|
if (accountId != null) {
|
||||||
|
sc.setParameters("accountId", accountId);
|
||||||
|
}
|
||||||
sc.setParameters("status", AsyncJobResult.STATUS_IN_PROGRESS);
|
sc.setParameters("status", AsyncJobResult.STATUS_IN_PROGRESS);
|
||||||
|
|
||||||
return listBy(sc);
|
return listBy(sc);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user