This is an automated email from the ASF dual-hosted git repository.
harikrishna pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new a6ef24d1679 server: consistent domainpath in api responses (#11589)
a6ef24d1679 is described below
commit a6ef24d1679812c223322b16767baf9faf269bd3
Author: Abhishek Kumar <[email protected]>
AuthorDate: Thu Oct 9 13:06:28 2025 +0530
server: consistent domainpath in api responses (#11589)
* server: consistent domainpath in api responses
Currently, some APIs return domainpath as 'ROOT/domain1/domain2' while
other return it as '/domain1/domain2'. This PR makes the response
consistent like "ROOT/domain1/domain2"
Signed-off-by: Abhishek Kumar <[email protected]>
* more changes
Signed-off-by: Abhishek Kumar <[email protected]>
---------
Signed-off-by: Abhishek Kumar <[email protected]>
---
.../api/command/user/vpn/AddVpnUserCmd.java | 18 +---
.../cloudstack/api/response/UserVmResponse.java | 2 +-
.../cluster/KubernetesClusterManagerImpl.java | 15 +--
.../api/response/KubernetesClusterResponse.java | 2 +-
.../main/java/com/cloud/api/ApiResponseHelper.java | 104 +++++++--------------
.../cloud/api/query/dao/AccountJoinDaoImpl.java | 5 +-
.../cloud/api/query/dao/AsyncJobJoinDaoImpl.java | 5 +-
.../com/cloud/api/query/dao/DomainJoinDaoImpl.java | 5 +-
.../api/query/dao/DomainRouterJoinDaoImpl.java | 4 -
.../api/query/dao/ProjectAccountJoinDaoImpl.java | 3 +-
.../query/dao/ProjectInvitationJoinDaoImpl.java | 3 +-
.../api/query/dao/ResourceTagJoinDaoImpl.java | 4 -
.../cloud/api/query/dao/TemplateJoinDaoImpl.java | 15 ---
.../com/cloud/api/query/dao/UserVmJoinDaoImpl.java | 10 +-
14 files changed, 48 insertions(+), 147 deletions(-)
diff --git
a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java
b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java
index 59ba7e94b04..781edff52e3 100644
---
a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java
+++
b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java
@@ -28,7 +28,6 @@ import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.VpnUsersResponse;
import org.apache.cloudstack.context.CallContext;
-import com.cloud.domain.Domain;
import com.cloud.event.EventTypes;
import com.cloud.network.VpnUser;
import com.cloud.user.Account;
@@ -110,7 +109,6 @@ public class AddVpnUserCmd extends BaseAsyncCreateCmd {
@Override
public void execute() {
VpnUser vpnUser = _entityMgr.findById(VpnUser.class, getEntityId());
- Account account = _entityMgr.findById(Account.class,
vpnUser.getAccountId());
try {
if (!_ravService.applyVpnUsers(vpnUser.getAccountId(), userName)) {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR,
"Failed to add vpn user");
@@ -118,24 +116,10 @@ public class AddVpnUserCmd extends BaseAsyncCreateCmd {
} catch (Exception ex) {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR,
ex.getMessage());
}
-
- VpnUsersResponse vpnResponse = new VpnUsersResponse();
- vpnResponse.setId(vpnUser.getUuid());
- vpnResponse.setUserName(vpnUser.getUsername());
- vpnResponse.setAccountName(account.getAccountName());
// re-retrieve the vpnuser, as the call to `applyVpnUsers` might have
changed the state
vpnUser = _entityMgr.findById(VpnUser.class, getEntityId());
- vpnResponse.setState(vpnUser.getState().toString());
-
- Domain domain = _entityMgr.findById(Domain.class,
account.getDomainId());
- if (domain != null) {
- vpnResponse.setDomainId(domain.getUuid());
- vpnResponse.setDomainName(domain.getName());
- vpnResponse.setDomainPath(domain.getPath());
- }
-
+ VpnUsersResponse vpnResponse =
_responseGenerator.createVpnUserResponse(vpnUser);
vpnResponse.setResponseName(getCommandName());
- vpnResponse.setObjectName("vpnuser");
setResponseObject(vpnResponse);
}
diff --git
a/api/src/main/java/org/apache/cloudstack/api/response/UserVmResponse.java
b/api/src/main/java/org/apache/cloudstack/api/response/UserVmResponse.java
index ca5bd09a9aa..29681b5e38f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/response/UserVmResponse.java
+++ b/api/src/main/java/org/apache/cloudstack/api/response/UserVmResponse.java
@@ -41,7 +41,7 @@ import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
@EntityReference(value = {VirtualMachine.class, UserVm.class,
VirtualRouter.class})
-public class UserVmResponse extends BaseResponseWithTagInformation implements
ControlledEntityResponse, SetResourceIconResponse {
+public class UserVmResponse extends BaseResponseWithTagInformation implements
ControlledViewEntityResponse, SetResourceIconResponse {
@SerializedName(ApiConstants.ID)
@Param(description = "the ID of the virtual machine")
private String id;
diff --git
a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java
b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java
index c46b0c00fa1..a12648c8e84 100644
---
a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java
+++
b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java
@@ -118,6 +118,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Level;
import com.cloud.api.ApiDBUtils;
+import com.cloud.api.ApiResponseHelper;
import com.cloud.api.query.dao.NetworkOfferingJoinDao;
import com.cloud.api.query.dao.TemplateJoinDao;
import com.cloud.api.query.dao.UserVmJoinDao;
@@ -135,7 +136,6 @@ import com.cloud.dc.dao.ClusterDao;
import com.cloud.dc.dao.DataCenterDao;
import com.cloud.dc.dao.DedicatedResourceDao;
import com.cloud.deploy.DeployDestination;
-import com.cloud.domain.Domain;
import com.cloud.event.ActionEvent;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
@@ -814,18 +814,7 @@ public class KubernetesClusterManagerImpl extends
ManagerBase implements Kuberne
response.setKubernetesVersionId(version.getUuid());
response.setKubernetesVersionName(version.getName());
}
- Account account =
ApiDBUtils.findAccountById(kubernetesCluster.getAccountId());
- if (account.getType() == Account.Type.PROJECT) {
- Project project =
ApiDBUtils.findProjectByProjectAccountId(account.getId());
- response.setProjectId(project.getUuid());
- response.setProjectName(project.getName());
- } else {
- response.setAccountName(account.getAccountName());
- }
- Domain domain =
ApiDBUtils.findDomainById(kubernetesCluster.getDomainId());
- response.setDomainId(domain.getUuid());
- response.setDomainName(domain.getName());
- response.setDomainPath(domain.getPath());
+ ApiResponseHelper.populateOwner(response, kubernetesCluster);
response.setKeypair(kubernetesCluster.getKeyPair());
response.setState(kubernetesCluster.getState().toString());
response.setCores(String.valueOf(kubernetesCluster.getCores()));
diff --git
a/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java
b/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java
index b811f4f9dcb..b38fdcbc49e 100644
---
a/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java
+++
b/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java
@@ -30,7 +30,7 @@ import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
@EntityReference(value = {KubernetesCluster.class})
-public class KubernetesClusterResponse extends BaseResponseWithAnnotations
implements ControlledEntityResponse {
+public class KubernetesClusterResponse extends BaseResponseWithAnnotations
implements ControlledViewEntityResponse {
@SerializedName(ApiConstants.ID)
@Param(description = "the id of the Kubernetes cluster")
private String id;
diff --git a/server/src/main/java/com/cloud/api/ApiResponseHelper.java
b/server/src/main/java/com/cloud/api/ApiResponseHelper.java
index c44239b4447..cdb210c6dea 100644
--- a/server/src/main/java/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/main/java/com/cloud/api/ApiResponseHelper.java
@@ -530,6 +530,15 @@ public class ApiResponseHelper implements
ResponseGenerator {
@Inject
ResourceIconManager resourceIconManager;
+ public static String getPrettyDomainPath(String path) {
+ if (path == null) {
+ return null;
+ }
+ StringBuilder domainPath = new StringBuilder("ROOT");
+ (domainPath.append(path)).deleteCharAt(domainPath.length() - 1);
+ return domainPath.toString();
+ }
+
@Override
public UserResponse createUserResponse(User user) {
UserAccountJoinVO vUser = ApiDBUtils.newUserView(user);
@@ -567,9 +576,7 @@ public class ApiResponseHelper implements ResponseGenerator
{
if (parentDomain != null) {
domainResponse.setParentDomainId(parentDomain.getUuid());
}
- StringBuilder domainPath = new StringBuilder("ROOT");
- (domainPath.append(domain.getPath())).deleteCharAt(domainPath.length()
- 1);
- domainResponse.setPath(domainPath.toString());
+ domainResponse.setPath(getPrettyDomainPath(domain.getPath()));
if (domain.getParent() != null) {
domainResponse.setParentDomainName(ApiDBUtils.findDomainById(domain.getParent()).getName());
}
@@ -822,21 +829,6 @@ public class ApiResponseHelper implements
ResponseGenerator {
}
}
populateOwner(vmSnapshotResponse, vmSnapshot);
- Project project =
ApiDBUtils.findProjectByProjectAccountId(vmSnapshot.getAccountId());
- if (project != null) {
- vmSnapshotResponse.setProjectId(project.getUuid());
- vmSnapshotResponse.setProjectName(project.getName());
- }
- Account account =
ApiDBUtils.findAccountById(vmSnapshot.getAccountId());
- if (account != null) {
- vmSnapshotResponse.setAccountName(account.getAccountName());
- }
- DomainVO domain = ApiDBUtils.findDomainById(vmSnapshot.getDomainId());
- if (domain != null) {
- vmSnapshotResponse.setDomainId(domain.getUuid());
- vmSnapshotResponse.setDomainName(domain.getName());
- vmSnapshotResponse.setDomainPath(domain.getPath());
- }
List<? extends ResourceTag> tags =
_resourceTagDao.listBy(vmSnapshot.getId(), ResourceObjectType.VMSnapshot);
List<ResourceTagResponse> tagResponses = new
ArrayList<ResourceTagResponse>();
@@ -2350,18 +2342,7 @@ public class ApiResponseHelper implements
ResponseGenerator {
response.setName(securityGroup.getName());
response.setDescription(securityGroup.getDescription());
- Account account =
securiytGroupAccounts.get(securityGroup.getAccountId());
-
- if (securityGroup.getAccountType() == Account.Type.PROJECT) {
- response.setProjectId(securityGroup.getProjectUuid());
- response.setProjectName(securityGroup.getProjectName());
- } else {
- response.setAccountName(securityGroup.getAccountName());
- }
-
- response.setDomainId(securityGroup.getDomainUuid());
- response.setDomainName(securityGroup.getDomainName());
- response.setDomainPath(securityGroup.getDomainPath());
+ populateOwner(response, securityGroup);
for (SecurityRule securityRule : securityRules) {
SecurityGroupRuleResponse securityGroupData = new
SecurityGroupRuleResponse();
@@ -2758,32 +2739,18 @@ public class ApiResponseHelper implements
ResponseGenerator {
// get domain from network_domain table
Pair<Long, Boolean> domainNetworkDetails =
ApiDBUtils.getDomainNetworkDetails(network.getId());
if (domainNetworkDetails.first() != null) {
- Domain domain =
ApiDBUtils.findDomainById(domainNetworkDetails.first());
- if (domain != null) {
- response.setDomainId(domain.getUuid());
-
- StringBuilder domainPath = new StringBuilder("ROOT");
-
(domainPath.append(domain.getPath())).deleteCharAt(domainPath.length() - 1);
- response.setDomainPath(domainPath.toString());
- }
+ populateDomain(response, domainNetworkDetails.first());
}
response.setSubdomainAccess(domainNetworkDetails.second());
}
Long dedicatedDomainId =
ApiDBUtils.getDedicatedNetworkDomain(network.getId());
if (dedicatedDomainId != null) {
- Domain domain = ApiDBUtils.findDomainById(dedicatedDomainId);
- if (domain != null) {
- response.setDomainId(domain.getUuid());
- response.setDomainName(domain.getName());
- response.setDomainPath(domain.getPath());
- }
-
+ populateDomain(response, dedicatedDomainId);
}
response.setSpecifyIpRanges(network.getSpecifyIpRanges());
-
setVpcIdInResponse(network.getVpcId(), response::setVpcId,
response::setVpcName);
setResponseAssociatedNetworkInformation(response, network.getId());
@@ -3045,14 +3012,10 @@ public class ApiResponseHelper implements
ResponseGenerator {
} else {
response.setAccountName(account.getAccountName());
}
-
- Domain domain = ApiDBUtils.findDomainById(object.getDomainId());
- response.setDomainId(domain.getUuid());
- response.setDomainName(domain.getName());
- response.setDomainPath(domain.getPath());
+ populateDomain(response, object.getDomainId());
}
- private void populateOwner(ControlledViewEntityResponse response,
ControlledEntity object) {
+ public static void populateOwner(ControlledViewEntityResponse response,
ControlledEntity object) {
Account account = ApiDBUtils.findAccountById(object.getAccountId());
if (account.getType() == Account.Type.PROJECT) {
@@ -3064,10 +3027,7 @@ public class ApiResponseHelper implements
ResponseGenerator {
response.setAccountName(account.getAccountName());
}
- Domain domain = ApiDBUtils.findDomainById(object.getDomainId());
- response.setDomainId(domain.getUuid());
- response.setDomainName(domain.getName());
- response.setDomainPath(domain.getPath());
+ populateDomain(response, object.getDomainId());
}
public static void populateOwner(ControlledViewEntityResponse response,
ControlledViewEntity object) {
@@ -3081,7 +3041,7 @@ public class ApiResponseHelper implements
ResponseGenerator {
response.setDomainId(object.getDomainUuid());
response.setDomainName(object.getDomainName());
- response.setDomainPath(object.getDomainPath());
+ response.setDomainPath(getPrettyDomainPath(object.getDomainPath()));
}
private void populateAccount(ControlledEntityResponse response, long
accountId) {
@@ -3105,10 +3065,22 @@ public class ApiResponseHelper implements
ResponseGenerator {
private void populateDomain(ControlledEntityResponse response, long
domainId) {
Domain domain = ApiDBUtils.findDomainById(domainId);
+ if (domain == null) {
+ return;
+ }
+ response.setDomainId(domain.getUuid());
+ response.setDomainName(domain.getName());
+ response.setDomainPath(getPrettyDomainPath(domain.getPath()));
+ }
+ private static void populateDomain(ControlledViewEntityResponse response,
long domainId) {
+ Domain domain = ApiDBUtils.findDomainById(domainId);
+ if (domain == null) {
+ return;
+ }
response.setDomainId(domain.getUuid());
response.setDomainName(domain.getName());
- response.setDomainPath(domain.getPath());
+ response.setDomainPath(getPrettyDomainPath(domain.getPath()));
}
@Override
@@ -4100,12 +4072,7 @@ public class ApiResponseHelper implements
ResponseGenerator {
usageRecResponse.setAccountName(account.getAccountName());
}
- Domain domain = ApiDBUtils.findDomainById(usageRecord.getDomainId());
- if (domain != null) {
- usageRecResponse.setDomainId(domain.getUuid());
- usageRecResponse.setDomainName(domain.getName());
- usageRecResponse.setDomainPath(domain.getPath());
- }
+ populateDomain(usageRecResponse, account.getDomainId());
if (usageRecord.getZoneId() != null) {
DataCenter zone = ApiDBUtils.findZoneById(usageRecord.getZoneId());
@@ -4892,18 +4859,11 @@ public class ApiResponseHelper implements
ResponseGenerator {
AffinityGroupResponse response = new AffinityGroupResponse();
- Account account = ApiDBUtils.findAccountById(group.getAccountId());
response.setId(group.getUuid());
- response.setAccountName(account.getAccountName());
response.setName(group.getName());
response.setType(group.getType());
response.setDescription(group.getDescription());
- Domain domain = ApiDBUtils.findDomainById(account.getDomainId());
- if (domain != null) {
- response.setDomainId(domain.getUuid());
- response.setDomainName(domain.getName());
- response.setDomainPath(domain.getPath());
- }
+ populateOwner(response, group);
response.setObjectName("affinitygroup");
return response;
diff --git
a/server/src/main/java/com/cloud/api/query/dao/AccountJoinDaoImpl.java
b/server/src/main/java/com/cloud/api/query/dao/AccountJoinDaoImpl.java
index 9a301d440a9..de66b80ca55 100644
--- a/server/src/main/java/com/cloud/api/query/dao/AccountJoinDaoImpl.java
+++ b/server/src/main/java/com/cloud/api/query/dao/AccountJoinDaoImpl.java
@@ -32,6 +32,7 @@ import
org.apache.cloudstack.api.response.ResourceLimitAndCountResponse;
import org.apache.cloudstack.api.response.UserResponse;
import com.cloud.api.ApiDBUtils;
+import com.cloud.api.ApiResponseHelper;
import com.cloud.api.query.ViewResponseHelper;
import com.cloud.api.query.vo.AccountJoinVO;
import com.cloud.api.query.vo.UserAccountJoinVO;
@@ -74,9 +75,7 @@ public class AccountJoinDaoImpl extends
GenericDaoBase<AccountJoinVO, Long> impl
accountResponse.setAccountType(account.getType().ordinal());
accountResponse.setDomainId(account.getDomainUuid());
accountResponse.setDomainName(account.getDomainName());
- StringBuilder domainPath = new StringBuilder("ROOT");
-
(domainPath.append(account.getDomainPath())).deleteCharAt(domainPath.length() -
1);
- accountResponse.setDomainPath(domainPath.toString());
+
accountResponse.setDomainPath(ApiResponseHelper.getPrettyDomainPath(account.getDomainPath()));
accountResponse.setState(account.getState().toString());
accountResponse.setCreated(account.getCreated());
accountResponse.setNetworkDomain(account.getNetworkDomain());
diff --git
a/server/src/main/java/com/cloud/api/query/dao/AsyncJobJoinDaoImpl.java
b/server/src/main/java/com/cloud/api/query/dao/AsyncJobJoinDaoImpl.java
index 08b896edb17..10ef67bbbea 100644
--- a/server/src/main/java/com/cloud/api/query/dao/AsyncJobJoinDaoImpl.java
+++ b/server/src/main/java/com/cloud/api/query/dao/AsyncJobJoinDaoImpl.java
@@ -28,6 +28,7 @@ import org.apache.cloudstack.api.ResponseObject;
import org.apache.cloudstack.api.response.AsyncJobResponse;
import org.apache.cloudstack.framework.jobs.AsyncJob;
+import com.cloud.api.ApiResponseHelper;
import com.cloud.api.ApiSerializerHelper;
import com.cloud.api.SerializationContext;
import com.cloud.api.query.vo.AsyncJobJoinVO;
@@ -60,9 +61,7 @@ public class AsyncJobJoinDaoImpl extends
GenericDaoBase<AsyncJobJoinVO, Long> im
jobResponse.setAccountId(job.getAccountUuid());
jobResponse.setAccount(job.getAccountName());
jobResponse.setDomainId(job.getDomainUuid());
- StringBuilder domainPath = new StringBuilder("ROOT");
-
(domainPath.append(job.getDomainPath())).deleteCharAt(domainPath.length() - 1);
- jobResponse.setDomainPath(domainPath.toString());
+
jobResponse.setDomainPath(ApiResponseHelper.getPrettyDomainPath(job.getDomainPath()));
jobResponse.setUserId(job.getUserUuid());
jobResponse.setCmd(job.getCmd());
jobResponse.setCreated(job.getCreated());
diff --git
a/server/src/main/java/com/cloud/api/query/dao/DomainJoinDaoImpl.java
b/server/src/main/java/com/cloud/api/query/dao/DomainJoinDaoImpl.java
index 4a0929744cf..d4865c5550e 100644
--- a/server/src/main/java/com/cloud/api/query/dao/DomainJoinDaoImpl.java
+++ b/server/src/main/java/com/cloud/api/query/dao/DomainJoinDaoImpl.java
@@ -21,6 +21,7 @@ import java.util.EnumSet;
import java.util.List;
+import com.cloud.api.ApiResponseHelper;
import com.cloud.configuration.Resource;
import com.cloud.user.AccountManager;
import org.apache.cloudstack.annotation.AnnotationService;
@@ -79,9 +80,7 @@ public class DomainJoinDaoImpl extends
GenericDaoBase<DomainJoinVO, Long> implem
if (domain.getParentUuid() != null) {
domainResponse.setParentDomainId(domain.getParentUuid());
}
- StringBuilder domainPath = new StringBuilder("ROOT");
- (domainPath.append(domain.getPath())).deleteCharAt(domainPath.length()
- 1);
- domainResponse.setPath(domainPath.toString());
+
domainResponse.setPath(ApiResponseHelper.getPrettyDomainPath(domain.getPath()));
if (domain.getParent() != null) {
domainResponse.setParentDomainName(domain.getParentName());
}
diff --git
a/server/src/main/java/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
b/server/src/main/java/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
index e7e2295923a..2c6c6481661 100644
--- a/server/src/main/java/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
+++ b/server/src/main/java/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
@@ -207,10 +207,6 @@ public class DomainRouterJoinDaoImpl extends
GenericDaoBase<DomainRouterJoinVO,
// populate owner.
ApiResponseHelper.populateOwner(routerResponse, router);
- routerResponse.setDomainId(router.getDomainUuid());
- routerResponse.setDomainName(router.getDomainName());
- routerResponse.setDomainPath(router.getDomainPath());
-
routerResponse.setZoneName(router.getDataCenterName());
routerResponse.setDns1(router.getDns1());
routerResponse.setDns2(router.getDns2());
diff --git
a/server/src/main/java/com/cloud/api/query/dao/ProjectAccountJoinDaoImpl.java
b/server/src/main/java/com/cloud/api/query/dao/ProjectAccountJoinDaoImpl.java
index 7030d32b5fd..5fe428a5a07 100644
---
a/server/src/main/java/com/cloud/api/query/dao/ProjectAccountJoinDaoImpl.java
+++
b/server/src/main/java/com/cloud/api/query/dao/ProjectAccountJoinDaoImpl.java
@@ -23,6 +23,7 @@ import org.springframework.stereotype.Component;
import org.apache.cloudstack.api.response.ProjectAccountResponse;
+import com.cloud.api.ApiResponseHelper;
import com.cloud.api.query.vo.ProjectAccountJoinVO;
import com.cloud.projects.ProjectAccount;
import com.cloud.utils.db.GenericDaoBase;
@@ -59,7 +60,7 @@ public class ProjectAccountJoinDaoImpl extends
GenericDaoBase<ProjectAccountJoin
projectAccountResponse.setRole(proj.getAccountRole().toString());
projectAccountResponse.setDomainId(proj.getDomainUuid());
projectAccountResponse.setDomainName(proj.getDomainName());
- projectAccountResponse.setDomainPath(proj.getDomainPath());
+
projectAccountResponse.setDomainPath(ApiResponseHelper.getPrettyDomainPath(proj.getDomainPath()));
projectAccountResponse.setObjectName("projectaccount");
diff --git
a/server/src/main/java/com/cloud/api/query/dao/ProjectInvitationJoinDaoImpl.java
b/server/src/main/java/com/cloud/api/query/dao/ProjectInvitationJoinDaoImpl.java
index 36eff9093d1..b7f07f668ca 100644
---
a/server/src/main/java/com/cloud/api/query/dao/ProjectInvitationJoinDaoImpl.java
+++
b/server/src/main/java/com/cloud/api/query/dao/ProjectInvitationJoinDaoImpl.java
@@ -23,6 +23,7 @@ import org.springframework.stereotype.Component;
import org.apache.cloudstack.api.response.ProjectInvitationResponse;
+import com.cloud.api.ApiResponseHelper;
import com.cloud.api.query.vo.ProjectInvitationJoinVO;
import com.cloud.projects.ProjectInvitation;
import com.cloud.utils.db.GenericDaoBase;
@@ -65,7 +66,7 @@ public class ProjectInvitationJoinDaoImpl extends
GenericDaoBase<ProjectInvitati
response.setDomainId(invite.getDomainUuid());
response.setDomainName(invite.getDomainName());
- response.setDomainPath(invite.getDomainPath());
+
response.setDomainPath(ApiResponseHelper.getPrettyDomainPath(invite.getDomainPath()));
response.setObjectName("projectinvitation");
return response;
diff --git
a/server/src/main/java/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java
b/server/src/main/java/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java
index 82bcc79aa15..be3d59f8645 100644
--- a/server/src/main/java/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java
+++ b/server/src/main/java/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java
@@ -78,10 +78,6 @@ public class ResourceTagJoinDaoImpl extends
GenericDaoBase<ResourceTagJoinVO, Lo
ApiResponseHelper.populateOwner(response, resourceTag);
- response.setDomainId(resourceTag.getDomainUuid());
- response.setDomainName(resourceTag.getDomainName());
- response.setDomainPath(resourceTag.getDomainPath());
-
response.setCustomer(resourceTag.getCustomer());
}
diff --git
a/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
b/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
index 6fe3d408186..672d83a27b3 100644
--- a/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
+++ b/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
@@ -266,11 +266,6 @@ public class TemplateJoinDaoImpl extends
GenericDaoBaseWithTagInformation<Templa
// populate owner.
ApiResponseHelper.populateOwner(templateResponse, template);
- // populate domain
- templateResponse.setDomainId(template.getDomainUuid());
- templateResponse.setDomainName(template.getDomainName());
- templateResponse.setDomainPath(template.getDomainPath());
-
// If the user is an 'Admin' or 'the owner of template' or template
belongs to a project, add the template download status
if (view == ResponseView.Full ||
template.getAccountId() ==
CallContext.current().getCallingAccount().getId() ||
@@ -415,11 +410,6 @@ public class TemplateJoinDaoImpl extends
GenericDaoBaseWithTagInformation<Templa
// populate owner.
ApiResponseHelper.populateOwner(response, result);
- // populate domain
- response.setDomainId(result.getDomainUuid());
- response.setDomainName(result.getDomainName());
- response.setDomainPath(result.getDomainPath());
-
// set details map
if (result.getDetailName() != null) {
Map<String, String> details = new HashMap<>();
@@ -504,11 +494,6 @@ public class TemplateJoinDaoImpl extends
GenericDaoBaseWithTagInformation<Templa
// populate owner.
ApiResponseHelper.populateOwner(isoResponse, iso);
- // populate domain
- isoResponse.setDomainId(iso.getDomainUuid());
- isoResponse.setDomainName(iso.getDomainName());
- isoResponse.setDomainPath(iso.getDomainPath());
-
Account caller = CallContext.current().getCallingAccount();
boolean isAdmin = false;
if ((caller == null) || _accountService.isAdmin(caller.getId())) {
diff --git
a/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java
b/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java
index 9762fc5ed3e..a2f9544de39 100644
--- a/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java
+++ b/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java
@@ -194,21 +194,13 @@ public class UserVmJoinDaoImpl extends
GenericDaoBaseWithTagInformation<UserVmJo
userVmResponse.setDisplayName(userVm.getName());
}
- if (userVm.getAccountType() == Account.Type.PROJECT) {
- userVmResponse.setProjectId(userVm.getProjectUuid());
- userVmResponse.setProjectName(userVm.getProjectName());
- } else {
- userVmResponse.setAccountName(userVm.getAccountName());
- }
+ ApiResponseHelper.populateOwner(userVmResponse, userVm);
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());
- userVmResponse.setDomainPath(userVm.getDomainPath());
userVmResponse.setCreated(userVm.getCreated());
userVmResponse.setLastUpdated(userVm.getLastUpdated());