def test_create_subnet_with_multiple_enable_dhcp(self):
        """Create subnet with multiple --enable-dhcp arguments passed."""
        resource = 'subnet'
        cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
        name = 'myname'
        myid = 'myid'
        netid = 'netid'
        cidr = 'cidrvalue'
        position_names = ['ip_version', 'network_id', 'cidr', 'enable_dhcp']
        # enable_dhcp value is appended later inside the loop
        position_values = [4, netid, cidr]

        _ = 'UNUSED_MARKER'
        for tested_args, should_fail, pos_value in (([
                '--enable-dhcp', '--enable-dhcp=True'
        ], False, True), ([
                '--enable-dhcp', '--enable-dhcp=False'
        ], True, _), (['--enable-dhcp=False', '--enable-dhcp'], True,
                      _), (['--enable-dhcp=True', '--enable-dhcp=False'], True,
                           _), (['--enable-dhcp=False',
                                 '--enable-dhcp=True'], True, _)):
            args = tested_args + [netid, cidr]
            pos_values = position_values + [pos_value]
            self._test_create_resource_and_catch_command_error(
                tested_args, should_fail, resource, cmd, name, myid, args,
                position_names, pos_values)
 def test_create_subnet_dns_nameservers(self):
     """Create subnet: --tenant-id tenantid <dns-nameservers> netid cidr.
     The <dns-nameservers> are
     --dns-nameserver 1.1.1.20 and --dns-nameserver 1.1.1.40
     """
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'prefixvalue'
     args = [
         '--tenant_id', 'tenantid', '--dns-nameserver', '1.1.1.20',
         '--dns-nameserver', '1.1.1.40', netid, cidr
     ]
     position_names = [
         'ip_version', 'dns_nameservers', 'network_id', 'cidr'
     ]
     nameservers = ['1.1.1.20', '1.1.1.40']
     position_values = [4, nameservers, netid, cidr]
     self._test_create_resource(resource,
                                cmd,
                                name,
                                myid,
                                args,
                                position_names,
                                position_values,
                                tenant_id='tenantid')
 def test_create_subnet_host_routes(self):
     """Create subnet: --tenant-id tenantid <host_routes> netid cidr.
     The <host_routes> are
     --host-route destination=172.16.1.0/24,nexthop=1.1.1.20 and
     --host-route destination=172.17.7.0/24,nexthop=1.1.1.40
     """
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'prefixvalue'
     args = [
         '--tenant_id', 'tenantid', '--host-route',
         'destination=172.16.1.0/24,nexthop=1.1.1.20', '--host-route',
         'destination=172.17.7.0/24,nexthop=1.1.1.40', netid, cidr
     ]
     position_names = ['ip_version', 'host_routes', 'network_id', 'cidr']
     routes = [{
         'destination': '172.16.1.0/24',
         'nexthop': '1.1.1.20'
     }, {
         'destination': '172.17.7.0/24',
         'nexthop': '1.1.1.40'
     }]
     position_values = [4, routes, netid, cidr]
     self._test_create_resource(resource,
                                cmd,
                                name,
                                myid,
                                args,
                                position_names,
                                position_values,
                                tenant_id='tenantid')
 def test_create_subnet_merge_single_single(self):
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'prefixvalue'
     args = [
         '--tenant_id', 'tenantid', '--allocation-pool',
         'start=1.1.1.10,end=1.1.1.20', netid, cidr, '--allocation-pool',
         'start=1.1.1.30,end=1.1.1.40'
     ]
     position_names = [
         'ip_version', 'allocation_pools', 'network_id', 'cidr'
     ]
     pools = [{
         'start': '1.1.1.10',
         'end': '1.1.1.20'
     }, {
         'start': '1.1.1.30',
         'end': '1.1.1.40'
     }]
     position_values = [4, pools, netid, cidr]
     self._test_create_resource(resource,
                                cmd,
                                name,
                                myid,
                                args,
                                position_names,
                                position_values,
                                tenant_id='tenantid')
Esempio n. 5
0
 def test_create_subnet_with_subnetpool_ipv6_and_ip_ver_ignored(
         self, mock_find_resource):
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     args = [
         '--tenant_id', 'tenantid', '--ip-version', '4', '--subnetpool',
         'subnetpool_id', netid
     ]
     position_names = ['ip_version', 'network_id', 'subnetpool_id']
     position_values = [6, netid, 'subnetpool_id']
     mock_find_resource.return_value = {
         'id': 'subnetpool_id',
         'ip_version': 6
     }
     self._test_create_resource(resource,
                                cmd,
                                name,
                                myid,
                                args,
                                position_names,
                                position_values,
                                tenant_id='tenantid')
     mock_find_resource.assert_called_once_with(self.client, 'subnetpool',
                                                'subnetpool_id')
 def test_create_subnet_with_subnetpool_ipv6_and_ip_ver_ignored(self):
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     args = [
         '--tenant_id', 'tenantid', '--ip-version', '4', '--subnetpool',
         'subnetpool_id', netid
     ]
     position_names = ['ip_version', 'network_id', 'subnetpool_id']
     position_values = [6, netid, 'subnetpool_id']
     self.mox.StubOutWithMock(neutronV20, 'find_resource_by_name_or_id')
     neutronV20.find_resource_by_name_or_id(self.client, 'subnetpool',
                                            'subnetpool_id').AndReturn({
                                                'id':
                                                'subnetpool_id',
                                                'ip_version':
                                                6
                                            })
     self._test_create_resource(resource,
                                cmd,
                                name,
                                myid,
                                args,
                                position_names,
                                position_values,
                                tenant_id='tenantid')
 def test_create_subnet_with_subnetpool_ipv4_with_prefixlen(self):
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     args = [
         '--tenant_id', 'tenantid', '--ip-version', '4',
         '--ipv6-address-mode', 'slaac', '--subnetpool', 'subnetpool_id',
         '--prefixlen', '31', netid
     ]
     position_names = [
         'ip_version', 'ipv6_address_mode', 'network_id', 'subnetpool_id'
     ]
     position_values = [4, None, netid, 'subnetpool_id']
     self.mox.StubOutWithMock(neutronV20, 'find_resource_by_name_or_id')
     neutronV20.find_resource_by_name_or_id(self.client, 'subnetpool',
                                            'subnetpool_id').AndReturn({
                                                'id':
                                                'subnetpool_id',
                                                'ip_version':
                                                4
                                            })
     self._test_create_resource(resource,
                                cmd,
                                name,
                                myid,
                                args,
                                position_names,
                                position_values,
                                tenant_id='tenantid',
                                no_api_call=True,
                                expected_exception=exceptions.CommandError)
    def test_create_subnet_with_ipv6_modes(self):
        resource = 'subnet'
        cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
        name = 'myname'
        myid = 'myid'
        netid = 'netid'
        cidr = 'prefixvalue'
        args = [
            '--tenant_id', 'tenantid', '--ip-version', '6',
            '--ipv6-address-mode', 'slaac', '--ipv6-ra-mode', 'slaac', netid,
            cidr
        ]
        position_names = [
            'ip_version', 'ipv6_address_mode', 'ipv6_ra_mode', 'network_id',
            'cidr'
        ]
        position_values = [6, 'slaac', 'slaac', netid, cidr]

        self._test_create_resource(resource,
                                   cmd,
                                   name,
                                   myid,
                                   args,
                                   position_names,
                                   position_values,
                                   tenant_id='tenantid')
 def test_create_subnet_with_ipv6_address_mode_ipv4(self):
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'prefixvalue'
     args = [
         '--tenant_id', 'tenantid', '--ip-version', '4',
         '--ipv6-address-mode', 'slaac', netid, cidr
     ]
     position_names = [
         'ip_version', 'ipv6_address_mode', 'network_id', 'cidr'
     ]
     position_values = [4, None, netid, cidr]
     self.assertRaises(exceptions.CommandError,
                       self._test_create_resource,
                       resource,
                       cmd,
                       name,
                       myid,
                       args,
                       position_names,
                       position_values,
                       tenant_id='tenantid')
 def test_create_subnet_allocation_pool(self):
     """Create subnet: --tenant_id tenantid <allocation_pool> netid cidr.
     The <allocation_pool> is --allocation_pool start=1.1.1.10,end=1.1.1.20
     """
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'prefixvalue'
     args = [
         '--tenant_id', 'tenantid', '--allocation_pool',
         'start=1.1.1.10,end=1.1.1.20', netid, cidr
     ]
     position_names = [
         'ip_version', 'allocation_pools', 'network_id', 'cidr'
     ]
     pool = [{'start': '1.1.1.10', 'end': '1.1.1.20'}]
     position_values = [4, pool, netid, cidr]
     self._test_create_resource(resource,
                                cmd,
                                name,
                                myid,
                                args,
                                position_names,
                                position_values,
                                tenant_id='tenantid')
Esempio n. 11
0
 def test_create_subnet_with_subnetpool_ipv4_with_prefixlen(
         self, mock_find_resource):
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     args = [
         '--tenant_id', 'tenantid', '--ip-version', '4',
         '--ipv6-address-mode', 'slaac', '--subnetpool', 'subnetpool_id',
         '--prefixlen', '31', netid
     ]
     position_names = [
         'ip_version', 'ipv6_address_mode', 'network_id', 'subnetpool_id'
     ]
     position_values = [4, None, netid, 'subnetpool_id']
     mock_find_resource.return_value = {
         'id': 'subnetpool_id',
         'ip_version': 4
     }
     self._test_create_resource(resource,
                                cmd,
                                name,
                                myid,
                                args,
                                position_names,
                                position_values,
                                tenant_id='tenantid',
                                no_api_call=True,
                                expected_exception=exceptions.CommandError)
     mock_find_resource.assert_called_once_with(self.client, 'subnetpool',
                                                'subnetpool_id')
 def test_create_subnet_with_no_gateway(self):
     """Create subnet: --no-gateway netid cidr."""
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'cidrvalue'
     args = ['--no-gateway', netid, cidr]
     position_names = ['ip_version', 'network_id', 'cidr', 'gateway_ip']
     position_values = [4, netid, cidr, None]
     self._test_create_resource(resource, cmd, name, myid, args,
                                position_names, position_values)
Esempio n. 13
0
 def test_create_subnet_tags(self):
     """Create subnet: netid cidr --tags a b."""
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'prefixvalue'
     args = [netid, cidr, '--tags', 'a', 'b']
     position_names = ['ip_version', 'network_id', 'cidr']
     position_values = [4, netid, cidr]
     self._test_create_resource(resource, cmd, name, myid, args,
                                position_names, position_values,
                                tags=['a', 'b'])
Esempio n. 14
0
 def test_create_subnet_tenant(self):
     """Create subnet: --tenant_id tenantid netid cidr."""
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'prefixvalue'
     args = ['--tenant_id', 'tenantid', netid, cidr]
     position_names = ['ip_version', 'network_id', 'cidr']
     position_values = [4, netid, cidr]
     self._test_create_resource(resource, cmd, name, myid, args,
                                position_names, position_values,
                                tenant_id='tenantid')
 def test_create_subnet(self):
     # Create subnet: --gateway gateway netid cidr.
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = '10.10.10.0/24'
     gateway = 'gatewayvalue'
     args = ['--gateway', gateway, netid, cidr]
     position_names = ['ip_version', 'network_id', 'cidr', 'gateway_ip']
     position_values = [4, netid, cidr, gateway]
     self._test_create_resource(resource, cmd, name, myid, args,
                                position_names, position_values)
Esempio n. 16
0
 def test_create_subnet_with_bad_gateway_option(self):
     # Create sbunet: --no-gateway netid cidr.
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'cidrvalue'
     gateway = 'gatewayvalue'
     args = ['--gateway', gateway, '--no-gateway', netid, cidr]
     position_names = ['ip_version', 'network_id', 'cidr', 'gateway_ip']
     position_values = [4, netid, cidr, None]
     self.assertRaises(SystemExit, self._test_create_resource, resource,
                       cmd, name, myid, args, position_names,
                       position_values)
 def test_create_subnet_network_cidr_seperated(self):
     # For positional value, network_id and cidr can be separated.
     """Create subnet: --gateway gateway netid cidr."""
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = '10.10.10.0/24'
     gateway = 'gatewayvalue'
     args = [netid, '--gateway', gateway, cidr]
     position_names = ['ip_version', 'network_id', 'cidr', 'gateway_ip']
     position_values = [4, netid, cidr, gateway]
     self._test_create_resource(resource, cmd, name, myid, args,
                                position_names, position_values)
 def test_create_subnet_with_enable_and_disable_dhcp(self):
     """Create sbunet: --enable-dhcp and --disable-dhcp."""
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'cidrvalue'
     args = ['--enable-dhcp', '--disable-dhcp', netid, cidr]
     position_names = ['ip_version', 'network_id', 'cidr', 'gateway_ip']
     position_values = [4, netid, cidr, None]
     try:
         self._test_create_resource(resource, cmd, name, myid, args,
                                    position_names, position_values)
     except exceptions.CommandError:
         return
     self.fail('No exception for --enable-dhcp --disable-dhcp option')
 def test_create_subnet_with_disable_dhcp(self):
     # Create subnet: --tenant-id tenantid --disable-dhcp netid cidr.
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'prefixvalue'
     args = ['--tenant_id', 'tenantid',
             '--disable-dhcp',
             netid, cidr]
     position_names = ['ip_version', 'enable_dhcp', 'network_id',
                       'cidr']
     position_values = [4, False, netid, cidr]
     self._test_create_resource(resource, cmd, name, myid, args,
                                position_names, position_values,
                                tenant_id='tenantid')
 def test_create_subnet_with_bad_gateway_option(self):
     """Create sbunet: --no-gateway netid cidr."""
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'cidrvalue'
     gateway = 'gatewayvalue'
     args = ['--gateway', gateway, '--no-gateway', netid, cidr]
     position_names = ['ip_version', 'network_id', 'cidr', 'gateway_ip']
     position_values = [4, netid, cidr, None]
     try:
         self._test_create_resource(resource, cmd, name, myid, args,
                                    position_names, position_values)
     except Exception:
         return
     self.fail('No exception for bad gateway option')
 def test_create_subnet_with_ipv6_ra_mode_ipv4(self):
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'prefixvalue'
     args = ['--tenant_id', 'tenantid',
             '--ip-version', '4',
             '--ipv6-ra-mode', 'slaac',
             netid, cidr]
     position_names = ['ip_version', 'ipv6_ra_mode',
                       'network_id', 'cidr']
     position_values = [4, None, netid, cidr]
     self._test_create_resource(
         resource, cmd, name, myid, args, position_names,
         position_values, tenant_id='tenantid',
         no_api_call=True, expected_exception=exceptions.CommandError)
 def test_create_subnet_max_v4_cidr(self):
     """Create subnet: --gateway gateway netid cidr."""
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = '192.168.0.1/32'
     gateway = 'gatewayvalue'
     args = ['--gateway', gateway, netid, cidr]
     position_names = ['ip_version', 'network_id', 'cidr', 'gateway_ip']
     position_values = [4, netid, cidr, gateway]
     self.mox.StubOutWithMock(cmd.log, 'warning')
     cmd.log.warning(mox.IgnoreArg())
     self._test_create_resource(resource, cmd, name, myid, args,
                                position_names, position_values)
     self.mox.VerifyAll()
     self.mox.UnsetStubs()
Esempio n. 23
0
 def test_create_subnet_max_v4_cidr(self):
     # Create subnet: --gateway gateway netid cidr.
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = '192.168.0.1/32'
     gateway = 'gatewayvalue'
     args = ['--gateway', gateway, netid, cidr]
     position_names = ['ip_version', 'network_id', 'cidr', 'gateway_ip']
     position_values = [4, netid, cidr, gateway]
     with mock.patch.object(cmd.log, 'warning') as mock_warning:
         self._test_create_resource(resource, cmd, name, myid, args,
                                    position_names, position_values)
     mock_warning.assert_called_once_with(mock.ANY, {
         'ip': 4,
         'cidr': '/32'
     })
 def test_create_subnet_with_enable_and_disable_dhcp(self):
     """Create subnet: --enable-dhcp and --disable-dhcp."""
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'cidrvalue'
     position_names = ['ip_version', 'network_id', 'cidr', 'enable_dhcp']
     # enable_dhcp value is appended later inside the loop
     position_values = [4, netid, cidr]
     for enable_dhcp_arg, should_fail in (('--enable-dhcp=False', False),
                                          ('--enable-dhcp=True',
                                           True), ('--enable-dhcp', True)):
         tested_args = [enable_dhcp_arg, '--disable-dhcp']
         args = tested_args + [netid, cidr]
         pos_values = position_values + [should_fail]
         self._test_create_resource_and_catch_command_error(
             tested_args, should_fail, resource, cmd, name, myid, args,
             position_names, pos_values)
Esempio n. 25
0
 def test_create_subnet_with_segment(self):
     # Create subnet: --segment segment netid cidr.
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = '10.10.10.0/24'
     segment = 'segment'
     args = ['--segment', segment, netid, cidr, '--description', 'cave']
     position_names = ['ip_version', 'network_id', 'cidr', 'segment_id']
     position_values = [4, netid, cidr, segment]
     self._test_create_resource(resource,
                                cmd,
                                name,
                                myid,
                                args,
                                position_names,
                                position_values,
                                description='cave')
Esempio n. 26
0
 def test_create_subnet_with_use_default_subnetpool(self):
     # Create subnet: --tenant-id tenantid --use-default-subnetpool \
     #     netid cidr.
     resource = 'subnet'
     cmd = subnet.CreateSubnet(test_cli20.MyApp(sys.stdout), None)
     name = 'myname'
     myid = 'myid'
     netid = 'netid'
     cidr = 'prefixvalue'
     args = [
         '--tenant_id', 'tenantid', '--use-default-subnetpool', netid, cidr
     ]
     position_names = [
         'ip_version', 'use_default_subnetpool', 'network_id', 'cidr'
     ]
     position_values = [4, True, netid, cidr]
     self._test_create_resource(resource,
                                cmd,
                                name,
                                myid,
                                args,
                                position_names,
                                position_values,
                                tenant_id='tenantid')