<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.5pt;
        font-family:Consolas;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:Consolas;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
-->
</style><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoPlainText"><span style="color:#1F497D">Hi Folks,<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">I need some help to resolve the issue high lighted below.<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">I have configured for an attribute to accept a “list”.<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">But for some reason, the “list=true” pops up as a value.<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">Can anyone suggest what might be wrong.<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">Here is the code. ( Look for the vpnconnection.py)<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoPlainText"><a href="https://review.openstack.org/#/c/29811/">https://review.openstack.org/#/c/29811/</a><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoPlainText">Here is the command that I issued:<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">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
<span style="background:yellow;mso-highlight:yellow">--peer_cidrs list=true 10.1.0.0/24 10.2.0.0/24</span><o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Used PDB to see what is happening inside.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">> /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(331)get_data()<o:p></o:p></p>
<p class="MsoPlainText">-> quantum_client = self.get_client()<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) p parsed_args<o:p></o:p></p>
<p class="MsoPlainText">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', <span style="background:yellow;mso-highlight:yellow">
peer_cidrs=['list=true'],</span> peer_id='10.20.0.30', prefix='', psk=None, request_format='json', tenant_id=None, variables=[], vpnservice_id='myvpn')<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) quit<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) n<o:p></o:p></p>
<p class="MsoPlainText">> /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(332)get_data()<o:p></o:p></p>
<p class="MsoPlainText">-> quantum_client.format = parsed_args.request_format<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) n<o:p></o:p></p>
<p class="MsoPlainText">> /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(333)get_data()<o:p></o:p></p>
<p class="MsoPlainText">-> _extra_values = parse_args_to_dict(self.values_specs)<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) p quantum_client.format<o:p></o:p></p>
<p class="MsoPlainText">'json'<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) n<o:p></o:p></p>
<p class="MsoPlainText">AttributeError: "'Namespace' object has no attribute ''"<o:p></o:p></p>
<p class="MsoPlainText">> /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(333)get_data()<o:p></o:p></p>
<p class="MsoPlainText">-> _extra_values = parse_args_to_dict(self.values_specs)<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) p _extra_values<o:p></o:p></p>
<p class="MsoPlainText">*** NameError: NameError("name '<span style="background:yellow;mso-highlight:yellow">_extra_values'</span> is not defined",)<o:p></o:p></p>
<p class="MsoPlainText">(Pdb)<o:p></o:p></p>
<p class="MsoPlainText">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.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">But in the case of the subnet, extra values returns the list.<o:p></o:p></p>
<p class="MsoPlainText">See the debug message below.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">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<o:p></o:p></p>
<p class="MsoPlainText">> /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(330)get_data()<o:p></o:p></p>
<p class="MsoPlainText">-> self.log.debug('get_data(%s)' % parsed_args)<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) p parsed_args<o:p></o:p></p>
<p class="MsoPlainText">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=[])<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) l<o:p></o:p></p>
<p class="MsoPlainText">325          self.add_known_arguments(parser)<o:p></o:p></p>
<p class="MsoPlainText">326          return parser<o:p></o:p></p>
<p class="MsoPlainText">327  <o:p></o:p></p>
<p class="MsoPlainText">328      def get_data(self, parsed_args):<o:p></o:p></p>
<p class="MsoPlainText">329          pdb.set_trace()<o:p></o:p></p>
<p class="MsoPlainText">330  ->             self.log.debug('get_data(%s)' % parsed_args)<o:p></o:p></p>
<p class="MsoPlainText">331           quantum_client = self.get_client()<o:p></o:p></p>
<p class="MsoPlainText">332          quantum_client.format = parsed_args.request_format<o:p></o:p></p>
<p class="MsoPlainText">333          _extra_values = parse_args_to_dict(self.values_specs)<o:p></o:p></p>
<p class="MsoPlainText">334          _merge_args(self, parsed_args, _extra_values,<o:p></o:p></p>
<p class="MsoPlainText">335                      self.values_specs)<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) n<o:p></o:p></p>
<p class="MsoPlainText">> /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(331)get_data()<o:p></o:p></p>
<p class="MsoPlainText">-> quantum_client = self.get_client()<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) n<o:p></o:p></p>
<p class="MsoPlainText">> /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(332)get_data()<o:p></o:p></p>
<p class="MsoPlainText">-> quantum_client.format = parsed_args.request_format<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) n<o:p></o:p></p>
<p class="MsoPlainText">> /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(333)get_data()<o:p></o:p></p>
<p class="MsoPlainText">-> _extra_values = parse_args_to_dict(self.values_specs)<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) n<o:p></o:p></p>
<p class="MsoPlainText">> /opt/stack/python-quantumclient/quantumclient/quantum/v2_0/__init__.py(334)get_data()<o:p></o:p></p>
<p class="MsoPlainText">-> _merge_args(self, parsed_args, _extra_values,<o:p></o:p></p>
<p class="MsoPlainText">(Pdb) p _extra_values<o:p></o:p></p>
<p class="MsoPlainText">{'dns_nameservers': ['8.8.8.7', '8.8.8.8']}<o:p></o:p></p>
<p class="MsoPlainText">(Pdb)<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Just for your info.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">This is how I have coded in my “vpnconnection”.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">parser.add_argument(<o:p></o:p></p>
<p class="MsoPlainText">            '--peer_cidrs', metavar='PEER_CIDRS',<o:p></o:p></p>
<p class="MsoPlainText">            action='append', dest='peer_cidrs',<o:p></o:p></p>
<p class="MsoPlainText">            help='set the remote subnet(s) in CIDR format')<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">    def args2body(self, parsed_args):<o:p></o:p></p>
<p class="MsoPlainText">        pdb.set_trace()<o:p></o:p></p>
<p class="MsoPlainText">        _vpnservice_id = quantumv20.find_resourceid_by_name_or_id(<o:p></o:p></p>
<p class="MsoPlainText">            self.get_client(), 'vpnservice',<o:p></o:p></p>
<p class="MsoPlainText">            parsed_args.vpnservice_id)<o:p></o:p></p>
<p class="MsoPlainText">        _ikepolicy_id = quantumv20.find_resourceid_by_name_or_id(<o:p></o:p></p>
<p class="MsoPlainText">            self.get_client(), 'ikepolicy',<o:p></o:p></p>
<p class="MsoPlainText">            parsed_args.ikepolicy_id)<o:p></o:p></p>
<p class="MsoPlainText">        _ipsecpolicy_id = quantumv20.find_resourceid_by_name_or_id(<o:p></o:p></p>
<p class="MsoPlainText">            self.get_client(), 'ipsecpolicy',<o:p></o:p></p>
<p class="MsoPlainText">            parsed_args.ipsecpolicy_id)<o:p></o:p></p>
<p class="MsoPlainText">        body = {<o:p></o:p></p>
<p class="MsoPlainText">            'vpnconnection': {<o:p></o:p></p>
<p class="MsoPlainText">                            'vpnservice_id': _vpnservice_id,<o:p></o:p></p>
<p class="MsoPlainText">                            'ikepolicy_id': _ikepolicy_id,<o:p></o:p></p>
<p class="MsoPlainText">                            'ipsecpolicy_id': _ipsecpolicy_id,<o:p></o:p></p>
<p class="MsoPlainText">                            'name': parsed_args.name,<o:p></o:p></p>
<p class="MsoPlainText">                            'peer_address': parsed_args.peer_address,<o:p></o:p></p>
<p class="MsoPlainText">                            'peer_id': parsed_args.peer_id,<o:p></o:p></p>
<p class="MsoPlainText">                            'mtu': parsed_args.mtu,<o:p></o:p></p>
<p class="MsoPlainText">                            'description': parsed_args.description,<o:p></o:p></p>
<p class="MsoPlainText">                            'dpd_action': parsed_args.dpd_action,<o:p></o:p></p>
<p class="MsoPlainText">                            'dpd_interval': parsed_args.dpd_interval,<o:p></o:p></p>
<p class="MsoPlainText">                            'dpd_timeout': parsed_args.dpd_timeout,<o:p></o:p></p>
<p class="MsoPlainText">                            'psk': parsed_args.psk,<o:p></o:p></p>
<p class="MsoPlainText">                            'admin_state_up': parsed_args.admin_state_down,<o:p></o:p></p>
<p class="MsoPlainText">                            },<o:p></o:p></p>
<p class="MsoPlainText">            }<o:p></o:p></p>
<p class="MsoPlainText">        pdb.set_trace()<o:p></o:p></p>
<p class="MsoPlainText">        if parsed_args.peer_cidrs:<o:p></o:p></p>
<p class="MsoPlainText">            body['vpnconnection']['peer_cidrs'] = parsed_args.peer_cidrs<o:p></o:p></p>
<p class="MsoPlainText">        pdb.set_trace()<o:p></o:p></p>
<p class="MsoPlainText">        return body<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Thanks<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Swaminathan Vasudevan<o:p></o:p></p>
<p class="MsoPlainText">Systems Software Engineer (TC)<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">HP Networking<o:p></o:p></p>
<p class="MsoPlainText">Hewlett-Packard<o:p></o:p></p>
<p class="MsoPlainText">8000 Foothills Blvd<o:p></o:p></p>
<p class="MsoPlainText">M/S 5541<o:p></o:p></p>
<p class="MsoPlainText">Roseville, CA - 95747<o:p></o:p></p>
<p class="MsoPlainText">tel: 916.785.0937<o:p></o:p></p>
<p class="MsoPlainText">fax: 916.785.1815<o:p></o:p></p>
<p class="MsoPlainText">email: swaminathan.vasudevan@hp.com<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">-----Original Message-----<br>
From: Nachi Ueno [mailto:nachi@ntti3.com] <br>
Sent: Wednesday, June 12, 2013 9:08 PM<br>
To: Vasudevan, Swaminathan (PNB Roseville)<br>
Subject: Re: Change in openstack/quantum[master]: blueprint VPNaaS-Python-API VPNaaS DataModel/Plugin<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Hi Swami<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Dest is destination argument<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">In this case,<o:p></o:p></p>
<p class="MsoPlainText">https://github.com/openstack/python-quantumclient/blob/master/quantumclient/quantum/v2_0/subnet.py#L115<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">parameters go to  parsed_args.dns_nameservers<o:p></o:p></p>
<p class="MsoPlainText">https://github.com/openstack/python-quantumclient/blob/master/quantumclient/quantum/v2_0/subnet.py#L156<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">so here is some debug tips<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">1. use --verbose option on cli<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">quantum -verbose commands<o:p></o:p></p>
<p class="MsoPlainText">You can see the api request and response.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">2. Use pdb to check the value is  set or not.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Best<o:p></o:p></p>
<p class="MsoPlainText">Nachi<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">2013/6/12 Vasudevan, Swaminathan (PNB Roseville) <swaminathan.vasudevan@hp.com>:<o:p></o:p></p>
<p class="MsoPlainText">> Hi Nachi,<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> For some reason "list=true" does not work when I pass a list for the<o:p></o:p></p>
<p class="MsoPlainText">> vpnconnection.<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> parser.add_argument(<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>             '--peer_cidrs', metavar='PEER_CIDR',<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>             action='append', dest='peer_cidrs',<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>             help='set the remote subnet(s) in CIDR format')<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Nachi: What does the “dest=” mean.<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Is there anything else required in the client side to accept the list.<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> The "list=true" command works for the example that you provided (for<o:p></o:p></p>
<p class="MsoPlainText">> subnet).<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Thanks.<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Swaminathan Vasudevan<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Systems Software Engineer (TC)<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> HP Networking<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Hewlett-Packard<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> 8000 Foothills Blvd<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> M/S 5541<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Roseville, CA - 95747<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> tel: 916.785.0937<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> fax: 916.785.1815<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> email: swaminathan.vasudevan@hp.com<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> -----Original Message-----<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> From: Nachi Ueno [mailto:nachi@ntti3.com]<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Sent: Wednesday, June 12, 2013 2:52 PM<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> To: Vasudevan, Swaminathan (PNB Roseville)<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Subject: Re: Change in openstack/quantum[master]: blueprint<o:p></o:p></p>
<p class="MsoPlainText">> VPNaaS-Python-API VPNaaS DataModel/Plugin<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Hi Swami<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> It should be as follows<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> quantum vpn-connection-create --name myconnection --peer_id 10.20.0.30<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> --peer_address 10.20.0.30 --peer_cidrs  list=true 10.1.0.0/24<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> 10.2.0.0/24 10.3.0.0/24 --psk abcd myvpn ikepolicy1 ipsecpolicy1<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> (see this example)<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> quantum subnet-create test-net1 40.0.0.0/24 --dns_nameservers<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> list=true 8.8.8.7 8.8.8.8<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> https://github.com/openstack/quantum/blob/master/quantum/api/v2/attributes.py#L608<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> I said string_list is good, however cidr_list is more better.<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> so could you implement type:cidr_list ?<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> (list version of this validator)<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> https://github.com/openstack/quantum/blob/master/quantum/api/v2/attributes.py#L246<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Thanks<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Nachi<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> 2013/6/12 Vasudevan, Swaminathan (PNB Roseville)<o:p></o:p></p>
<p class="MsoPlainText">> <swaminathan.vasudevan@hp.com>:<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Hi Nachi,<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> With the “string_list” type validate both  the inputs are valid.<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Which one do you think will be the right way of setting the peer_cidrs.<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> guest@swaminathan-virtual-machine-rest:~/devstack$ quantum<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> vpn-connection-create --name myconnection --peer_id 10.20.0.30<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> --peer_address 10.20.0.30 --peer_cidrs "['10.1.0.0/24', '10.2.0.0/24',<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> '10.3.0.0/24']" --psk abcd myvpn ikepolicy1 ipsecpolicy1<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> guest@swaminathan-virtual-machine-rest:~/devstack$ quantum<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> vpn-connection-create --name myconnection --peer_id 10.20.0.30<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> --peer_address 10.20.0.30 --peer_cidrs "[10.1.0.0/24, 10.2.0.0/24,<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> 10.3.0.0/24]" --psk abcd myvpn ikepolicy1 ipsecpolicy1<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Thanks.<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Swaminathan Vasudevan<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Systems Software Engineer (TC)<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> HP Networking<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Hewlett-Packard<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> 8000 Foothills Blvd<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> M/S 5541<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Roseville, CA - 95747<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> tel: 916.785.0937<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> fax: 916.785.1815<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> email: swaminathan.vasudevan@hp.com<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> -----Original Message-----<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> From: Nachi Ueno [mailto:nachi@ntti3.com]<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Sent: Wednesday, June 12, 2013 10:09 AM<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> To: Vasudevan, Swaminathan (PNB Roseville)<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Subject: Re: Change in openstack/quantum[master]: blueprint<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> VPNaaS-Python-API VPNaaS DataModel/Plugin<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Hi Swami<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> +1 for  new type:string_list<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Ps. Could you reply on gerrit for review comment?<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Thanks<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>> Nachi<o:p></o:p></p>
</div>
</body>
</html>