diff --git a/api/src/com/cloud/api/commands/DeleteAccountCmd.java b/api/src/com/cloud/api/commands/DeleteAccountCmd.java index e24495726af..9e25e502078 100755 --- a/api/src/com/cloud/api/commands/DeleteAccountCmd.java +++ b/api/src/com/cloud/api/commands/DeleteAccountCmd.java @@ -28,6 +28,7 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.SuccessResponse; +import com.cloud.async.AsyncJob; import com.cloud.event.EventTypes; import com.cloud.user.Account; import com.cloud.user.User; @@ -102,4 +103,9 @@ public class DeleteAccountCmd extends BaseAsyncCmd { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete user account and all corresponding users"); } } + + @Override + public AsyncJob.Type getInstanceType() { + return AsyncJob.Type.Account; + } } diff --git a/api/src/com/cloud/api/commands/DisableAccountCmd.java b/api/src/com/cloud/api/commands/DisableAccountCmd.java index a9f663c4928..7b2f988d83a 100644 --- a/api/src/com/cloud/api/commands/DisableAccountCmd.java +++ b/api/src/com/cloud/api/commands/DisableAccountCmd.java @@ -27,6 +27,7 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.AccountResponse; +import com.cloud.async.AsyncJob; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.ResourceUnavailableException; @@ -120,5 +121,10 @@ public class DisableAccountCmd extends BaseAsyncCmd { } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, lockRequested == true ? "Failed to lock account" : "Failed to disable account" ); } + } + + @Override + public AsyncJob.Type getInstanceType() { + return AsyncJob.Type.Account; } } diff --git a/api/src/com/cloud/api/commands/DisableUserCmd.java b/api/src/com/cloud/api/commands/DisableUserCmd.java index 021b2d1d933..e6b53ff7974 100644 --- a/api/src/com/cloud/api/commands/DisableUserCmd.java +++ b/api/src/com/cloud/api/commands/DisableUserCmd.java @@ -27,6 +27,7 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.UserResponse; +import com.cloud.async.AsyncJob; import com.cloud.event.EventTypes; import com.cloud.user.Account; import com.cloud.user.User; @@ -95,5 +96,10 @@ public class DisableUserCmd extends BaseAsyncCmd { } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to disable user"); } + } + + @Override + public AsyncJob.Type getInstanceType() { + return AsyncJob.Type.User; } } diff --git a/api/src/com/cloud/api/response/AsyncJobResponse.java b/api/src/com/cloud/api/response/AsyncJobResponse.java index 13be7f35739..985acf01969 100644 --- a/api/src/com/cloud/api/response/AsyncJobResponse.java +++ b/api/src/com/cloud/api/response/AsyncJobResponse.java @@ -19,6 +19,8 @@ package com.cloud.api.response; import java.util.Date; +import org.apache.log4j.Logger; + import com.cloud.api.ApiConstants; import com.cloud.api.IdentityProxy; import com.cloud.api.ResponseObject; @@ -28,6 +30,8 @@ import com.google.gson.annotations.SerializedName; @SuppressWarnings("unused") public class AsyncJobResponse extends BaseResponse { + private static final Logger s_logger = Logger.getLogger(AsyncJobResponse.class.getName()); + @SerializedName("accountid") @Param(description="the account that executed the async command") private IdentityProxy accountId = new IdentityProxy("account"); @@ -123,7 +127,12 @@ public class AsyncJobResponse extends BaseResponse { this.jobInstanceId.setTableName("physical_network_service_providers"); } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.FirewallRule.toString())) { this.jobInstanceId.setTableName("firewall_rules"); - } else if (!jobInstanceType.equalsIgnoreCase(AsyncJob.Type.None.toString())){ + } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.Account.toString())) { + this.jobInstanceId.setTableName("account"); + } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.User.toString())) { + this.jobInstanceId.setTableName("user"); + } else if (!jobInstanceType.equalsIgnoreCase(AsyncJob.Type.None.toString())){ + s_logger.warn("Failed to get async job instanceId for job instance type " + jobInstanceType); // TODO : when we hit here, we need to add instanceType -> UUID entity table mapping assert(false); } diff --git a/api/src/com/cloud/async/AsyncJob.java b/api/src/com/cloud/async/AsyncJob.java index 9db25c742e9..e8fbab8986a 100644 --- a/api/src/com/cloud/async/AsyncJob.java +++ b/api/src/com/cloud/async/AsyncJob.java @@ -39,7 +39,9 @@ public interface AsyncJob extends Identity { PhysicalNetwork, TrafficType, PhysicalNetworkServiceProvider, - FirewallRule + FirewallRule, + Account, + User } Long getId();