From 1ca7b1fd1fde8ce59ca91b9cf6344dfe91d7e320 Mon Sep 17 00:00:00 2001 From: abhishek Date: Fri, 3 Sep 2010 11:23:28 -0700 Subject: [PATCH] bug 5924: conforming the api to the ec2 implementation status 5924: resolved fixed --- core/src/com/cloud/server/ManagementServer.java | 1 + server/src/com/cloud/api/commands/ListVMsCmd.java | 10 ++++++++++ server/src/com/cloud/server/ManagementServerImpl.java | 7 +++++++ 3 files changed, 18 insertions(+) diff --git a/core/src/com/cloud/server/ManagementServer.java b/core/src/com/cloud/server/ManagementServer.java index 12ae65f682a..f1d126c64f6 100644 --- a/core/src/com/cloud/server/ManagementServer.java +++ b/core/src/com/cloud/server/ManagementServer.java @@ -2190,4 +2190,5 @@ public interface ManagementServer { Map listCapabilities(); GuestOSCategoryVO getGuestOsCategory(Long guestOsId); VolumeVO findVolumeByInstanceAndDeviceId(long instanceId, long deviceId); + VolumeVO getRootVolume(Long instanceId); } diff --git a/server/src/com/cloud/api/commands/ListVMsCmd.java b/server/src/com/cloud/api/commands/ListVMsCmd.java index 61ff9c46d96..7f52e7f66b9 100644 --- a/server/src/com/cloud/api/commands/ListVMsCmd.java +++ b/server/src/com/cloud/api/commands/ListVMsCmd.java @@ -34,7 +34,10 @@ import com.cloud.host.HostVO; import com.cloud.server.Criteria; import com.cloud.service.ServiceOfferingVO; import com.cloud.storage.GuestOSCategoryVO; +import com.cloud.storage.StoragePool; +import com.cloud.storage.StoragePoolVO; import com.cloud.storage.VMTemplateVO; +import com.cloud.storage.VolumeVO; import com.cloud.user.Account; import com.cloud.uservm.UserVm; import com.cloud.utils.Pair; @@ -277,6 +280,13 @@ public class ListVMsCmd extends BaseCmd { //network groups vmData.add(new Pair(BaseCmd.Properties.NETWORK_GROUP_LIST.getName(), getManagementServer().getNetworkGroupsNamesForVm(vmInstance.getId()))); + //root device related + VolumeVO rootVolume = getManagementServer().findRootVolume(vmInstance.getId()); + vmData.add(new Pair(BaseCmd.Properties.ROOT_DEVICE_ID.getName(), rootVolume.getDeviceId())); + + StoragePoolVO storagePool = getManagementServer().findPoolById(rootVolume.getPoolId()); + vmData.add(new Pair(BaseCmd.Properties.ROOT_DEVICE_TYPE.getName(), storagePool.getPoolType().toString())); + vmTag[i++] = vmData; } List> returnTags = new ArrayList>(); diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index 8284d0c05f4..b5edcee0d07 100644 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -198,6 +198,7 @@ import com.cloud.storage.StorageStats; import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateStorageResourceAssoc; import com.cloud.storage.VMTemplateVO; +import com.cloud.storage.Volume; import com.cloud.storage.VolumeStats; import com.cloud.storage.VolumeVO; import com.cloud.storage.Snapshot.SnapshotType; @@ -8676,5 +8677,11 @@ public class ManagementServerImpl implements ManagementServer { { return _guestOSCategoryDao.findById(guestOsId); } + + @Override + public VolumeVO getRootVolume(Long instanceId) + { + return _volumeDao.findByInstanceAndType(instanceId, Volume.VolumeType.ROOT).get(0); + } }