I have commented on the review with what I think the error is. On Mon, Jun 17, at 6:16 pm Vasudevan, Swaminathan (PNB Roseville) ([email protected]) wrote: > > Hi Folks, > > I need some help to resolve the issue high lighted below. > > I have configured for an attribute to accept a "list". > > But for some reason, the "list=true" pops up as a value. > > > > Can anyone suggest what might be wrong. > > Here is the code. ( Look for the vpnconnection.py) > > > > https://review.openstack.org/#/c/29811/ > > > > > > Here is the command that I issued: > > > > quantum vpn-connection-create --name myconnection --peer_address > 10.20.0.30 --peer_id 10.20.0.30 ----psk "abcd" --vpnservice_id myvpn > --ikepolicy_id ikepolicy1 --ipsecpolicy_id ipsecpolicy1 --peer_cidrs > list=true 10.1.0.0/24 10.2.0.0/24 > > > > Used PDB to see what is happening inside. > > > > > /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(331)get_data() > > -> quantum_client = self.get_client() > > (Pdb) p parsed_args > > Namespace(admin_state_down=True, columns=[], description=None, > dpd_action='hold', dpd_interval='30', dpd_timeout='120', > formatter='table', ikepolicy_id='ikepolicy1', initiator='bi-directional', > ipsecpolicy_id='ipsecpolicy1', mtu='1500', name='myconnection', > peer_address='10.20.0.30', peer_cidrs=['list=true'], peer_id='10.20.0.30', > prefix='', psk=None, request_format='json', tenant_id=None, variables=[], > vpnservice_id='myvpn') > > (Pdb) quit > > (Pdb) n > > > /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(332)get_data() > > -> quantum_client.format = parsed_args.request_format > > (Pdb) n > > > /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(333)get_data() > > -> _extra_values = parse_args_to_dict(self.values_specs) > > (Pdb) p quantum_client.format > > 'json' > > (Pdb) n > > AttributeError: "'Namespace' object has no attribute ''" > > > /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(333)get_data() > > -> _extra_values = parse_args_to_dict(self.values_specs) > > (Pdb) p _extra_values > > *** NameError: NameError("name '_extra_values' is not defined",) > > (Pdb) > > NOTE: Extra values does not return a valid value. But in the case of the > subnet, when I ran the debugger it was returning a valid list. > > > > But in the case of the subnet, extra values returns the list. > > See the debug message below. > > > > guest@swaminathan-virtual-machine-rest:~/devstack$ quantum subnet-create > net1 40.0.0.0/24 --dns_nameservers list=true 8.8.8.7 8.8.8.8 > > > /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(330)get_data() > > -> self.log.debug('get_data(%s)' % parsed_args) > > (Pdb) p parsed_args > > Namespace(allocation_pools=None, cidr='40.0.0.0/24', columns=[], > disable_dhcp=False, dns_nameservers=None, formatter='table', gateway=None, > host_routes=None, ip_version=4, name=None, network_id='net1', > no_gateway=False, prefix='', request_format='json', tenant_id=None, > variables=[]) > > (Pdb) l > > 325 self.add_known_arguments(parser) > > 326 return parser > > 327 > > 328 def get_data(self, parsed_args): > > 329 pdb.set_trace() > > 330 -> self.log.debug('get_data(%s)' % parsed_args) > > 331 quantum_client = self.get_client() > > 332 quantum_client.format = parsed_args.request_format > > 333 _extra_values = parse_args_to_dict(self.values_specs) > > 334 _merge_args(self, parsed_args, _extra_values, > > 335 self.values_specs) > > (Pdb) n > > > /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(331)get_data() > > -> quantum_client = self.get_client() > > (Pdb) n > > > /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(332)get_data() > > -> quantum_client.format = parsed_args.request_format > > (Pdb) n > > > /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(333)get_data() > > -> _extra_values = parse_args_to_dict(self.values_specs) > > (Pdb) n > > > /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(334)get_data() > > -> _merge_args(self, parsed_args, _extra_values, > > (Pdb) p _extra_values > > {'dns_nameservers': ['8.8.8.7', '8.8.8.8']} > > (Pdb) > > > > Just for your info. > > > > This is how I have coded in my "vpnconnection". > > > > parser.add_argument( > > '--peer_cidrs', metavar='PEER_CIDRS', > > action='append', dest='peer_cidrs', > > help='set the remote subnet(s) in CIDR format') > > > > def args2body(self, parsed_args): > > pdb.set_trace() > > _vpnservice_id = quantumv20.find_resourceid_by_name_or_id( > > self.get_client(), 'vpnservice', > > parsed_args.vpnservice_id) > > _ikepolicy_id = quantumv20.find_resourceid_by_name_or_id( > > self.get_client(), 'ikepolicy', > > parsed_args.ikepolicy_id) > > _ipsecpolicy_id = quantumv20.find_resourceid_by_name_or_id( > > self.get_client(), 'ipsecpolicy', > > parsed_args.ipsecpolicy_id) > > body = { > > 'vpnconnection': { > > 'vpnservice_id': _vpnservice_id, > > 'ikepolicy_id': _ikepolicy_id, > > 'ipsecpolicy_id': _ipsecpolicy_id, > > 'name': parsed_args.name, > > 'peer_address': parsed_args.peer_address, > > 'peer_id': parsed_args.peer_id, > > 'mtu': parsed_args.mtu, > > 'description': parsed_args.description, > > 'dpd_action': parsed_args.dpd_action, > > 'dpd_interval': parsed_args.dpd_interval, > > 'dpd_timeout': parsed_args.dpd_timeout, > > 'psk': parsed_args.psk, > > 'admin_state_up': parsed_args.admin_state_down, > > }, > > } > > pdb.set_trace() > > if parsed_args.peer_cidrs: > > body['vpnconnection']['peer_cidrs'] = parsed_args.peer_cidrs > > pdb.set_trace() > > return body > > > > Thanks > > > > > > > > Swaminathan Vasudevan > > Systems Software Engineer (TC) > > > > > > HP Networking > > Hewlett-Packard > > 8000 Foothills Blvd > > M/S 5541 > > Roseville, CA - 95747 > > tel: 916.785.0937 > > fax: 916.785.1815 > > email: [email protected] > > > > > > -----Original Message----- > From: Nachi Ueno [mailto:[email protected]] > Sent: Wednesday, June 12, 2013 9:08 PM > To: Vasudevan, Swaminathan (PNB Roseville) > Subject: Re: Change in openstack/quantum[master]: blueprint > VPNaaS-Python-API VPNaaS DataModel/Plugin > > > > Hi Swami > > > > Dest is destination argument > > > > In this case, > > https://github.com/openstack/python-quantumclient/blob/master/quantumclient/quantum/v2_0/subnet.py#L115 > > > > parameters go to parsed_args.dns_nameservers > > https://github.com/openstack/python-quantumclient/blob/master/quantumclient/quantum/v2_0/subnet.py#L156 > > > > so here is some debug tips > > > > 1. use --verbose option on cli > > > > quantum -verbose commands > > You can see the api request and response. > > > > 2. Use pdb to check the value is set or not. > > > > Best > > Nachi > > > > > > > > > > 2013/6/12 Vasudevan, Swaminathan (PNB Roseville) > <[email protected]>: > > > Hi Nachi, > > > > > > For some reason "list=true" does not work when I pass a list for the > > > vpnconnection. > > > > > > > > > > > > parser.add_argument( > > > > > > '--peer_cidrs', metavar='PEER_CIDR', > > > > > > action='append', dest='peer_cidrs', > > > > > > help='set the remote subnet(s) in CIDR format') > > > > > > > > > > > > Nachi: What does the "dest=" mean. > > > > > > > > > > > > Is there anything else required in the client side to accept the list. > > > > > > > > > > > > The "list=true" command works for the example that you provided (for > > > subnet). > > > > > > > > > > > > Thanks. > > > > > > > > > > > > Swaminathan Vasudevan > > > > > > Systems Software Engineer (TC) > > > > > > > > > > > > > > > > > > HP Networking > > > > > > Hewlett-Packard > > > > > > 8000 Foothills Blvd > > > > > > M/S 5541 > > > > > > Roseville, CA - 95747 > > > > > > tel: 916.785.0937 > > > > > > fax: 916.785.1815 > > > > > > email: [email protected] > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > From: Nachi Ueno [mailto:[email protected]] > > > > > > Sent: Wednesday, June 12, 2013 2:52 PM > > > > > > To: Vasudevan, Swaminathan (PNB Roseville) > > > > > > Subject: Re: Change in openstack/quantum[master]: blueprint > > > VPNaaS-Python-API VPNaaS DataModel/Plugin > > > > > > > > > > > > Hi Swami > > > > > > > > > > > > It should be as follows > > > > > > > > > > > > quantum vpn-connection-create --name myconnection --peer_id 10.20.0.30 > > > > > > --peer_address 10.20.0.30 --peer_cidrs list=true 10.1.0.0/24 > > > > > > 10.2.0.0/24 10.3.0.0/24 --psk abcd myvpn ikepolicy1 ipsecpolicy1 > > > > > > > > > > > > (see this example) > > > > > > quantum subnet-create test-net1 40.0.0.0/24 --dns_nameservers > > > > > > list=true 8.8.8.7 8.8.8.8 > > > > > > https://github.com/openstack/quantum/blob/master/quantum/api/v2/attributes.py#L608 > > > > > > > > > > > > I said string_list is good, however cidr_list is more better. > > > > > > so could you implement type:cidr_list ? > > > > > > > > > > > > (list version of this validator) > > > > > > https://github.com/openstack/quantum/blob/master/quantum/api/v2/attributes.py#L246 > > > > > > > > > > > > Thanks > > > > > > Nachi > > > > > > > > > > > > 2013/6/12 Vasudevan, Swaminathan (PNB Roseville) > > > <[email protected]>: > > > > > >> Hi Nachi, > > > > > >> > > > > > >> > > > > > >> > > > > > >> With the "string_list" type validate both the inputs are valid. > > > > > >> > > > > > >> > > > > > >> > > > > > >> Which one do you think will be the right way of setting the peer_cidrs. > > > > > >> > > > > > >> > > > > > >> > > > > > >> guest@swaminathan-virtual-machine-rest:~/devstack$ quantum > > > > > >> vpn-connection-create --name myconnection --peer_id 10.20.0.30 > > > > > >> --peer_address 10.20.0.30 --peer_cidrs "['10.1.0.0/24', '10.2.0.0/24', > > > > > >> '10.3.0.0/24']" --psk abcd myvpn ikepolicy1 ipsecpolicy1 > > > > > >> > > > > > >> > > > > > >> > > > > > >> guest@swaminathan-virtual-machine-rest:~/devstack$ quantum > > > > > >> vpn-connection-create --name myconnection --peer_id 10.20.0.30 > > > > > >> --peer_address 10.20.0.30 --peer_cidrs "[10.1.0.0/24, 10.2.0.0/24, > > > > > >> 10.3.0.0/24]" --psk abcd myvpn ikepolicy1 ipsecpolicy1 > > > > > >> > > > > > >> > > > > > >> > > > > > >> Thanks. > > > > > >> > > > > > >> Swaminathan Vasudevan > > > > > >> > > > > > >> Systems Software Engineer (TC) > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> HP Networking > > > > > >> > > > > > >> Hewlett-Packard > > > > > >> > > > > > >> 8000 Foothills Blvd > > > > > >> > > > > > >> M/S 5541 > > > > > >> > > > > > >> Roseville, CA - 95747 > > > > > >> > > > > > >> tel: 916.785.0937 > > > > > >> > > > > > >> fax: 916.785.1815 > > > > > >> > > > > > >> email: [email protected] > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> -----Original Message----- > > > > > >> From: Nachi Ueno [mailto:[email protected]] > > > > > >> Sent: Wednesday, June 12, 2013 10:09 AM > > > > > >> To: Vasudevan, Swaminathan (PNB Roseville) > > > > > >> Subject: Re: Change in openstack/quantum[master]: blueprint > > > > > >> VPNaaS-Python-API VPNaaS DataModel/Plugin > > > > > >> > > > > > >> > > > > > >> > > > > > >> Hi Swami > > > > > >> > > > > > >> > > > > > >> > > > > > >> +1 for new type:string_list > > > > > >> > > > > > >> > > > > > >> > > > > > >> Ps. Could you reply on gerrit for review comment? > > > > > >> > > > > > >> > > > > > >> > > > > > >> Thanks > > > > > >> > > > > > >> Nachi > > > > _______________________________________________ > OpenStack-dev mailing list > [email protected] > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
_______________________________________________ OpenStack-dev mailing list [email protected] http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
