diff --git a/api/src/org/apache/cloudstack/api/response/UserVmResponse.java b/api/src/org/apache/cloudstack/api/response/UserVmResponse.java index 1f55f5bb31a..36d82de993f 100644 --- a/api/src/org/apache/cloudstack/api/response/UserVmResponse.java +++ b/api/src/org/apache/cloudstack/api/response/UserVmResponse.java @@ -52,6 +52,14 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp @Param(description = "the account associated with the virtual machine") private String accountName; + @SerializedName(ApiConstants.USER_ID) + @Param(description = "the user's ID who deployed the virtual machine") + private String userId; + + @SerializedName(ApiConstants.USERNAME) + @Param(description = "the user's name who deployed the virtual machine") + private String userName; + @SerializedName(ApiConstants.PROJECT_ID) @Param(description = "the project id of the vm") private String projectId; @@ -315,6 +323,14 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp return accountName; } + public String getUserId() { + return userId; + } + + public String getUserName() { + return userName; + } + public String getProjectId() { return projectId; } @@ -535,6 +551,14 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp this.accountName = accountName; } + public void setUserId(String userId) { + this.userId = userId; + } + + public void setUserName(String userName) { + this.userName = userName; + } + @Override public void setDomainId(String domainId) { this.domainId = domainId; diff --git a/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java index 890b4bcd290..9d883349d60 100644 --- a/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java +++ b/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java @@ -48,6 +48,8 @@ import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.service.ServiceOfferingDetailsVO; import com.cloud.user.Account; import com.cloud.user.AccountManager; +import com.cloud.user.User; +import com.cloud.user.dao.UserDao; import com.cloud.uservm.UserVm; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; @@ -70,6 +72,8 @@ public class UserVmJoinDaoImpl extends GenericDaoBase implem public AccountManager _accountMgr; @Inject private UserVmDetailsDao _userVmDetailsDao; + @Inject + private UserDao _userDao; private final SearchBuilder VmDetailSearch; private final SearchBuilder activeVmByIsoSearch; @@ -121,6 +125,11 @@ public class UserVmJoinDaoImpl extends GenericDaoBase implem userVmResponse.setAccountName(userVm.getAccountName()); } + User user = _userDao.getUser(userVm.getUserId()); + if (user != null) { + userVmResponse.setUserId(user.getUuid()); + userVmResponse.setUserName(user.getUsername()); + } userVmResponse.setDomainId(userVm.getDomainUuid()); userVmResponse.setDomainName(userVm.getDomainName());