)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"12b2f23c219a0e78683ffb0f71ed364559c5de58","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Manjeet Singh Bhatia \u003cmanjeet.s.bhatia@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-10-15 19:37:49 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove Default value of ethertype from neutronclient"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Neutron Client should not set default value for ethertype because it"},{"line_number":10,"context_line":"is already defined in neutron extensions and setting default value of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a2ca52d_81eae7aa","line":7,"updated":"2015-10-16 05:52:52.000000000","message":"I think you can change the commit message now.\nYou are still using the Default value , but now you are not passing IPv4 to it.\nSo maybe it can be reworded based on that fact, otherwise seems ok as a change.","commit_id":"407a3250479abd9e8a57fa7eff2ae3f27d59e9b0"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"12b2f23c219a0e78683ffb0f71ed364559c5de58","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Neutron Client should not set default value for ethertype because it"},{"line_number":10,"context_line":"is already defined in neutron extensions and setting default value of"},{"line_number":11,"context_line":"ethertype in neutron client creates race condition if some one tries"},{"line_number":12,"context_line":"to validate it in neutron extensions"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ia1a5342a1d568cb1a015e1b7acecf38b8d1f46e1"},{"line_number":15,"context_line":"Related-Bug: #1505832"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a2ca52d_c10bff8c","line":12,"updated":"2015-10-16 05:52:52.000000000","message":"Full Stop at the end of the Line....\nSorry but its a nit","commit_id":"407a3250479abd9e8a57fa7eff2ae3f27d59e9b0"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"2a965d14117a9ac7328d5e4719fa3fa7c766412a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Change Default value of ethertype from neutronclient"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Neutron Client should not set default value for ethertype because it"},{"line_number":10,"context_line":"is already defined in neutron extensions and setting default value of"},{"line_number":11,"context_line":"ethertype in neutron client creates race condition if some one tries"},{"line_number":12,"context_line":"to validate it in neutron extensions."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a29b11f_0f9e8f56","line":10,"updated":"2015-10-19 00:54:39.000000000","message":"Seems a pretty big sentence to read in one go. Can you also divide it to smaller segments?","commit_id":"340ba310ef60ea47e7670bb30a0af2964d0821b0"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"d9deb18b972ffb80bcf43085bac2302d9023258c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Neutron Client should not set default value for ethertype because it"},{"line_number":10,"context_line":"is already defined in neutron extensions and setting default value of"},{"line_number":11,"context_line":"ethertype in neutron client creates race condition if some one tries"},{"line_number":12,"context_line":"to validate it in neutron extensions."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ia1a5342a1d568cb1a015e1b7acecf38b8d1f46e1"},{"line_number":15,"context_line":"Related-Bug: #1505832"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5a2ca52d_46960e40","line":12,"updated":"2015-10-16 14:37:18.000000000","message":"Nit: I was confused by the use of the word \"extensions\" here. When I replace it with \"server\" it clicked. I know that SG is an extension API, but here the defaults of client vs. server are being described.","commit_id":"340ba310ef60ea47e7670bb30a0af2964d0821b0"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"2a965d14117a9ac7328d5e4719fa3fa7c766412a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Neutron Client should not set default value for ethertype because it"},{"line_number":10,"context_line":"is already defined in neutron extensions and setting default value of"},{"line_number":11,"context_line":"ethertype in neutron client creates race condition if some one tries"},{"line_number":12,"context_line":"to validate it in neutron extensions."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ia1a5342a1d568cb1a015e1b7acecf38b8d1f46e1"},{"line_number":15,"context_line":"Related-Bug: #1505832"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a29b11f_8faa9f6f","line":12,"in_reply_to":"5a2ca52d_46960e40","updated":"2015-10-19 00:54:39.000000000","message":"+1","commit_id":"340ba310ef60ea47e7670bb30a0af2964d0821b0"}],"neutronclient/neutron/v2_0/securitygroup.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"1ad5ae683ef07edc143d1aea593f300778bf49f1","unresolved":false,"context_lines":[{"line_number":302,"context_line":"            default\u003d\u0027ingress\u0027, choices\u003d[\u0027ingress\u0027, \u0027egress\u0027],"},{"line_number":303,"context_line":"            help\u003d_(\u0027Direction of traffic: ingress/egress.\u0027))"},{"line_number":304,"context_line":"        parser.add_argument("},{"line_number":305,"context_line":"            \u0027--ethertype\u0027,"},{"line_number":306,"context_line":"            help\u003d_(\u0027IPv4/IPv6\u0027))"},{"line_number":307,"context_line":"        parser.add_argument("},{"line_number":308,"context_line":"            \u0027--protocol\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a2ca52d_bf5077d5","line":305,"updated":"2015-10-15 16:41:50.000000000","message":"This will break existing code/scripts.\nSo add new option not to specify ethertype or option value.\nlike None or --no-etyertype.","commit_id":"9487f4c608c45e5c74ad274a36f49442ec22115e"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"8ad471aa82c3bf95cf2530a3e8e14fd059667db1","unresolved":false,"context_lines":[{"line_number":302,"context_line":"            default\u003d\u0027ingress\u0027, choices\u003d[\u0027ingress\u0027, \u0027egress\u0027],"},{"line_number":303,"context_line":"            help\u003d_(\u0027Direction of traffic: ingress/egress.\u0027))"},{"line_number":304,"context_line":"        parser.add_argument("},{"line_number":305,"context_line":"            \u0027--ethertype\u0027,"},{"line_number":306,"context_line":"            help\u003d_(\u0027IPv4/IPv6\u0027))"},{"line_number":307,"context_line":"        parser.add_argument("},{"line_number":308,"context_line":"            \u0027--protocol\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a2ca52d_df745369","line":305,"in_reply_to":"5a2ca52d_bf5077d5","updated":"2015-10-15 19:56:50.000000000","message":"added None","commit_id":"9487f4c608c45e5c74ad274a36f49442ec22115e"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"d9deb18b972ffb80bcf43085bac2302d9023258c","unresolved":false,"context_lines":[{"line_number":303,"context_line":"            help\u003d_(\u0027Direction of traffic: ingress/egress.\u0027))"},{"line_number":304,"context_line":"        parser.add_argument("},{"line_number":305,"context_line":"            \u0027--ethertype\u0027,"},{"line_number":306,"context_line":"            default\u003dNone,"},{"line_number":307,"context_line":"            help\u003d_(\u0027IPv4/IPv6\u0027))"},{"line_number":308,"context_line":"        parser.add_argument("},{"line_number":309,"context_line":"            \u0027--protocol\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a2ca52d_66754af8","line":306,"updated":"2015-10-16 14:37:18.000000000","message":"Do we need to specify a default here?","commit_id":"340ba310ef60ea47e7670bb30a0af2964d0821b0"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"2a965d14117a9ac7328d5e4719fa3fa7c766412a","unresolved":false,"context_lines":[{"line_number":303,"context_line":"            help\u003d_(\u0027Direction of traffic: ingress/egress.\u0027))"},{"line_number":304,"context_line":"        parser.add_argument("},{"line_number":305,"context_line":"            \u0027--ethertype\u0027,"},{"line_number":306,"context_line":"            default\u003dNone,"},{"line_number":307,"context_line":"            help\u003d_(\u0027IPv4/IPv6\u0027))"},{"line_number":308,"context_line":"        parser.add_argument("},{"line_number":309,"context_line":"            \u0027--protocol\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a29b11f_afcafb4d","line":306,"in_reply_to":"5a2ca52d_66754af8","updated":"2015-10-19 00:54:39.000000000","message":"Hi Henry, \nIn patch number 1, Isaku Yamahata mentioned that it might break exiting code/scripts which rely on a default value being passed to the CLI.","commit_id":"340ba310ef60ea47e7670bb30a0af2964d0821b0"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"0cc3d387b519d0d9e55463f659576a7c2dac515d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        if protocol \u003d\u003d \u0027icmpv6\u0027 and ethertype is None:"},{"line_number":95,"context_line":"            ethertype \u003d \u0027IPv6\u0027"},{"line_number":96,"context_line":"        else:"},{"line_number":97,"context_line":"            ethertype \u003d \u0027IPv4\u0027"},{"line_number":98,"context_line":"        return ethertype"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"class ListSecurityGroup(neutronV20.ListCommand):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_9ed62fc4","line":97,"updated":"2015-10-19 15:46:33.000000000","message":"You should not overwrite ethertype if it is not None.","commit_id":"95bd244d12d30ead94ce4644847c69ba545668b4"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"839e602daab8b7c418c3479eb1d9beefa41c1270","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        if protocol \u003d\u003d \u0027icmpv6\u0027 and ethertype is None:"},{"line_number":95,"context_line":"            ethertype \u003d \u0027IPv6\u0027"},{"line_number":96,"context_line":"        else:"},{"line_number":97,"context_line":"            ethertype \u003d \u0027IPv4\u0027"},{"line_number":98,"context_line":"        return ethertype"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"class ListSecurityGroup(neutronV20.ListCommand):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_1e045f15","line":97,"in_reply_to":"3a29b11f_9ed62fc4","updated":"2015-10-19 15:49:48.000000000","message":"it will not overwrite ethertype if user gives input. This is just sending the default ethertype IPv6 when protocol is icmpv6 and user have not given any  ethertype.","commit_id":"95bd244d12d30ead94ce4644847c69ba545668b4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"0cc3d387b519d0d9e55463f659576a7c2dac515d","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            help\u003d_(\u0027Direction of traffic: ingress/egress.\u0027))"},{"line_number":310,"context_line":"        parser.add_argument("},{"line_number":311,"context_line":"            \u0027--ethertype\u0027,"},{"line_number":312,"context_line":"            default\u003dNone,"},{"line_number":313,"context_line":"            help\u003d_(\u0027IPv4/IPv6\u0027))"},{"line_number":314,"context_line":"        parser.add_argument("},{"line_number":315,"context_line":"            \u0027--protocol\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_5e009734","line":312,"updated":"2015-10-19 15:46:33.000000000","message":"What breaks if you remove this line? In other words, leave the default completely up to the server.","commit_id":"95bd244d12d30ead94ce4644847c69ba545668b4"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"839e602daab8b7c418c3479eb1d9beefa41c1270","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            help\u003d_(\u0027Direction of traffic: ingress/egress.\u0027))"},{"line_number":310,"context_line":"        parser.add_argument("},{"line_number":311,"context_line":"            \u0027--ethertype\u0027,"},{"line_number":312,"context_line":"            default\u003dNone,"},{"line_number":313,"context_line":"            help\u003d_(\u0027IPv4/IPv6\u0027))"},{"line_number":314,"context_line":"        parser.add_argument("},{"line_number":315,"context_line":"            \u0027--protocol\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_f962ddd7","line":312,"in_reply_to":"3a29b11f_5e009734","updated":"2015-10-19 15:49:48.000000000","message":"If I remove this line lot of security group create tests fails. by this everything is working the way it is supposed to. This none is used when user does not give any value.","commit_id":"95bd244d12d30ead94ce4644847c69ba545668b4"},{"author":{"_account_id":9970,"name":"John Kasperski","email":"jckasper@linux.vnet.ibm.com","username":"jckasper"},"change_message_id":"2d2ff720eae30d9b8229ac4d2e2d60ec65da6694","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            ethertype \u003d \u0027IPv6\u0027"},{"line_number":97,"context_line":"        else:"},{"line_number":98,"context_line":"            ethertype \u003d \u0027IPv4\u0027"},{"line_number":99,"context_line":"        return ethertype"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class ListSecurityGroup(neutronV20.ListCommand):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a29b11f_c44db873","line":99,"updated":"2015-10-19 16:01:17.000000000","message":"If the user specified an invalid combination such as:  protocol \u003d \u0027icmp\u0027 and ethertype \u003d \u0027IPv6\u0027 ..  the above logic is going to change the ethertype to \u0027IPv4\u0027 instead of returning a failure.","commit_id":"af7d76534a90ecdbfa61b055e554ae7f20d8d4db"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"de5f037f8c94b54428acfde96d8741bd70a54fd1","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            ethertype \u003d \u0027IPv6\u0027"},{"line_number":97,"context_line":"        else:"},{"line_number":98,"context_line":"            ethertype \u003d \u0027IPv4\u0027"},{"line_number":99,"context_line":"        return ethertype"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class ListSecurityGroup(neutronV20.ListCommand):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a29b11f_dff33709","line":99,"in_reply_to":"3a29b11f_0049555f","updated":"2015-10-19 19:41:25.000000000","message":"+1 for Henry.","commit_id":"af7d76534a90ecdbfa61b055e554ae7f20d8d4db"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"bf502b93de73852aa132b8c3d61276e6a20ab5a5","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            ethertype \u003d \u0027IPv6\u0027"},{"line_number":97,"context_line":"        else:"},{"line_number":98,"context_line":"            ethertype \u003d \u0027IPv4\u0027"},{"line_number":99,"context_line":"        return ethertype"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class ListSecurityGroup(neutronV20.ListCommand):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a29b11f_0049555f","line":99,"in_reply_to":"3a29b11f_c44db873","updated":"2015-10-19 18:21:49.000000000","message":"It won\u0027t change any user value\n\nif protocol \u003d\u003d \u0027icmpv6\u0027 and ethertype is None \n\nand ethertype is none. ( if ethertype is not given by user)","commit_id":"af7d76534a90ecdbfa61b055e554ae7f20d8d4db"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"8c90bba948eaf074af48480325569c00fd6f200c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            ethertype \u003d \u0027IPv6\u0027"},{"line_number":97,"context_line":"        else:"},{"line_number":98,"context_line":"            ethertype \u003d \u0027IPv4\u0027"},{"line_number":99,"context_line":"        return ethertype"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class ListSecurityGroup(neutronV20.ListCommand):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a29b11f_e4a6b4c0","line":99,"in_reply_to":"3a29b11f_c44db873","updated":"2015-10-19 16:07:29.000000000","message":"Yes, that is what I was trying to say in patch set 4.","commit_id":"af7d76534a90ecdbfa61b055e554ae7f20d8d4db"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"828eb8cde940b0bd713b75ddbdef8359c140a223","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            ethertype \u003d \u0027IPv6\u0027"},{"line_number":97,"context_line":"        else:"},{"line_number":98,"context_line":"            ethertype \u003d \u0027IPv4\u0027"},{"line_number":99,"context_line":"        return ethertype"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class ListSecurityGroup(neutronV20.ListCommand):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a29b11f_a2550251","line":99,"in_reply_to":"3a29b11f_dff33709","updated":"2015-10-19 20:18:19.000000000","message":"changed the logic and tested its not modifying user value. sorry that was checked in a wrong window before. Thanks for comments I appreciate it.","commit_id":"af7d76534a90ecdbfa61b055e554ae7f20d8d4db"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"99138bf2e349020ee29833b13edde322efd035d6","unresolved":false,"context_lines":[{"line_number":94,"context_line":"def generate_default_ethertype(ethertype, protocol):"},{"line_number":95,"context_line":"        if ethertype is None:"},{"line_number":96,"context_line":"            if protocol \u003d\u003d \u0027icmpv6\u0027:"},{"line_number":97,"context_line":"                ethertype \u003d\u003d \u0027IPv6\u0027"},{"line_number":98,"context_line":"            else:"},{"line_number":99,"context_line":"                ethertype \u003d \u0027IPv4\u0027"},{"line_number":100,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_0dde5e3f","line":97,"updated":"2015-10-20 01:52:38.000000000","message":"Seems more readable than the earlier format (+1)","commit_id":"3ff71b0387dbf3094394dbaf6fc2c0c49bc79b7a"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"2364145996e192ec4c134491e4b10b275fe74cc8","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            else:"},{"line_number":99,"context_line":"                ethertype \u003d \u0027IPv4\u0027"},{"line_number":100,"context_line":"        else:"},{"line_number":101,"context_line":"            ethertype \u003d ethertype"},{"line_number":102,"context_line":"        return ethertype"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_8e92659e","line":101,"updated":"2015-10-20 03:08:22.000000000","message":"Lines 100-101 are not needed.","commit_id":"3ff71b0387dbf3094394dbaf6fc2c0c49bc79b7a"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"6a3e68a497437198c9b6a7dbc96fcc312ef2872c","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            else:"},{"line_number":99,"context_line":"                ethertype \u003d \u0027IPv4\u0027"},{"line_number":100,"context_line":"        else:"},{"line_number":101,"context_line":"            ethertype \u003d ethertype"},{"line_number":102,"context_line":"        return ethertype"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_2ec5513b","line":101,"in_reply_to":"3a29b11f_8e92659e","updated":"2015-10-20 03:19:40.000000000","message":"done sir ! Thanks","commit_id":"3ff71b0387dbf3094394dbaf6fc2c0c49bc79b7a"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"2364145996e192ec4c134491e4b10b275fe74cc8","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        body \u003d {\u0027security_group_id\u0027: _security_group_id,"},{"line_number":351,"context_line":"                \u0027direction\u0027: parsed_args.direction,"},{"line_number":352,"context_line":"                \u0027ethertype\u0027: generate_default_ethertype(parsed_args.ethertype,"},{"line_number":353,"context_line":"                                                        parsed_args.protocol)}"},{"line_number":354,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":355,"context_line":"                               [\u0027protocol\u0027, \u0027port_range_min\u0027, \u0027port_range_max\u0027,"},{"line_number":356,"context_line":"                                \u0027remote_ip_prefix\u0027, \u0027tenant_id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_4eb52d2f","line":353,"updated":"2015-10-20 03:08:22.000000000","message":"I think this would be better:\n\n  \u0027ethertype\u0027: parsed_args.ethertype or\n               default_ethertype_for(parsed_args.protocol)\n\nthen you don\u0027t need to check for None in the function.","commit_id":"3ff71b0387dbf3094394dbaf6fc2c0c49bc79b7a"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"2f51ca7d699952550c46de4bee11c192acd4ecb6","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        body \u003d {\u0027security_group_id\u0027: _security_group_id,"},{"line_number":351,"context_line":"                \u0027direction\u0027: parsed_args.direction,"},{"line_number":352,"context_line":"                \u0027ethertype\u0027: generate_default_ethertype(parsed_args.ethertype,"},{"line_number":353,"context_line":"                                                        parsed_args.protocol)}"},{"line_number":354,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":355,"context_line":"                               [\u0027protocol\u0027, \u0027port_range_min\u0027, \u0027port_range_max\u0027,"},{"line_number":356,"context_line":"                                \u0027remote_ip_prefix\u0027, \u0027tenant_id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_b1ca20a0","line":353,"in_reply_to":"3a29b11f_4eb52d2f","updated":"2015-10-20 03:53:03.000000000","message":"Henry I tried this some time it throws exception (local variable \u0027ethertype\u0027 referenced before assignment ) when i do not specify protocol . I think we should keep this it working fine this way.","commit_id":"3ff71b0387dbf3094394dbaf6fc2c0c49bc79b7a"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"5bc6e0ce628cca9a349ef2c04d9345016f5e8dc2","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        body \u003d {\u0027security_group_id\u0027: _security_group_id,"},{"line_number":351,"context_line":"                \u0027direction\u0027: parsed_args.direction,"},{"line_number":352,"context_line":"                \u0027ethertype\u0027: generate_default_ethertype(parsed_args.ethertype,"},{"line_number":353,"context_line":"                                                        parsed_args.protocol)}"},{"line_number":354,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":355,"context_line":"                               [\u0027protocol\u0027, \u0027port_range_min\u0027, \u0027port_range_max\u0027,"},{"line_number":356,"context_line":"                                \u0027remote_ip_prefix\u0027, \u0027tenant_id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_ce861ddb","line":353,"in_reply_to":"3a29b11f_4eb52d2f","updated":"2015-10-20 03:24:38.000000000","message":"let me check what happens if I does this if it worked the way it supposed to then I\u0027ll do this","commit_id":"3ff71b0387dbf3094394dbaf6fc2c0c49bc79b7a"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"5725b02e534cb2554b8f9fdafd3109b01631a590","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        body \u003d {\u0027security_group_id\u0027: _security_group_id,"},{"line_number":351,"context_line":"                \u0027direction\u0027: parsed_args.direction,"},{"line_number":352,"context_line":"                \u0027ethertype\u0027: generate_default_ethertype(parsed_args.ethertype,"},{"line_number":353,"context_line":"                                                        parsed_args.protocol)}"},{"line_number":354,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":355,"context_line":"                               [\u0027protocol\u0027, \u0027port_range_min\u0027, \u0027port_range_max\u0027,"},{"line_number":356,"context_line":"                                \u0027remote_ip_prefix\u0027, \u0027tenant_id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_ea35ecd9","line":353,"in_reply_to":"3a29b11f_b1ca20a0","updated":"2015-10-20 13:59:45.000000000","message":"I tried it myself before suggesting it and it worked fine, but the new patch set is OK with me.","commit_id":"3ff71b0387dbf3094394dbaf6fc2c0c49bc79b7a"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"c2f87a80d7f0514ef27124faa70e2da4f6c41756","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        body \u003d {\u0027security_group_id\u0027: _security_group_id,"},{"line_number":351,"context_line":"                \u0027direction\u0027: parsed_args.direction,"},{"line_number":352,"context_line":"                \u0027ethertype\u0027: generate_default_ethertype(parsed_args.ethertype,"},{"line_number":353,"context_line":"                                                        parsed_args.protocol)}"},{"line_number":354,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":355,"context_line":"                               [\u0027protocol\u0027, \u0027port_range_min\u0027, \u0027port_range_max\u0027,"},{"line_number":356,"context_line":"                                \u0027remote_ip_prefix\u0027, \u0027tenant_id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_d259be5b","line":353,"in_reply_to":"3a29b11f_ea35ecd9","updated":"2015-10-20 16:01:34.000000000","message":"ok done this","commit_id":"3ff71b0387dbf3094394dbaf6fc2c0c49bc79b7a"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"d412323a3c2f8305f8eebb8f76c6e321e94cc266","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"def generate_default_ethertype(ethertype, protocol):"},{"line_number":95,"context_line":"        if ethertype is None:"},{"line_number":96,"context_line":"            if protocol \u003d\u003d \u0027icmpv6\u0027:"},{"line_number":97,"context_line":"                ethertype \u003d\u003d \u0027IPv6\u0027"},{"line_number":98,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a29b11f_e3be80d3","line":95,"updated":"2015-10-20 11:48:03.000000000","message":"plz fix formatting issues. Alignment should be 4 spaces.","commit_id":"d3c643c5f360c1e4efbf2456ba5f937e8942acaa"},{"author":{"_account_id":14615,"name":"Sergey Belous","email":"belous.py@gmail.com","username":"sbelous"},"change_message_id":"623bb962a5a7feaf77318fe9803d450621628ca9","unresolved":false,"context_lines":[{"line_number":312,"context_line":"            help\u003d_(\u0027Direction of traffic: ingress/egress.\u0027))"},{"line_number":313,"context_line":"        parser.add_argument("},{"line_number":314,"context_line":"            \u0027--ethertype\u0027,"},{"line_number":315,"context_line":"            default\u003dNone,"},{"line_number":316,"context_line":"            help\u003d_(\u0027IPv4/IPv6\u0027))"},{"line_number":317,"context_line":"        parser.add_argument("},{"line_number":318,"context_line":"            \u0027--protocol\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a29b11f_40d87fef","line":315,"range":{"start_line":315,"start_character":12,"end_line":315,"end_character":24},"updated":"2015-10-20 14:45:22.000000000","message":"Is it OK, that we change the default value to None? may be better to leave IPv4 here and add validation that if protocol is icmpv6, then set ethertype to IPv6?","commit_id":"d3c643c5f360c1e4efbf2456ba5f937e8942acaa"},{"author":{"_account_id":9970,"name":"John Kasperski","email":"jckasper@linux.vnet.ibm.com","username":"jckasper"},"change_message_id":"f1c3328a17bffd0a0d9da5585a403da8370720ca","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        ethertype \u003d \u0027IPv6\u0027"},{"line_number":97,"context_line":"    else:"},{"line_number":98,"context_line":"        ethertype \u003d \u0027IPv4\u0027"},{"line_number":99,"context_line":"    return ethertype"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class ListSecurityGroup(neutronV20.ListCommand):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a29b11f_3b1d6d0f","line":99,"updated":"2015-10-20 16:46:54.000000000","message":"Simply even further:\n\n    if protocol \u003d\u003d \u0027icmpv6\u0027:\n        return \u0027IPv6\u0027\n    return \u0027IPv4\u0027","commit_id":"63faa05b5efb0056f77b5271332e80131e731ca6"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"0cb1e0bd487628a7ff71f0c3a7e13f1630ec3a0c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        ethertype \u003d \u0027IPv6\u0027"},{"line_number":97,"context_line":"    else:"},{"line_number":98,"context_line":"        ethertype \u003d \u0027IPv4\u0027"},{"line_number":99,"context_line":"    return ethertype"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class ListSecurityGroup(neutronV20.ListCommand):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a29b11f_a7babebe","line":99,"in_reply_to":"3a29b11f_3b1d6d0f","updated":"2015-10-20 18:08:42.000000000","message":"Done","commit_id":"63faa05b5efb0056f77b5271332e80131e731ca6"},{"author":{"_account_id":14615,"name":"Sergey Belous","email":"belous.py@gmail.com","username":"sbelous"},"change_message_id":"3a0a522d391a32f53c5aee05af5cbc58e30ea3ee","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            help\u003d_(\u0027Direction of traffic: ingress/egress.\u0027))"},{"line_number":310,"context_line":"        parser.add_argument("},{"line_number":311,"context_line":"            \u0027--ethertype\u0027,"},{"line_number":312,"context_line":"            default\u003dNone,"},{"line_number":313,"context_line":"            help\u003d_(\u0027IPv4/IPv6\u0027))"},{"line_number":314,"context_line":"        parser.add_argument("},{"line_number":315,"context_line":"            \u0027--protocol\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a29b11f_70d5251a","line":312,"range":{"start_line":312,"start_character":12,"end_line":312,"end_character":25},"updated":"2015-10-21 08:20:48.000000000","message":"Anyway, in add_argument() default value of \u0027default\u0027 argument is \u0027None\u0027: https://docs.python.org/3/library/argparse.html#default\n\nIt\u0027s not necessary to set it to \u0027None\u0027 again :)","commit_id":"0bc7d9b24d38e63fec1e6d7298333719ead39fe8"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"5f0a77e39f64fceb7a6d9ee147fd580cea72a7fa","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            help\u003d_(\u0027Direction of traffic: ingress/egress.\u0027))"},{"line_number":310,"context_line":"        parser.add_argument("},{"line_number":311,"context_line":"            \u0027--ethertype\u0027,"},{"line_number":312,"context_line":"            default\u003dNone,"},{"line_number":313,"context_line":"            help\u003d_(\u0027IPv4/IPv6\u0027))"},{"line_number":314,"context_line":"        parser.add_argument("},{"line_number":315,"context_line":"            \u0027--protocol\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a29b11f_ea6b2f1c","line":312,"in_reply_to":"3a29b11f_70d5251a","updated":"2015-10-22 20:40:11.000000000","message":"ok done","commit_id":"0bc7d9b24d38e63fec1e6d7298333719ead39fe8"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"70f7ea94e2287828161473bd19313c5d5ab865f9","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        body \u003d {\u0027security_group_id\u0027: _security_group_id,"},{"line_number":346,"context_line":"                \u0027direction\u0027: parsed_args.direction,"},{"line_number":347,"context_line":"                \u0027ethertype\u0027: parsed_args.ethertype or"},{"line_number":348,"context_line":"                generate_default_ethertype(parsed_args.protocol)}"},{"line_number":349,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":350,"context_line":"                               [\u0027protocol\u0027, \u0027port_range_min\u0027, \u0027port_range_max\u0027,"},{"line_number":351,"context_line":"                                \u0027remote_ip_prefix\u0027, \u0027tenant_id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a29b11f_4a0727ca","line":348,"updated":"2015-10-20 22:54:40.000000000","message":"nit:  Wouldn\u0027t mind this indented another 4 spaces.","commit_id":"0bc7d9b24d38e63fec1e6d7298333719ead39fe8"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"f7208e8e0bff186942ddb12736cf3e7755c91a37","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        body \u003d {\u0027security_group_id\u0027: _security_group_id,"},{"line_number":346,"context_line":"                \u0027direction\u0027: parsed_args.direction,"},{"line_number":347,"context_line":"                \u0027ethertype\u0027: parsed_args.ethertype or"},{"line_number":348,"context_line":"                generate_default_ethertype(parsed_args.protocol)}"},{"line_number":349,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":350,"context_line":"                               [\u0027protocol\u0027, \u0027port_range_min\u0027, \u0027port_range_max\u0027,"},{"line_number":351,"context_line":"                                \u0027remote_ip_prefix\u0027, \u0027tenant_id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a29b11f_aa92f09d","line":348,"in_reply_to":"3a29b11f_0276d2a3","updated":"2015-10-23 20:03:43.000000000","message":"Really?  Strange.   I guess pep8 isn\u0027t always right.  ;)","commit_id":"0bc7d9b24d38e63fec1e6d7298333719ead39fe8"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"90b771779814bbb0ec125e0ddc202878daf3ceb1","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        body \u003d {\u0027security_group_id\u0027: _security_group_id,"},{"line_number":346,"context_line":"                \u0027direction\u0027: parsed_args.direction,"},{"line_number":347,"context_line":"                \u0027ethertype\u0027: parsed_args.ethertype or"},{"line_number":348,"context_line":"                generate_default_ethertype(parsed_args.protocol)}"},{"line_number":349,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":350,"context_line":"                               [\u0027protocol\u0027, \u0027port_range_min\u0027, \u0027port_range_max\u0027,"},{"line_number":351,"context_line":"                                \u0027remote_ip_prefix\u0027, \u0027tenant_id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a29b11f_0276d2a3","line":348,"in_reply_to":"3a29b11f_4a0727ca","updated":"2015-10-21 15:34:27.000000000","message":"i tried this it make it fail pep8 test.","commit_id":"0bc7d9b24d38e63fec1e6d7298333719ead39fe8"}]}
