mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
network: allow advanced zones with security groups and VXLAN isolation type (#2693)
Not possible to deploy an Advanced zone with Security Groups, and VXLAN isolation method on KVM. Exception: "Unable to convert network offering with specified id to network profile" is logged.
This commit is contained in:
parent
779649f5ee
commit
a5856a6447
@ -133,9 +133,20 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
|
|||||||
return TrafficTypes;
|
return TrafficTypes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* True for Advanced zones, with VXLAN isolation method and Security Groups enabled
|
||||||
|
*/
|
||||||
|
private boolean isMyIsolationMethodVxlanWithSecurityGroups(NetworkOffering offering, DataCenter dc, PhysicalNetwork physnet) {
|
||||||
|
return dc.getNetworkType().equals(NetworkType.Advanced) &&
|
||||||
|
_networkModel.areServicesSupportedByNetworkOffering(offering.getId(), Service.SecurityGroup) &&
|
||||||
|
physnet.getIsolationMethods().contains("VXLAN");
|
||||||
|
}
|
||||||
|
|
||||||
protected boolean canHandle(NetworkOffering offering, DataCenter dc, PhysicalNetwork physnet) {
|
protected boolean canHandle(NetworkOffering offering, DataCenter dc, PhysicalNetwork physnet) {
|
||||||
// this guru handles only Guest networks in Advance zone with source nat service disabled
|
// this guru handles only Guest networks in Advance zone with source nat service disabled
|
||||||
if (dc.getNetworkType() == NetworkType.Advanced && isMyTrafficType(offering.getTrafficType()) && isMyIsolationMethod(physnet) && offering.getGuestType() == GuestType.Shared
|
boolean vxlanWithSecurityGroups = isMyIsolationMethodVxlanWithSecurityGroups(offering, dc, physnet);
|
||||||
|
if (dc.getNetworkType() == NetworkType.Advanced && isMyTrafficType(offering.getTrafficType()) &&
|
||||||
|
(isMyIsolationMethod(physnet) || vxlanWithSecurityGroups) && offering.getGuestType() == GuestType.Shared
|
||||||
&& !_ntwkOfferingSrvcDao.isProviderForNetworkOffering(offering.getId(), Network.Provider.NuageVsp)
|
&& !_ntwkOfferingSrvcDao.isProviderForNetworkOffering(offering.getId(), Network.Provider.NuageVsp)
|
||||||
&& !_ntwkOfferingSrvcDao.isProviderForNetworkOffering(offering.getId(), Network.Provider.NiciraNvp)) {
|
&& !_ntwkOfferingSrvcDao.isProviderForNetworkOffering(offering.getId(), Network.Provider.NiciraNvp)) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user