From 5215f6f8173142ee16efce8a8f34c8df0ac8f128 Mon Sep 17 00:00:00 2001 From: nit Date: Fri, 12 Nov 2010 16:40:55 +0530 Subject: [PATCH] bug 7101 : DetachISO API and AttachISO API would start returning an embedded object of virtualmachine so that the UI could use that to update the vm. status 7101: resolved fixed --- .../com/cloud/api/commands/AttachIsoCmd.java | 21 ++++++------------- .../com/cloud/api/commands/DetachIsoCmd.java | 7 ++++++- 2 files changed, 12 insertions(+), 16 deletions(-) mode change 100644 => 100755 server/src/com/cloud/api/commands/DetachIsoCmd.java diff --git a/server/src/com/cloud/api/commands/AttachIsoCmd.java b/server/src/com/cloud/api/commands/AttachIsoCmd.java index 0e97d825bce..65c9918111e 100755 --- a/server/src/com/cloud/api/commands/AttachIsoCmd.java +++ b/server/src/com/cloud/api/commands/AttachIsoCmd.java @@ -21,12 +21,14 @@ import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; import com.cloud.api.ApiDBUtils; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseAsyncCmd; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.IsoVmResponse; +import com.cloud.api.response.UserVmResponse; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; @@ -35,6 +37,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.VMTemplateVO; import com.cloud.user.Account; +import com.cloud.uservm.UserVm; import com.cloud.vm.VMInstanceVO; @Implementation(description="Attaches an ISO to a virtual machine.") @@ -99,21 +102,9 @@ public class AttachIsoCmd extends BaseAsyncCmd { public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _templateMgr.attachIso(this); if (result) { - IsoVmResponse response = new IsoVmResponse(); - VMTemplateVO iso = ApiDBUtils.findTemplateById(id); - VMInstanceVO vmInstance = ApiDBUtils.findVMInstanceById(virtualMachineId); - - response.setId(id); - response.setName(iso.getName()); - response.setDisplayText(iso.getDisplayText()); - response.setOsTypeId(iso.getGuestOSId()); - response.setOsTypeName(ApiDBUtils.findGuestOSById(iso.getGuestOSId()).getName()); - response.setVirtualMachineId(virtualMachineId); - response.setVirtualMachineName(vmInstance.getHostName()); - response.setVirtualMachineState(vmInstance.getState().toString()); - response.setResponseName(getName()); - response.setObjectName("iso"); - + UserVm userVm = ApiDBUtils.findUserVmById(virtualMachineId); + UserVmResponse response = ApiResponseHelper.createUserVmResponse(userVm); + response.setResponseName(DeployVMCmd.getResultObjectName()); this.setResponseObject(response); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to attach iso"); diff --git a/server/src/com/cloud/api/commands/DetachIsoCmd.java b/server/src/com/cloud/api/commands/DetachIsoCmd.java old mode 100644 new mode 100755 index 63daf25a34d..bfa8d586e83 --- a/server/src/com/cloud/api/commands/DetachIsoCmd.java +++ b/server/src/com/cloud/api/commands/DetachIsoCmd.java @@ -21,18 +21,21 @@ import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; import com.cloud.api.ApiDBUtils; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseAsyncCmd; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.SuccessResponse; +import com.cloud.api.response.UserVmResponse; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; +import com.cloud.storage.VMTemplateVO; import com.cloud.user.Account; import com.cloud.uservm.UserVm; @@ -90,7 +93,9 @@ public class DetachIsoCmd extends BaseAsyncCmd { public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _templateMgr.detachIso(this); if (result) { - SuccessResponse response = new SuccessResponse(getName()); + UserVm userVm = ApiDBUtils.findUserVmById(virtualMachineId); + UserVmResponse response = ApiResponseHelper.createUserVmResponse(userVm); + response.setResponseName(DeployVMCmd.getResultObjectName()); this.setResponseObject(response); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to detach iso");