You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Wei Zhou (JIRA)" <ji...@apache.org> on 2017/02/16 13:02:41 UTC
[jira] [Created] (CLOUDSTACK-9787) No error message while change
guest vm cidr to a large value
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)