Skip to content

Commit 6f995fb

Browse files
committed
Api changes to mark cryptographic parameters are excluded/obsolete
1 parent d26122b commit 6f995fb

File tree

9 files changed

+281
-12
lines changed

9 files changed

+281
-12
lines changed

api/src/main/java/org/apache/cloudstack/api/ApiConstants.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,6 +1194,10 @@ public class ApiConstants {
11941194
"value will be applied.";
11951195
public static final String VMWARE_DC = "vmwaredc";
11961196

1197+
public static final String VPN_CUSTOMER_GATEWAY_PARAMETERS = "vpncustomergatewayparameters";
1198+
public static final String CONTAINS_OBSOLETE_PARAMETERS = "containsobsoleteparameters";
1199+
public static final String CONTAINS_EXCLUDED_PARAMETERS = "containsexcludedparameters";
1200+
11971201
/**
11981202
* This enum specifies IO Drivers, each option controls specific policies on I/O.
11991203
* Qemu guests support "threads" and "native" options Since 0.8.8 ; "io_uring" is supported Since 6.3.0 (QEMU 5.0).

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ public void execute() {
7474
response.setSharedFsVmMinRamSize((Integer)capabilities.get(ApiConstants.SHAREDFSVM_MIN_RAM_SIZE));
7575
response.setDynamicScalingEnabled((Boolean) capabilities.get(ApiConstants.DYNAMIC_SCALING_ENABLED));
7676
response.setAdditionalConfigEnabled((Boolean) capabilities.get(ApiConstants.ADDITONAL_CONFIG_ENABLED));
77+
if (capabilities.containsKey(ApiConstants.VPN_CUSTOMER_GATEWAY_PARAMETERS)) {
78+
Map<String, Object> vpnCustomerGatewayParameters = (Map<String, Object>) capabilities.get(ApiConstants.VPN_CUSTOMER_GATEWAY_PARAMETERS);
79+
response.setVpnCustomerGatewayParameters(vpnCustomerGatewayParameters);
80+
}
7781
response.setObjectName("capability");
7882
response.setResponseName(getCommandName());
7983
this.setResponseObject(response);

api/src/main/java/org/apache/cloudstack/api/response/CapabilitiesResponse.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
// under the License.
1717
package org.apache.cloudstack.api.response;
1818

19+
import java.util.Map;
20+
1921
import org.apache.cloudstack.api.ApiConstants;
2022
import org.apache.cloudstack.api.BaseResponse;
2123

@@ -144,6 +146,10 @@ public class CapabilitiesResponse extends BaseResponse {
144146
@Param(description = "true if additional configurations or extraconfig can be passed to Instances", since = "4.20.2")
145147
private Boolean additionalConfigEnabled;
146148

149+
@SerializedName(ApiConstants.VPN_CUSTOMER_GATEWAY_PARAMETERS)
150+
@Param(description = "Excluded and obsolete VPN customer gateway cryptographic parameters")
151+
private Map<String, Object> vpnCustomerGatewayParameters;
152+
147153
public void setSecurityGroupsEnabled(boolean securityGroupsEnabled) {
148154
this.securityGroupsEnabled = securityGroupsEnabled;
149155
}
@@ -263,4 +269,8 @@ public void setDynamicScalingEnabled(Boolean dynamicScalingEnabled) {
263269
public void setAdditionalConfigEnabled(Boolean additionalConfigEnabled) {
264270
this.additionalConfigEnabled = additionalConfigEnabled;
265271
}
272+
273+
public void setVpnCustomerGatewayParameters(Map<String, Object> vpnCustomerGatewayParameters) {
274+
this.vpnCustomerGatewayParameters = vpnCustomerGatewayParameters;
275+
}
266276
}

api/src/main/java/org/apache/cloudstack/api/response/Site2SiteCustomerGatewayResponse.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,14 @@ public class Site2SiteCustomerGatewayResponse extends BaseResponseWithAnnotation
114114
@Param(description = "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike")
115115
private String ikeVersion;
116116

117+
@SerializedName(ApiConstants.CONTAINS_OBSOLETE_PARAMETERS)
118+
@Param(description = "Whether the vpn customer gateway contains obsolete parameters. The listCapabilities api can be used to determine which parameters are obsolete.")
119+
private Boolean containsObsoleteAlgorithms;
120+
121+
@SerializedName(ApiConstants.CONTAINS_EXCLUDED_PARAMETERS)
122+
@Param(description = "Whether the vpn customer gateway contains excluded parameters. The listCapabilities api can be used to determine which parameters are excluded.")
123+
private Boolean containsExcludedAlgorithms;
124+
117125
public void setId(String id) {
118126
this.id = id;
119127
}
@@ -202,4 +210,12 @@ public void setDomainPath(String domainPath) {
202210
this.domainPath = domainPath;
203211
}
204212

213+
public void setContainsObsoleteParameters(Boolean containsObsoleteAlgorithms) {
214+
this.containsObsoleteAlgorithms = containsObsoleteAlgorithms;
215+
}
216+
217+
public void setContainsExcludedParameters(Boolean containsExcludedAlgorithms) {
218+
this.containsExcludedAlgorithms = containsExcludedAlgorithms;
219+
}
220+
205221
}

server/src/main/java/com/cloud/api/ApiResponseHelper.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import com.cloud.dc.dao.ASNumberRangeDao;
4949
import com.cloud.dc.dao.VlanDetailsDao;
5050
import com.cloud.hypervisor.Hypervisor;
51+
import com.cloud.network.vpn.Site2SiteVpnManager;
5152
import com.cloud.storage.BucketVO;
5253
import org.apache.cloudstack.acl.ControlledEntity;
5354
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
@@ -521,6 +522,8 @@ public class ApiResponseHelper implements ResponseGenerator {
521522
BgpPeerDao bgpPeerDao;
522523
@Inject
523524
RoutedIpv4Manager routedIpv4Manager;
525+
@Inject
526+
Site2SiteVpnManager site2SiteVpnManager;
524527

525528
@Override
526529
public UserResponse createUserResponse(User user) {
@@ -3821,6 +3824,8 @@ public Site2SiteCustomerGatewayResponse createSite2SiteCustomerGatewayResponse(S
38213824
response.setRemoved(result.getRemoved());
38223825
response.setIkeVersion(result.getIkeVersion());
38233826
response.setSplitConnections(result.getSplitConnections());
3827+
response.setContainsExcludedParameters(site2SiteVpnManager.vpnGatewayContainsExcludedParameters(result));
3828+
response.setContainsObsoleteParameters(site2SiteVpnManager.vpnGatewayContainsObsoleteParameters(result));
38243829
response.setObjectName("vpncustomergateway");
38253830
response.setHasAnnotation(annotationDao.hasAnnotations(result.getUuid(), AnnotationService.EntityType.VPN_CUSTOMER_GATEWAY.name(),
38263831
_accountMgr.isRootAdmin(CallContext.current().getCallingAccount().getId())));

server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManager.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,15 @@
1818

1919
import java.util.List;
2020

21+
import com.cloud.network.Site2SiteCustomerGateway;
2122
import com.cloud.network.dao.Site2SiteVpnConnectionVO;
2223
import com.cloud.vm.DomainRouterVO;
2324

2425
public interface Site2SiteVpnManager extends Site2SiteVpnService {
26+
boolean vpnGatewayContainsExcludedParameters(Site2SiteCustomerGateway customerGateway);
27+
28+
boolean vpnGatewayContainsObsoleteParameters(Site2SiteCustomerGateway customerGateway);
29+
2530
boolean cleanupVpnConnectionByVpc(long vpcId);
2631

2732
boolean cleanupVpnGatewayByVpc(long vpcId);

0 commit comments

Comments
 (0)