Github user remibergsma commented on the pull request:

    https://github.com/apache/cloudstack/pull/1344#issuecomment-172368421
  
    Thanks @DaanHoogland 
    
    FYI this was the conflict after fwd-merge:
    
    ```
    rbergsma[~/git/apache/cloudstack](master)$ git diff
    diff --cc 
engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
    index fa6cd82,5f442b3..0000000
    --- 
a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
    +++ 
b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
    @@@ -168,8 -167,8 +168,9 @@@ import com.cloud.user.Account
      import com.cloud.user.ResourceLimitService;
      import com.cloud.user.User;
      import com.cloud.user.dao.AccountDao;
    + import com.cloud.utils.NumbersUtil;
      import com.cloud.utils.Pair;
     +import com.cloud.utils.UuidUtils;
      import com.cloud.utils.component.AdapterBase;
      import com.cloud.utils.component.ManagerBase;
      import com.cloud.utils.concurrency.NamedThreadFactory;
    @@@ -1025,12 -1021,9 +1029,12 @@@ public class NetworkOrchestrator extend
                  _networksDao.update(network.getId(), network);
                  implemented.set(guru, network);
                  return implemented;
    -         } catch (NoTransitionException e) {
    +         } catch (final NoTransitionException e) {
                  s_logger.error(e.getMessage());
                  return null;
     +        } catch (CloudRuntimeException e) {
     +            s_logger.error("Caught exception: " + e.getMessage());
     +            return null;
              } finally {
                  if (implemented.first() == null) {
                      s_logger.debug("Cleaning up because we're unable to 
implement the network " + network);
    @@@ -1922,35 -1915,33 +1926,65 @@@
                      throw new InvalidParameterValueException("The VLAN tag " 
+ vlanId + " is already being used for dynamic vlan allocation for the guest 
network in zone "
                              + zone.getName());
                  }
    ++<<<<<<< HEAD
     +            if (! UuidUtils.validateUUID(vlanId)){
     +                String uri = 
BroadcastDomainType.fromString(vlanId).toString();
     +                // For Isolated networks, don't allow to create network 
with vlan that already exists in the zone
     +                if (ntwkOff.getGuestType() == GuestType.Isolated) {
     +                    if (_networksDao.countByZoneAndUri(zoneId, uri) > 0) {
     +                        throw new InvalidParameterValueException("Network 
with vlan " + vlanId + " already exists in zone " + zoneId);
     +                    } else {
     +                        List<DataCenterVnetVO> dcVnets = 
_datacenterVnetDao.findVnet(zoneId, vlanId.toString());
     +                        //for the network that is created as part of 
private gateway,
     +                        //the vnet is not coming from the data center 
vnet table, so the list can be empty
     +                        if (!dcVnets.isEmpty()) {
     +                            DataCenterVnetVO dcVnet = dcVnets.get(0);
     +                            // Fail network creation if specified vlan is 
dedicated to a different account
     +                            if (dcVnet.getAccountGuestVlanMapId() != 
null) {
     +                                Long accountGuestVlanMapId = 
dcVnet.getAccountGuestVlanMapId();
     +                                AccountGuestVlanMapVO map = 
_accountGuestVlanMapDao.findById(accountGuestVlanMapId);
     +                                if (map.getAccountId() != 
owner.getAccountId()) {
     +                                    throw new 
InvalidParameterValueException("Vlan " + vlanId + " is dedicated to a different 
account");
     +                                }
     +                                // Fail network creation if owner has a 
dedicated range of vlans but the specified vlan belongs to the system pool
     +                            } else {
     +                                List<AccountGuestVlanMapVO> maps = 
_accountGuestVlanMapDao.listAccountGuestVlanMapsByAccount(owner.getAccountId());
     +                                if (maps != null && !maps.isEmpty()) {
     +                                    int vnetsAllocatedToAccount = 
_datacenterVnetDao.countVnetsAllocatedToAccount(zoneId, owner.getAccountId());
     +                                    int vnetsDedicatedToAccount = 
_datacenterVnetDao.countVnetsDedicatedToAccount(zoneId, owner.getAccountId());
     +                                    if (vnetsAllocatedToAccount < 
vnetsDedicatedToAccount) {
     +                                        throw new 
InvalidParameterValueException("Specified vlan " + vlanId + " doesn't belong" + 
" to the vlan range dedicated to the owner "
     +                                                + owner.getAccountName());
     +                                    }
    ++=======
    +             final String uri = 
BroadcastDomainType.fromString(vlanId).toString();
    +             // For Isolated networks, don't allow to create network with 
vlan that already exists in the zone
    +             if (ntwkOff.getGuestType() == GuestType.Isolated) {
    +                 if (_networksDao.countByZoneAndUri(zoneId, uri) > 0) {
    +                     throw new InvalidParameterValueException("Network 
with vlan " + vlanId + " already exists in zone " + zoneId);
    +                 } else {
    +                     final List<DataCenterVnetVO> dcVnets = 
_datacenterVnetDao.findVnet(zoneId, vlanId.toString());
    +                     //for the network that is created as part of private 
gateway,
    +                     //the vnet is not coming from the data center vnet 
table, so the list can be empty
    +                     if (!dcVnets.isEmpty()) {
    +                         final DataCenterVnetVO dcVnet = dcVnets.get(0);
    +                         // Fail network creation if specified vlan is 
dedicated to a different account
    +                         if (dcVnet.getAccountGuestVlanMapId() != null) {
    +                             final Long accountGuestVlanMapId = 
dcVnet.getAccountGuestVlanMapId();
    +                             final AccountGuestVlanMapVO map = 
_accountGuestVlanMapDao.findById(accountGuestVlanMapId);
    +                             if (map.getAccountId() != 
owner.getAccountId()) {
    +                                 throw new 
InvalidParameterValueException("Vlan " + vlanId + " is dedicated to a different 
account");
    +                             }
    +                             // Fail network creation if owner has a 
dedicated range of vlans but the specified vlan belongs to the system pool
    +                         } else {
    +                             final List<AccountGuestVlanMapVO> maps = 
_accountGuestVlanMapDao.listAccountGuestVlanMapsByAccount(owner.getAccountId());
    +                             if (maps != null && !maps.isEmpty()) {
    +                                 final int vnetsAllocatedToAccount = 
_datacenterVnetDao.countVnetsAllocatedToAccount(zoneId, owner.getAccountId());
    +                                 final int vnetsDedicatedToAccount = 
_datacenterVnetDao.countVnetsDedicatedToAccount(zoneId, owner.getAccountId());
    +                                 if (vnetsAllocatedToAccount < 
vnetsDedicatedToAccount) {
    +                                     throw new 
InvalidParameterValueException("Specified vlan " + vlanId + " doesn't belong" + 
" to the vlan range dedicated to the owner "
    +                                             + owner.getAccountName());
    ++>>>>>>> 4.7
                                      }
                                  }
                              }
    @@@ -2051,14 -2042,7 +2085,18 @@@
      
                      if (vlanIdFinal != null) {
                          if (isolatedPvlan == null) {
    ++<<<<<<< HEAD
     +                        URI uri = null;
     +                        if (UuidUtils.validateUUID(vlanIdFinal)){
     +                            //Logical router's UUID provided as VLAN_ID
     +                            userNetwork.setVlanIdAsUUID(vlanIdFinal); 
//Set transient field
     +                        }
     +                        else {
     +                            uri = 
BroadcastDomainType.fromString(vlanIdFinal);
     +                        }
    ++=======
    +                         final URI uri = 
BroadcastDomainType.fromString(vlanIdFinal);
    ++>>>>>>> 4.7
                              userNetwork.setBroadcastUri(uri);
                              if (!vlanIdFinal.equalsIgnoreCase(Vlan.UNTAGGED)) 
{
                                  
userNetwork.setBroadcastDomainType(BroadcastDomainType.Vlan);
    rbergsma[~/git/apache/cloudstack](master)$ 
    ```
    
    I'll run a test suite on this PR.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to