@@ -1871,6 +1871,10 @@ public Network createNetwork(CreateNetworkCmd cmd) throws InsufficientCapacityEx
18711871 throw new InvalidParameterValueException ("Cidr size can't be less than " + _cidrLimit );
18721872 }
18731873 }
1874+
1875+ if (cidr != null && networkOfferingIsConfiguredForExternalNetworking (networkOfferingId )) {
1876+ throw new InvalidParameterValueException ("Cannot specify CIDR when using network offering with external firewall!" );
1877+ }
18741878
18751879 Transaction txn = Transaction .currentTxn ();
18761880 txn .start ();
@@ -3112,6 +3116,18 @@ public boolean networkIsConfiguredForExternalNetworking(long zoneId, long networ
31123116 }
31133117 }
31143118
3119+ public boolean networkOfferingIsConfiguredForExternalNetworking (long networkOfferingId ) {
3120+ boolean netscalerInNetworkOffering = isProviderForNetworkOffering (Network .Provider .Netscaler , networkOfferingId );
3121+ boolean juniperInNetworkOffering = isProviderForNetworkOffering (Network .Provider .JuniperSRX , networkOfferingId );
3122+ boolean f5InNetworkOffering = isProviderForNetworkOffering (Network .Provider .F5BigIp , networkOfferingId );
3123+
3124+ if (netscalerInNetworkOffering || juniperInNetworkOffering || f5InNetworkOffering ) {
3125+ return true ;
3126+ } else {
3127+ return false ;
3128+ }
3129+ }
3130+
31153131 @ Override
31163132 public boolean areServicesSupportedByNetworkOffering (long networkOfferingId , Service ... services ) {
31173133 return (_ntwkOfferingSrvcDao .areServicesSupportedByNetworkOffering (networkOfferingId , services ));
@@ -3342,6 +3358,9 @@ public Network updateGuestNetwork(long networkId, String name, String displayTex
33423358 }
33433359
33443360 if (networkOfferingId != oldNetworkOfferingId ) {
3361+ if (network .isSpecifiedCidr () && networkOfferingIsConfiguredForExternalNetworking (networkOfferingId )) {
3362+ throw new InvalidParameterValueException ("Network offering " + networkOffering + " contained external network elements, can't be upgraded from a CIDR specify network!" );
3363+ }
33453364 //check if the network is upgradable
33463365 if (!canUpgrade (oldNetworkOfferingId , networkOfferingId )) {
33473366 throw new InvalidParameterValueException ("Can't upgrade from network offering " + oldNetworkOfferingId + " to " + networkOfferingId + "; check logs for more information" );
@@ -5094,6 +5113,15 @@ public boolean isProviderForNetwork(Provider provider, long networkId) {
50945113 }
50955114 }
50965115
5116+ @ Override
5117+ public boolean isProviderForNetworkOffering (Provider provider , long networkOfferingId ) {
5118+ if (_ntwkOfferingSrvcDao .isProviderForNetworkOffering (networkOfferingId , provider )) {
5119+ return true ;
5120+ } else {
5121+ return false ;
5122+ }
5123+ }
5124+
50975125 @ Override
50985126 public void canProviderSupportServices (Map <Provider , Set <Service >> providersMap ) {
50995127 for (Provider provider : providersMap .keySet ()) {
0 commit comments