Skip to content

Commit 3f86092

Browse files
authored
Refactor ListProjectRolesCmd to improve project handling
1 parent 86e0552 commit 3f86092

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

api/src/main/java/org/apache/cloudstack/api/command/admin/acl/project/ListProjectRolesCmd.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,14 @@ public String getRoleName() {
7272

7373
@Override
7474
public void execute() {
75-
if (getProjectId() != null && _projectService.getProject(getProjectId()) == null) {
76-
throw new InvalidParameterValueException("Failed to find project by ID.");
75+
Project project = null;
76+
if (getProjectId() != null && getProjectId() > 0) {
77+
project = _projectService.getProject(getProjectId());
78+
if (project == null) {
79+
throw new InvalidParameterValueException("Unable to find project by ID.");
80+
}
7781
}
82+
final String projectUuid = project != null ? project.getUuid() : null;
7883
List<ProjectRole> projectRoles;
7984
if (getProjectId() != null && getProjectRoleId() != null) {
8085
projectRoles = Collections.singletonList(projRoleService.findProjectRole(getProjectRoleId(), getProjectId()));
@@ -89,17 +94,17 @@ public void execute() {
8994
if (role == null) {
9095
continue;
9196
}
92-
roleResponses.add(setupProjectRoleResponse(role));
97+
roleResponses.add(setupProjectRoleResponse(role, projectUuid));
9398
}
9499
response.setResponses(roleResponses);
95100
response.setResponseName(getCommandName());
96101
setResponseObject(response);
97102
}
98103

99-
private ProjectRoleResponse setupProjectRoleResponse(final ProjectRole role) {
104+
private ProjectRoleResponse setupProjectRoleResponse(final ProjectRole role, final String projectUuid) {
100105
final ProjectRoleResponse response = new ProjectRoleResponse();
101106
response.setId(role.getUuid());
102-
response.setProjectId(_projectService.getProject(role.getProjectId()).getUuid());
107+
response.setProjectId(projectUuid);
103108
response.setRoleName(role.getName());
104109
response.setDescription(role.getDescription());
105110
response.setObjectName("projectrole");
@@ -111,3 +116,4 @@ public long getEntityOwnerId() {
111116
return CallContext.current().getCallingAccountId();
112117
}
113118
}
119+
}

0 commit comments

Comments
 (0)