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
