cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wei Zhou (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CLOUDSTACK-9787) No error message while change guest vm cidr to a large value
Date Thu, 16 Feb 2017 13:02:41 GMT
Wei Zhou created CLOUDSTACK-9787:
------------------------------------

             Summary: 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)

Mime
View raw message