[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-9403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15870496#comment-15870496
 ] 

ASF GitHub Bot commented on CLOUDSTACK-9403:
--------------------------------------------

Github user mike-tutkowski commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r101596817
  
    --- Diff: server/src/com/cloud/configuration/ConfigurationManagerImpl.java 
---
    @@ -2909,51 +2911,21 @@ public Vlan doInTransaction(final TransactionStatus 
status) {
             String vlanGateway = null;
             String vlanNetmask = null;
             boolean sameSubnet = false;
    -        if (vlans != null && vlans.size() > 0) {
    +        if (CollectionUtils.isNotEmpty(vlans)) {
                 for (final VlanVO vlan : vlans) {
    -                if (ipv4) {
    -                    vlanGateway = vlan.getVlanGateway();
    -                    vlanNetmask = vlan.getVlanNetmask();
    -                    // check if subset or super set or neither.
    -                    final NetUtils.SupersetOrSubset val = 
checkIfSubsetOrSuperset(newVlanGateway, newVlanNetmask, vlan, startIP, endIP);
    -                    if (val == NetUtils.SupersetOrSubset.isSuperset) {
    -                        // this means that new cidr is a superset of the
    -                        // existing subnet.
    -                        throw new InvalidParameterValueException("The 
subnet you are trying to add is a superset of the existing subnet having 
gateway" + vlan.getVlanGateway()
    -                                + " and netmask  " + 
vlan.getVlanNetmask());
    -                    } else if (val == 
NetUtils.SupersetOrSubset.neitherSubetNorSuperset) {
    -                        // this implies the user is trying to add a new 
subnet
    -                        // which is not a superset or subset of this 
subnet.
    -                        // checking with the other subnets.
    -                        continue;
    -                    } else if (val == NetUtils.SupersetOrSubset.isSubset) {
    -                        // this means he is trying to add to the same 
subnet.
    -                        throw new InvalidParameterValueException("The 
subnet you are trying to add is a subset of the existing subnet having gateway" 
+ vlan.getVlanGateway()
    -                                + " and netmask  " + 
vlan.getVlanNetmask());
    -                    } else if (val == 
NetUtils.SupersetOrSubset.sameSubnet) {
    -                        sameSubnet = true;
    -                        //check if the gateway provided by the user is 
same as that of the subnet.
    -                        if (newVlanGateway != null && 
!newVlanGateway.equals(vlanGateway)) {
    -                            throw new InvalidParameterValueException("The 
gateway of the subnet should be unique. The subnet alreaddy has a gateway " + 
vlanGateway);
    -                        }
    -                        break;
    -                    }
    -                }
    -                if (ipv6) {
    -                    if (ip6Gateway != null && 
!ip6Gateway.equals(network.getIp6Gateway())) {
    -                        throw new InvalidParameterValueException("The 
input gateway " + ip6Gateway + " is not same as network gateway " + 
network.getIp6Gateway());
    -                    }
    -                    if (ip6Cidr != null && 
!ip6Cidr.equals(network.getIp6Cidr())) {
    -                        throw new InvalidParameterValueException("The 
input cidr " + ip6Cidr + " is not same as network ciddr " + 
network.getIp6Cidr());
    -                    }
    -                    ip6Gateway = network.getIp6Gateway();
    -                    ip6Cidr = network.getIp6Cidr();
    -                    _networkModel.checkIp6Parameters(startIPv6, endIPv6, 
ip6Gateway, ip6Cidr);
    -                    sameSubnet = true;
    -                }
    +                vlanGateway = vlan.getVlanGateway();
    +                vlanNetmask = vlan.getVlanNetmask();
    +                sameSubnet = hasSameSubnet(ipv4, vlanGateway, vlanNetmask, 
newVlanGateway, newVlanNetmask, startIP, endIP,
    +                        ipv6, ip6Gateway, ip6Cidr, startIPv6, endIPv6, 
network);
    +                if (sameSubnet) break;
                 }
    +        } else {
    +            vlanGateway = network.getGateway();
    +            vlanNetmask = NetUtils.getCidrNetmask(network.getCidr());
    --- End diff --
    
    I believe this is the root of the following blocker for 4.10: 
https://issues.apache.org/jira/browse/CLOUDSTACK-9790


> Nuage VSP Plugin : Support for SharedNetwork fuctionality including Marvin 
> test coverage
> ----------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-9403
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9403
>             Project: CloudStack
>          Issue Type: Task
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>          Components: Automation, Network Controller
>            Reporter: Rahul Singal
>            Assignee: Nick Livens
>
> This is first phase of support of Shared Network in cloudstack through 
> NuageVsp Network Plugin. A shared network is a type of virtual network that 
> is shared between multiple accounts i.e. a shared network can be accessed by 
> virtual machines that belong to many different accounts. This basic 
> functionality will be supported with the below common use case:
> - shared network can be used for monitoring purposes. A shared network can be 
> assigned to a domain and can be used for monitoring VMs  belonging to all 
> accounts in that domain.
> - Public accessible of shared Network.
> With the current implementation with NuageVsp plugin, It support over-lapping 
> of Ip address, Public Access and also adding Ip ranges in shared Network.
> In VSD, it is implemented in below manner:
> - In order to have tenant isolation for shared networks, we will have to 
> create a Shared L3 Subnet for each shared network, and instantiate it across 
> the relevant enterprises. A shared network will only exist under an 
> enterprise when it is needed, so when the first VM is spinned under that ACS 
> domain inside that shared network.
> - For public shared Network it will also create a floating ip subnet pool in 
> VSD along with all the things mentioned in above point.
> PR contents:
> 1) Support for shared networks with tenant isolation on master with Nuage VSP 
> SDN Plugin.
> 2) Support of shared network with publicly accessible ip ranges.  
> 2) Marvin test coverage for shared networks on master with Nuage VSP SDN 
> Plugin.
> 3) Enhancements on our exiting Marvin test code (nuagevsp plugins directory).
> 4) PEP8 & PyFlakes compliance with our Marvin test code.
> Test Results are:-
> Valiate that ROOT admin is NOT able to deploy a VM for a user in ROOT domain 
> in a shared network with ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_account_ROOTuser | Status : 
> SUCCESS ===
> ok
> Valiate that ROOT admin is NOT able to deploy a VM for a admin user in a 
> shared network with ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_account_differentdomain | 
> Status : SUCCESS ===
> ok
> Valiate that ROOT admin is NOT able to deploy a VM for admin user in the same 
> domain but in a ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_account_domainadminuser | 
> Status : SUCCESS ===
> ok
> Valiate that ROOT admin is NOT able to deploy a VM for user in the same 
> domain but in a different ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_account_domainuser | Status : 
> SUCCESS ===
> ok
> Valiate that ROOT admin is able to deploy a VM for regular user in a shared 
> network with scope=account ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_account_user | Status : SUCCESS 
> ===
> ok
> Valiate that ROOT admin is able to deploy a VM for user in ROOT domain in a 
> shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_all_ROOTuser | Status : SUCCESS 
> ===
> ok
> Valiate that ROOT admin is able to deploy a VM for a domain admin users in a 
> shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_all_domainadminuser | Status : 
> SUCCESS ===
> ok
> Valiate that ROOT admin is able to deploy a VM for other users in a shared 
> network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_all_domainuser | Status : 
> SUCCESS ===
> ok
> Valiate that ROOT admin is able to deploy a VM for admin user in a domain in 
> a shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainadminuser | Status 
> : SUCCESS ===
> ok
> Valiate that ROOT admin is able to deploy a VM for any user in a subdomain in 
> a shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainuser | Status : 
> SUCCESS ===
> ok
> Valiate that ROOT admin is NOT able to deploy a VM for parent domain admin 
> user in a shared network with scope=domain with no subdomain access ... === 
> TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_ROOTuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is able to deploy a VM for domain admin user in a 
> shared network with scope=domain with no subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_domainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is able to deploy a VM for domain user in a shared 
> network with scope=domain with no subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_domainuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is NOT able to deploy a VM for parent domain admin 
> user in a shared network with scope=domain with no subdomain access ... === 
> TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_parentdomainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is NOT able to deploy a VM for parent domain user in 
> a shared network with scope=domain with no subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_parentdomainuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is NOT able to deploy a VM for sub domain admin user 
> in a shared network with scope=domain with no subdomain access ... === 
> TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_subdomainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is NOT able to deploy a VM for sub domain user in a 
> shared network with scope=domain with no subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_subdomainuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is NOT able to deploy a VM for user in ROOT domain in 
> a shared network with scope=domain with subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_ROOTuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is able to deploy a VM for domain admin user in a 
> shared network with scope=domain with subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_domainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is able to deploy a VM for domain user in a shared 
> network with scope=domain with subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_domainuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is NOT able to deploy a VM for parent domain admin 
> user in a shared network with scope=domain with subdomain access ... === 
> TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_parentdomainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is NOT able to deploy a VM for parent domain user in 
> a shared network with scope=domain with subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_parentdomainuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is able to deploy a VM for subdomain admin user in a 
> shared network with scope=domain with subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_subdomainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that ROOT admin is able to deploy a VM for subdomain user in a shared 
> network with scope=domain with subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_subdomainuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is NOT able to deploy a VM for an regular user in 
> ROOT domain in a shared network with scope=account ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_ROOTuser | Status 
> : SUCCESS ===
> ok
> Valiate that Domain admin is able NOT able to deploy a VM for an regular user 
> from a differnt domain in a shared network with scope=account ... === 
> TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_differentdomain | 
> Status : SUCCESS ===
> ok
> Valiate that Domain admin is NOT able to deploy a VM for an admin user in the 
> same domain but belonging ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domainadminuser | 
> Status : SUCCESS ===
> ok
> Valiate that Domain admin is NOT able to deploy a VM for user in the same 
> domain but belonging to a ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domainuser | 
> Status : SUCCESS ===
> ok
> Valiate that Domain admin is able to deploy a VM for an regular user in a 
> shared network with scope=account ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_user | Status : 
> SUCCESS ===
> ok
> Valiate that Domain admin is NOT able to deploy a VM for user in ROOT domain 
> in a shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_ROOTuser | Status : 
> SUCCESS ===
> ok
> Valiate that Domain admin is NOT able to deploy a VM for user in other domain 
> in a shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_crossdomainuser | 
> Status : SUCCESS ===
> ok
> Valiate that Domain admin is able to deploy a VM for a domain admin user in a 
> shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domainadminuser | 
> Status : SUCCESS ===
> ok
> Valiate that Domain admin is able to deploy a VM for a domain user in a 
> shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domainuser | Status : 
> SUCCESS ===
> ok
> Valiate that Domain admin is able to deploy a VM for a sub domain admin user 
> in a shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomainadminuser | 
> Status : SUCCESS ===
> ok
> Valiate that Domain admin is able to deploy a VM for a sub domain user in a 
> shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomainuser | 
> Status : SUCCESS ===
> ok
> Valiate that Domain admin is NOT able to deploy a VM for user in ROOT domain 
> in a shared network with scope=Domain and no subdomain access ... === 
> TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_ROOTuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is able to deploy a VM for domain admin user in a 
> shared network with scope=Domain and no subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_domainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is able to deploy a VM for domain user in a shared 
> network with scope=Domain and no subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_domainuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is NOT able to deploy VM for parent domain admin 
> user in shared network with scope=Domain and no subdomain access ... === 
> TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_parentdomainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is NOT able to deploy a VM for parent domain user 
> in a shared network with scope=Domain and no subdomain access ... === 
> TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_parentdomainuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is NOT able to deploy a VM for sub domain admin 
> user in a shared network with scope=Domain and no subdomain access ... === 
> TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_subdomainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is NOT able to deploy a VM for sub domain user in a 
> shared network with scope=Domain and no subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_subdomainuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is NOT able to deploy a VM for user in ROOT domain 
> in a shared network with scope=Domain and subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_ROOTuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is able to deploy a VM for admin user in domain in 
> a shared network with scope=Domain and subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_domainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is able to deploy a VM for regular user in domain 
> in a shared network with scope=Domain and subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_domainuser
>  | Status : SUCCESS ===
> ok
> Validate that Domain admin is NOT able to deploy VM for admin user in parent 
> domain in shared network with scope=Domain subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_parentdomainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin NOT able to deploy VM for regular user in parent 
> domain in shared network with scope=Domain subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_parentdomainuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is able to deploy a VM for admin user in subdomain 
> in a shared network with scope=Domain and subdomain access ... === TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_subdomainadminuser
>  | Status : SUCCESS ===
> ok
> Valiate that Domain admin is able to deploy a VM for regular user in 
> subdomain in a shared network with scope=Domain and subdomain access ... === 
> TestName: 
> test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_subdomainuser
>  | Status : SUCCESS ===
> ok
> Valiate that regular user is able NOT able to deploy a VM for another user in 
> the same  domain in a shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_regularuser_scope_all_anotherusersamedomain 
> | Status : SUCCESS ===
> ok
> Valiate that regular user is able NOT able to deploy a VM for another user in 
> a different domain in a shared network with scope=all ... === TestName: 
> test_deployVM_in_sharedNetwork_as_regularuser_scope_all_crossdomain | Status 
> : SUCCESS ===
> ok
> ----------------------------------------------------------------------
> Ran 51 tests in 3192.356s
> OK
> For monitoring useCase test runs are:-
> Valiate that Normal user in the same domain able to add NIC in a shared 
> network with scope=all ... === TestName: 
> test_01_addNic_in_sharedNetwork_scope_all_as_domainuser | Status : SUCCESS ===
> ok
> Valiate that Parent domain admin is able to add a NIC  in a shared network 
> with scope=all ... === TestName: 
> test_02_addNic_in_sharedNetwork_scope_all_as_domain_parentAdmin | Status : 
> SUCCESS ===
> ok
> Valiate that User can enable staticNat on VPC NIC where second nicn is in a 
> shared network with scope=all ... === TestName: 
> test_03_staticNat_in_VPC_secondNic_sharedNetwork_scope_all | Status : SUCCESS 
> ===
> ok
> Validate that reboot VM is done successfully without any Error ... === 
> TestName: test_04_rebootVM_after_sharedNetwork_nic | Status : SUCCESS ===
> ok
> Validate that restart Tier Network is done successfully with cleanup ... === 
> TestName: test_05_restart_Tier_VPC_Network_sharedNetwork_nic | Status : 
> SUCCESS ===
> ok
> Validate that restart Shared Network is done successfully without any Error 
> ... === TestName: test_06_restart_sharedNetwork_scope_all | Status : SUCCESS 
> ===
> ok
> Valiate that Normal user in the same domain able to remove NIC in a shared 
> network which is added by Parent Domain Admin ... === TestName: 
> test_07_removeNic_in_sharedNetwork_scope_all_as_domainuser | Status : SUCCESS 
> ===
> ok
> Valiate that Parent domain admin is able to remove a NIC  which is added by 
> child domain user ... === TestName: 
> test_08_removeNic_in_sharedNetwork_scope_all_as_domain_parentAdmin | Status : 
> SUCCESS ===
> ok
> Valiate that Normal user in the same domain able to add NIC in a shared 
> network with scope=domain without subdomain Access ... === TestName: 
> test_09_addNic_in_sharedNetwork_scope_domain_as_domainuser | Status : SUCCESS 
> ===
> ok
> Valiate that Normal user in the same domain able to add NIC in a shared 
> network with scope=domain with subdomain Access ... === TestName: 
> test_10_addNic_in_sharedNetwork_scope_domain_subdomain_as_domainuser | Status 
> : SUCCESS ===
> ok
> ----------------------------------------------------------------------
> Ran 10 tests in 744.354s
> OK



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to