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/07/10 06:32:00 UTC
[jira] [Resolved] (CLOUDSTACK-9787) No error message while change
guest vm cidr to a large value
[ https://issues.apache.org/jira/browse/CLOUDSTACK-9787?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Wei Zhou resolved CLOUDSTACK-9787.
----------------------------------
Resolution: Fixed
> 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.4.14#64029)