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

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

GitHub user ustcweizhou opened a pull request:

    https://github.com/apache/cloudstack/pull/1945

    CLOUDSTACK-9787: Fix wrong return value in NetUtils.isNetworkAWithinNetworkB

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/ustcweizhou/cloudstack 
isNetworkAWithinNetworkB

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cloudstack/pull/1945.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1945
    
----
commit 99fcb1f2b0472d470099442dc10d21da41a8f7e3
Author: Wei Zhou <w.z...@tech.leaseweb.com>
Date:   2017-02-16T13:03:26Z

    CLOUDSTACK-9787: Fix wrong return value in NetUtils.isNetworkAWithinNetworkB

----


> No error message while change guest vm cidr to a large value
> ------------------------------------------------------------
>
>                 Key: CLOUDSTACK-9787
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9787
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>            Reporter: Wei Zhou
>            Assignee: Wei Zhou
>
> example
> 1. create a network with cidr = 10.1.1.32/28
> 2. edit the network and change guest vm cidr to 10.1.1.32/27
> according to server/src/com/cloud/network/NetworkServiceImpl.java
> {code}
>             if (networkCidr != null) {
>                 if (!NetUtils.isNetworkAWithinNetworkB(guestVmCidr, 
> networkCidr)) {
>                     throw new InvalidParameterValueException("Invalid value 
> of Guest VM CIDR. For IP Reservation, Guest VM CIDR  should be a subset of 
> network CIDR : "
>                             + networkCidr);
>                 }
>             } else {
>                 if (!NetUtils.isNetworkAWithinNetworkB(guestVmCidr, 
> network.getCidr())) {
>                     throw new InvalidParameterValueException("Invalid value 
> of Guest VM CIDR. For IP Reservation, Guest VM CIDR  should be a subset of 
> network CIDR :  "
>                             + network.getCidr());
>                 }
>             }
> {code}
> this should throw an exception, however it does not.
> I added some unit test in 
> utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java
> {code}
>     @Test
>     public void testIsNetworkAWithinNetworkB() {
>         assertTrue(NetUtils.isNetworkAWithinNetworkB("192.168.30.0/24", 
> "192.168.30.0/23"));
>         assertTrue(NetUtils.isNetworkAWithinNetworkB("192.168.30.0/24", 
> "192.168.30.0/22"));
>         assertFalse(NetUtils.isNetworkAWithinNetworkB("192.168.30.0/23", 
> "192.168.30.0/24"));
>         assertFalse(NetUtils.isNetworkAWithinNetworkB("192.168.30.0/22", 
> "192.168.30.0/24"));
>         assertTrue(NetUtils.isNetworkAWithinNetworkB("192.168.28.0/24", 
> "192.168.28.0/23"));
>         assertTrue(NetUtils.isNetworkAWithinNetworkB("192.168.28.0/24", 
> "192.168.28.0/22"));
>         assertFalse(NetUtils.isNetworkAWithinNetworkB("192.168.28.0/23", 
> "192.168.28.0/24"));
>         assertFalse(NetUtils.isNetworkAWithinNetworkB("192.168.28.0/22", 
> "192.168.28.0/24"));
>         assertTrue(NetUtils.isNetworkAWithinNetworkB("192.168.30.0/24", 
> "192.168.28.0/22"));
>     }
> {code}
> the test fails at 
>         assertFalse(NetUtils.isNetworkAWithinNetworkB("192.168.30.0/23", 
> "192.168.30.0/24"));



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

Reply via email to