Skip to content

Commit fe98a09

Browse files
committed
Add a periodic task to generate alerts/events for vpn gateways using obsolete/excluded parameters
1 parent 313dcdc commit fe98a09

File tree

10 files changed

+207
-95
lines changed

10 files changed

+207
-95
lines changed

api/src/main/java/com/cloud/event/EventTypes.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,7 @@ public class EventTypes {
503503
public static final String EVENT_S2S_VPN_CUSTOMER_GATEWAY_CREATE = "VPN.S2S.CUSTOMER.GATEWAY.CREATE";
504504
public static final String EVENT_S2S_VPN_CUSTOMER_GATEWAY_DELETE = "VPN.S2S.CUSTOMER.GATEWAY.DELETE";
505505
public static final String EVENT_S2S_VPN_CUSTOMER_GATEWAY_UPDATE = "VPN.S2S.CUSTOMER.GATEWAY.UPDATE";
506+
public static final String EVENT_S2S_VPN_GATEWAY_OBSOLETE_PARAMS = "VPN.S2S.GATEWAY.OBSOLETE.PARAMS";
506507
public static final String EVENT_S2S_VPN_CONNECTION_CREATE = "VPN.S2S.CONNECTION.CREATE";
507508
public static final String EVENT_S2S_VPN_CONNECTION_DELETE = "VPN.S2S.CONNECTION.DELETE";
508509
public static final String EVENT_S2S_VPN_CONNECTION_RESET = "VPN.S2S.CONNECTION.RESET";
@@ -1151,6 +1152,7 @@ public class EventTypes {
11511152
entityEventDetails.put(EVENT_S2S_VPN_CUSTOMER_GATEWAY_CREATE, Site2SiteCustomerGateway.class);
11521153
entityEventDetails.put(EVENT_S2S_VPN_CUSTOMER_GATEWAY_DELETE, Site2SiteCustomerGateway.class);
11531154
entityEventDetails.put(EVENT_S2S_VPN_CUSTOMER_GATEWAY_UPDATE, Site2SiteCustomerGateway.class);
1155+
entityEventDetails.put(EVENT_S2S_VPN_GATEWAY_OBSOLETE_PARAMS, Site2SiteCustomerGateway.class);
11541156
entityEventDetails.put(EVENT_S2S_VPN_CONNECTION_CREATE, Site2SiteVpnConnection.class);
11551157
entityEventDetails.put(EVENT_S2S_VPN_CONNECTION_DELETE, Site2SiteVpnConnection.class);
11561158
entityEventDetails.put(EVENT_S2S_VPN_CONNECTION_RESET, Site2SiteVpnConnection.class);

api/src/main/java/org/apache/cloudstack/alert/AlertService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ private AlertType(short type, String name, boolean isDefault) {
7474
public static final AlertType ALERT_TYPE_VR_PUBLIC_IFACE_MTU = new AlertType((short)32, "ALERT.VR.PUBLIC.IFACE.MTU", true);
7575
public static final AlertType ALERT_TYPE_VR_PRIVATE_IFACE_MTU = new AlertType((short)32, "ALERT.VR.PRIVATE.IFACE.MTU", true);
7676
public static final AlertType ALERT_TYPE_EXTENSION_PATH_NOT_READY = new AlertType((short)33, "ALERT.TYPE.EXTENSION.PATH.NOT.READY", true);
77+
public static final AlertType ALERT_TYPE_VPN_GATEWAY_OBSOLETE_PARAMETERS = new AlertType((short)34, "ALERT.S2S.VPN.GATEWAY.OBSOLETE.PARAMETERS", true);
7778
public static final AlertType ALERT_TYPE_BACKUP_STORAGE = new AlertType(Capacity.CAPACITY_TYPE_BACKUP_STORAGE, "ALERT.STORAGE.BACKUP", true);
7879
public static final AlertType ALERT_TYPE_OBJECT_STORAGE = new AlertType(Capacity.CAPACITY_TYPE_OBJECT_STORAGE, "ALERT.STORAGE.OBJECT", true);
7980

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1364,8 +1364,8 @@ public class ApiConstants {
13641364
public static final String RECURSIVE_DOMAINS = "recursivedomains";
13651365

13661366
public static final String VPN_CUSTOMER_GATEWAY_PARAMETERS = "vpncustomergatewayparameters";
1367-
public static final String CONTAINS_OBSOLETE_PARAMETERS = "containsobsoleteparameters";
1368-
public static final String CONTAINS_EXCLUDED_PARAMETERS = "containsexcludedparameters";
1367+
public static final String OBSOLETE_PARAMETERS = "obsoleteparameters";
1368+
public static final String EXCLUDED_PARAMETERS = "excludedparameters";
13691369

13701370
/**
13711371
* This enum specifies IO Drivers, each option controls specific policies on I/O.

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,13 @@ 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;
117+
@SerializedName(ApiConstants.OBSOLETE_PARAMETERS)
118+
@Param(description = "Contains the list of obsolete/insecure cryptographic parameters that the vpn customer gateway is using.", since = "4.23.0")
119+
private String obsoleteParameters;
120120

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;
121+
@SerializedName(ApiConstants.EXCLUDED_PARAMETERS)
122+
@Param(description = "Contains the list of excluded/not allowed cryptographic parameters that the vpn customer gateway is using.", since = "4.23.0")
123+
private String excludedParameters;
124124

125125
public void setId(String id) {
126126
this.id = id;
@@ -210,12 +210,12 @@ public void setDomainPath(String domainPath) {
210210
this.domainPath = domainPath;
211211
}
212212

213-
public void setContainsObsoleteParameters(Boolean containsObsoleteAlgorithms) {
214-
this.containsObsoleteAlgorithms = containsObsoleteAlgorithms;
213+
public void setContainsObsoleteParameters(String obsoleteParameters) {
214+
this.obsoleteParameters = obsoleteParameters;
215215
}
216216

217-
public void setContainsExcludedParameters(Boolean containsExcludedAlgorithms) {
218-
this.containsExcludedAlgorithms = containsExcludedAlgorithms;
217+
public void setContainsExcludedParameters(String excludedParameters) {
218+
this.excludedParameters = excludedParameters;
219219
}
220220

221221
}

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3887,8 +3887,16 @@ public Site2SiteCustomerGatewayResponse createSite2SiteCustomerGatewayResponse(S
38873887
response.setRemoved(result.getRemoved());
38883888
response.setIkeVersion(result.getIkeVersion());
38893889
response.setSplitConnections(result.getSplitConnections());
3890-
response.setContainsExcludedParameters(site2SiteVpnManager.vpnGatewayContainsExcludedParameters(result));
3891-
response.setContainsObsoleteParameters(site2SiteVpnManager.vpnGatewayContainsObsoleteParameters(result));
3890+
3891+
Set<String> obsoleteParameters = site2SiteVpnManager.getObsoleteVpnGatewayParameters(result);
3892+
if (!obsoleteParameters.isEmpty()) {
3893+
response.setContainsObsoleteParameters(obsoleteParameters.toString());
3894+
}
3895+
Set<String> excludedParameters = site2SiteVpnManager.getExcludedVpnGatewayParameters(result);
3896+
if (!excludedParameters.isEmpty()) {
3897+
response.setContainsExcludedParameters(excludedParameters.toString());
3898+
}
3899+
38923900
response.setObjectName("vpncustomergateway");
38933901
response.setHasAnnotation(annotationDao.hasAnnotations(result.getUuid(), AnnotationService.EntityType.VPN_CUSTOMER_GATEWAY.name(),
38943902
_accountMgr.isRootAdmin(CallContext.current().getCallingAccount().getId())));

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,16 @@
1717
package com.cloud.network.vpn;
1818

1919
import java.util.List;
20+
import java.util.Set;
2021

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

2526
public interface Site2SiteVpnManager extends Site2SiteVpnService {
26-
boolean vpnGatewayContainsExcludedParameters(Site2SiteCustomerGateway customerGateway);
27+
Set<String> getExcludedVpnGatewayParameters(Site2SiteCustomerGateway customerGw);
2728

28-
boolean vpnGatewayContainsObsoleteParameters(Site2SiteCustomerGateway customerGateway);
29+
Set<String> getObsoleteVpnGatewayParameters(Site2SiteCustomerGateway customerGw);
2930

3031
boolean cleanupVpnConnectionByVpc(long vpcId);
3132

0 commit comments

Comments
 (0)