Skip to content

Commit 9ae56ff

Browse files
committed
query ListCapabilitiesCmd by domainId
1 parent 6117774 commit 9ae56ff

File tree

4 files changed

+24
-3
lines changed

4 files changed

+24
-3
lines changed

api/src/main/java/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
import org.apache.cloudstack.api.APICommand;
2222
import org.apache.cloudstack.api.ApiConstants;
2323
import org.apache.cloudstack.api.BaseCmd;
24+
import org.apache.cloudstack.api.Parameter;
2425
import org.apache.cloudstack.api.response.CapabilitiesResponse;
26+
import org.apache.cloudstack.api.response.DomainResponse;
2527
import org.apache.cloudstack.config.ApiServiceConfiguration;
2628

2729
import com.cloud.user.Account;
@@ -30,12 +32,22 @@
3032
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
3133
public class ListCapabilitiesCmd extends BaseCmd {
3234

35+
@Parameter(name = ApiConstants.DOMAIN_ID,
36+
type = CommandType.UUID,
37+
entityType = DomainResponse.class,
38+
description = "the domain for listing capabilities.",
39+
since = "4.20.3")
40+
private Long domainId;
3341

3442
@Override
3543
public long getEntityOwnerId() {
3644
return Account.ACCOUNT_ID_SYSTEM;
3745
}
3846

47+
public Long getDomainId() {
48+
return domainId;
49+
}
50+
3951
@Override
4052
public void execute() {
4153
Map<String, Object> capabilities = _mgr.listCapabilities(this);

server/src/main/java/com/cloud/server/ManagementServerImpl.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -719,6 +719,7 @@
719719
import com.cloud.deploy.DeploymentPlanner;
720720
import com.cloud.deploy.DeploymentPlanner.ExcludeList;
721721
import com.cloud.deploy.DeploymentPlanningManager;
722+
import com.cloud.domain.Domain;
722723
import com.cloud.domain.DomainVO;
723724
import com.cloud.domain.dao.DomainDao;
724725
import com.cloud.event.ActionEvent;
@@ -4692,6 +4693,14 @@ public Map<String, Object> listCapabilities(final ListCapabilitiesCmd cmd) {
46924693
final Map<String, Object> capabilities = new HashMap<>();
46934694

46944695
final Account caller = getCaller();
4696+
Long domainId = cmd.getDomainId();
4697+
if (domainId == null) {
4698+
domainId = caller.getDomainId();
4699+
} else {
4700+
Domain domain = _domainDao.findById(domainId);
4701+
_accountService.checkAccess(caller, domain);
4702+
}
4703+
46954704
final boolean isCallerRootAdmin = _accountService.isRootAdmin(caller.getId());
46964705
final boolean isCallerAdmin = isCallerRootAdmin || _accountService.isAdmin(caller.getId());
46974706
boolean securityGroupsEnabled = false;
@@ -4726,7 +4735,7 @@ public Map<String, Object> listCapabilities(final ListCapabilitiesCmd cmd) {
47264735
final boolean allowUserExpungeRecoverVolume = (VolumeApiServiceImpl.AllowUserExpungeRecoverVolume.valueIn(caller.getId()) | isCallerAdmin);
47274736
final boolean allowUserForceStopVM = (UserVmManager.AllowUserForceStopVm.valueIn(caller.getId()) | isCallerAdmin);
47284737

4729-
final boolean allowUserViewAllDomainAccounts = (QueryService.AllowUserViewAllDomainAccounts.valueIn(caller.getDomainId()));
4738+
final boolean allowUserViewAllDomainAccounts = (QueryService.AllowUserViewAllDomainAccounts.valueIn(domainId));
47304739

47314740
final boolean kubernetesServiceEnabled = Boolean.parseBoolean(_configDao.getValue("cloud.kubernetes.service.enabled"));
47324741
final boolean kubernetesClusterExperimentalFeaturesEnabled = Boolean.parseBoolean(_configDao.getValue("cloud.kubernetes.cluster.experimental.features.enabled"));
@@ -4779,7 +4788,6 @@ public Map<String, Object> listCapabilities(final ListCapabilitiesCmd cmd) {
47794788
}
47804789
capabilities.put(ApiConstants.ADDITONAL_CONFIG_ENABLED, UserVmManager.EnableAdditionalVmConfig.valueIn(caller.getId()));
47814790

4782-
Long domainId = caller.getDomainId();
47834791
Map<String, Object> vpnParams = getVpnCustomerGatewayParameters(domainId);
47844792
if (!vpnParams.isEmpty()) {
47854793
capabilities.put(ApiConstants.VPN_CUSTOMER_GATEWAY_PARAMETERS, vpnParams);

ui/src/views/network/UpdateVpnCustomerGateway.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export default {
4949
return {
5050
id: this.resource.id,
5151
name: this.resource.name,
52+
domainid: this.resource.domainid,
5253
gateway: this.resource.gateway,
5354
cidrlist: this.resource.cidrlist,
5455
ipsecpsk: this.resource.ipsecpsk,

ui/src/views/network/VpnCustomerGateway.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ export default {
497497
498498
this.loadingParameters = true
499499
500-
const response = await getAPI('listCapabilities')
500+
const response = await getAPI('listCapabilities', { domainid: this.initialValues.domainid })
501501
const capability = response.listcapabilitiesresponse?.capability || {}
502502
const parameters = capability.vpncustomergatewayparameters || {}
503503

0 commit comments

Comments
 (0)