@@ -4411,25 +4411,14 @@ public Vlan createVlanAndPublicIpRange(final CreateVlanIpRangeCmd cmd) throws In
44114411 Long physicalNetworkId = cmd .getPhysicalNetworkId ();
44124412
44134413 // Verify that network exists
4414- Network network = null ;
4415- if (networkId != null ) {
4416- network = _networkDao .findById (networkId );
4417- if (network == null ) {
4418- throw new InvalidParameterValueException ("Unable to find network by id " + networkId );
4419- } else {
4420- zoneId = network .getDataCenterId ();
4421- physicalNetworkId = network .getPhysicalNetworkId ();
4422- }
4414+ Network network = getNetwork (networkId );
4415+ if (network != null ) {
4416+ zoneId = network .getDataCenterId ();
4417+ physicalNetworkId = network .getPhysicalNetworkId ();
44234418 }
44244419
44254420 String vlanId = cmd .getVlan ();
4426- if (StringUtils .isBlank (vlanId )) {
4427- vlanId = Vlan .UNTAGGED ;
4428- if (network != null & network .getTrafficType () == TrafficType .Guest ) {
4429- boolean connectivityWithoutVlan = isConnectivityWithoutVlan (network );
4430- vlanId = getNetworkVlanId (network , connectivityWithoutVlan );
4431- }
4432- }
4421+ vlanId = verifyAndUpdateVlanId (vlanId , network );
44334422
44344423 // TODO decide if we should be forgiving or demand a valid and complete URI
44354424 if (!(vlanId == null || "" .equals (vlanId ) || vlanId .startsWith (BroadcastDomainType .Vlan .scheme ()))) {
@@ -4648,6 +4637,32 @@ public Vlan createVlanAndPublicIpRange(final CreateVlanIpRangeCmd cmd) throws In
46484637 ip6Cidr , domain , vlanOwner , network , sameSubnet );
46494638 }
46504639
4640+ private Network getNetwork (Long networkId ) {
4641+ if (networkId == null ) {
4642+ return null ;
4643+ }
4644+
4645+ Network network = _networkDao .findById (networkId );
4646+ if (network == null ) {
4647+ throw new InvalidParameterValueException ("Unable to find network by id " + networkId );
4648+ }
4649+
4650+ return network ;
4651+ }
4652+
4653+ private String verifyAndUpdateVlanId (String vlanId , Network network ) {
4654+ if (!StringUtils .isBlank (vlanId )) {
4655+ return vlanId ;
4656+ }
4657+
4658+ if (network == null || network .getTrafficType () != TrafficType .Guest ) {
4659+ return Vlan .UNTAGGED ;
4660+ }
4661+
4662+ boolean connectivityWithoutVlan = isConnectivityWithoutVlan (network );
4663+ return getNetworkVlanId (network , connectivityWithoutVlan );
4664+ }
4665+
46514666 private Vlan commitVlan (final Long zoneId , final Long podId , final String startIP , final String endIP , final String newVlanGatewayFinal , final String newVlanNetmaskFinal ,
46524667 final String vlanId , final Boolean forVirtualNetwork , final Boolean forSystemVms , final Long networkId , final Long physicalNetworkId , final String startIPv6 , final String endIPv6 ,
46534668 final String ip6Gateway , final String ip6Cidr , final Domain domain , final Account vlanOwner , final Network network , final Pair <Boolean , Pair <String , String >> sameSubnet ) {
0 commit comments