)]}'
{"openstack/network/v2/_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"453297e62de26e356107732abfb5e5eca9aa213c","unresolved":true,"context_lines":[{"line_number":4144,"context_line":"        :param router: Either the router ID or an instance of"},{"line_number":4145,"context_line":"            :class:`~openstack.network.v2.router.Router`"},{"line_number":4146,"context_line":"        :param kwargs query: Optional query parameters to be sent to limit"},{"line_number":4147,"context_line":"                             the resources being returned."},{"line_number":4148,"context_line":"        :returns: A generator of conntrack helper objects"},{"line_number":4149,"context_line":"        :rtype:"},{"line_number":4150,"context_line":"            :class: `~openstack.network.v2.l3_conntrack_helper.ConntrackHelper`"}],"source_content_type":"text/x-python","patch_set":2,"id":"8ec082c5_6afa53e1","line":4147,"range":{"start_line":4147,"start_character":13,"end_line":4147,"end_character":29},"updated":"2021-03-31 10:25:14.000000000","message":"strike","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"696c3a25c3f9650f9d1e2dea72ca5860a468a93f","unresolved":false,"context_lines":[{"line_number":4144,"context_line":"        :param router: Either the router ID or an instance of"},{"line_number":4145,"context_line":"            :class:`~openstack.network.v2.router.Router`"},{"line_number":4146,"context_line":"        :param kwargs query: Optional query parameters to be sent to limit"},{"line_number":4147,"context_line":"                             the resources being returned."},{"line_number":4148,"context_line":"        :returns: A generator of conntrack helper objects"},{"line_number":4149,"context_line":"        :rtype:"},{"line_number":4150,"context_line":"            :class: `~openstack.network.v2.l3_conntrack_helper.ConntrackHelper`"}],"source_content_type":"text/x-python","patch_set":2,"id":"95d0b04f_26bb21d8","line":4147,"range":{"start_line":4147,"start_character":13,"end_line":4147,"end_character":29},"in_reply_to":"8ec082c5_6afa53e1","updated":"2021-03-31 10:42:27.000000000","message":"Done","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"453297e62de26e356107732abfb5e5eca9aa213c","unresolved":true,"context_lines":[{"line_number":4172,"context_line":"        return self._get(_l3_conntrack_helper.ConntrackHelper,"},{"line_number":4173,"context_line":"                         conntrack_helper, router_id\u003drouter.id)"},{"line_number":4174,"context_line":""},{"line_number":4175,"context_line":"    def find_conntrack_helper(self, conntrack_helper_id, router,"},{"line_number":4176,"context_line":"                              ignore_missing\u003dTrue, **args):"},{"line_number":4177,"context_line":"        \"\"\"Find a single L3 conntrack_helper"},{"line_number":4178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"449b4027_8b5a8203","line":4175,"range":{"start_line":4175,"start_character":36,"end_line":4175,"end_character":55},"updated":"2021-03-31 10:25:14.000000000","message":"Can an L3 conntrack_helper ever have a name? If it does, this should be called \u0027name_or_id\u0027 or similar. If it doesn\u0027t, this method doesn\u0027t really make sense. \u0027find_*\u0027 methods are only useful where you want to support getting things by name instead of by ID. In all other cases, you\u0027d use \u0027get_*\u0027\n\nLater: Looking at the resource, it seems the answer is no and therefore we should probably drop this","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"ae6b80ccd806fbcb62340f08dbb9f6d592d444d6","unresolved":true,"context_lines":[{"line_number":4172,"context_line":"        return self._get(_l3_conntrack_helper.ConntrackHelper,"},{"line_number":4173,"context_line":"                         conntrack_helper, router_id\u003drouter.id)"},{"line_number":4174,"context_line":""},{"line_number":4175,"context_line":"    def find_conntrack_helper(self, conntrack_helper_id, router,"},{"line_number":4176,"context_line":"                              ignore_missing\u003dTrue, **args):"},{"line_number":4177,"context_line":"        \"\"\"Find a single L3 conntrack_helper"},{"line_number":4178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"aadfebf0_69853d5d","line":4175,"range":{"start_line":4175,"start_character":36,"end_line":4175,"end_character":55},"in_reply_to":"449b4027_8b5a8203","updated":"2021-03-31 10:30:19.000000000","message":"I was actually also a bit confused by that but decided to still give it a go. The difference to get_conntrack_helper would be that we can use ignore_missing.","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"696c3a25c3f9650f9d1e2dea72ca5860a468a93f","unresolved":false,"context_lines":[{"line_number":4172,"context_line":"        return self._get(_l3_conntrack_helper.ConntrackHelper,"},{"line_number":4173,"context_line":"                         conntrack_helper, router_id\u003drouter.id)"},{"line_number":4174,"context_line":""},{"line_number":4175,"context_line":"    def find_conntrack_helper(self, conntrack_helper_id, router,"},{"line_number":4176,"context_line":"                              ignore_missing\u003dTrue, **args):"},{"line_number":4177,"context_line":"        \"\"\"Find a single L3 conntrack_helper"},{"line_number":4178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"c89f8dd1_fbf9c1e5","line":4175,"range":{"start_line":4175,"start_character":36,"end_line":4175,"end_character":55},"in_reply_to":"aadfebf0_69853d5d","updated":"2021-03-31 10:42:27.000000000","message":"It can\u0027t have name so I removed it","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"453297e62de26e356107732abfb5e5eca9aa213c","unresolved":true,"context_lines":[{"line_number":4180,"context_line":"        :param router: The value can be the ID of a Router or a"},{"line_number":4181,"context_line":"            :class:`~openstack.network.v2.router.Router` instance."},{"line_number":4182,"context_line":"        :param bool ignore_missing: When set to ``False``"},{"line_number":4183,"context_line":"                    :class:`~openstack.exceptions.ResourceNotFound` will be"},{"line_number":4184,"context_line":"                    raised when the resource does not exist."},{"line_number":4185,"context_line":"                    When set to ``True``, None will be returned when"},{"line_number":4186,"context_line":"                    attempting to find a nonexistent resource."}],"source_content_type":"text/x-python","patch_set":2,"id":"0a42436f_a222fc84","line":4183,"range":{"start_line":4183,"start_character":12,"end_line":4183,"end_character":20},"updated":"2021-03-31 10:25:14.000000000","message":"strike","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"453297e62de26e356107732abfb5e5eca9aa213c","unresolved":true,"context_lines":[{"line_number":4185,"context_line":"                    When set to ``True``, None will be returned when"},{"line_number":4186,"context_line":"                    attempting to find a nonexistent resource."},{"line_number":4187,"context_line":"        :param dict args: Any additional parameters to be passed into"},{"line_number":4188,"context_line":"                          underlying methods. such as query filters."},{"line_number":4189,"context_line":"        :returns: One"},{"line_number":4190,"context_line":"            :class:`~openstack.network.v2.l3_conntrack_helper.ConntrackHelper`"},{"line_number":4191,"context_line":"            or None"}],"source_content_type":"text/x-python","patch_set":2,"id":"4670be20_6d801cfb","line":4188,"range":{"start_line":4188,"start_character":12,"end_line":4188,"end_character":26},"updated":"2021-03-31 10:25:14.000000000","message":"strike","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"453297e62de26e356107732abfb5e5eca9aa213c","unresolved":true,"context_lines":[{"line_number":4205,"context_line":"        :param router: The value can be the ID of a Router or a"},{"line_number":4206,"context_line":"            :class:`~openstack.network.v2.router.Router` instance."},{"line_number":4207,"context_line":"        :attrs kwargs: The attributes to update on the L3 conntrack helper"},{"line_number":4208,"context_line":"                       represented by ``value``."},{"line_number":4209,"context_line":""},{"line_number":4210,"context_line":"        :returns: The updated conntrack helper"},{"line_number":4211,"context_line":"        :rtype:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ec40d66_202c7384","line":4208,"range":{"start_line":4208,"start_character":13,"end_line":4208,"end_character":23},"updated":"2021-03-31 10:25:14.000000000","message":"strike","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"}],"openstack/tests/functional/network/v2/test_l3_conntrack_helper.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"453297e62de26e356107732abfb5e5eca9aa213c","unresolved":true,"context_lines":[{"line_number":33,"context_line":"        self.ROT_NAME \u003d self.getUniqueString()"},{"line_number":34,"context_line":"        # Create Router"},{"line_number":35,"context_line":"        sot \u003d self.conn.network.create_router(name\u003dself.ROT_NAME)"},{"line_number":36,"context_line":"        assert isinstance(sot, router.Router)"},{"line_number":37,"context_line":"        self.assertEqual(self.ROT_NAME, sot.name)"},{"line_number":38,"context_line":"        self.ROT_ID \u003d sot.id"},{"line_number":39,"context_line":"        self.ROT \u003d sot"}],"source_content_type":"text/x-python","patch_set":2,"id":"8c679ce6_539b3cef","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":25},"updated":"2021-03-31 10:25:14.000000000","message":"self.assertIsInstance ?","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"696c3a25c3f9650f9d1e2dea72ca5860a468a93f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        self.ROT_NAME \u003d self.getUniqueString()"},{"line_number":34,"context_line":"        # Create Router"},{"line_number":35,"context_line":"        sot \u003d self.conn.network.create_router(name\u003dself.ROT_NAME)"},{"line_number":36,"context_line":"        assert isinstance(sot, router.Router)"},{"line_number":37,"context_line":"        self.assertEqual(self.ROT_NAME, sot.name)"},{"line_number":38,"context_line":"        self.ROT_ID \u003d sot.id"},{"line_number":39,"context_line":"        self.ROT \u003d sot"}],"source_content_type":"text/x-python","patch_set":2,"id":"5231209c_3bfdaa3f","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":25},"in_reply_to":"1e329769_5ef1fdc8","updated":"2021-03-31 10:42:27.000000000","message":"Done\nI did it like that as I wanted to be consistent with other tests.","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"ae6b80ccd806fbcb62340f08dbb9f6d592d444d6","unresolved":true,"context_lines":[{"line_number":33,"context_line":"        self.ROT_NAME \u003d self.getUniqueString()"},{"line_number":34,"context_line":"        # Create Router"},{"line_number":35,"context_line":"        sot \u003d self.conn.network.create_router(name\u003dself.ROT_NAME)"},{"line_number":36,"context_line":"        assert isinstance(sot, router.Router)"},{"line_number":37,"context_line":"        self.assertEqual(self.ROT_NAME, sot.name)"},{"line_number":38,"context_line":"        self.ROT_ID \u003d sot.id"},{"line_number":39,"context_line":"        self.ROT \u003d sot"}],"source_content_type":"text/x-python","patch_set":2,"id":"1e329769_5ef1fdc8","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":25},"in_reply_to":"8c679ce6_539b3cef","updated":"2021-03-31 10:30:19.000000000","message":"yeah, right","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"453297e62de26e356107732abfb5e5eca9aa213c","unresolved":true,"context_lines":[{"line_number":44,"context_line":"            protocol\u003dself.PROTOCOL,"},{"line_number":45,"context_line":"            helper\u003dself.HELPER,"},{"line_number":46,"context_line":"            port\u003dself.PORT)"},{"line_number":47,"context_line":"        assert isinstance(ct_helper, _l3_conntrack_helper.ConntrackHelper)"},{"line_number":48,"context_line":"        self.CT_HELPER \u003d ct_helper"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fd044767_d7070822","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":25},"updated":"2021-03-31 10:25:14.000000000","message":"self.assertIsInstance ?","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"696c3a25c3f9650f9d1e2dea72ca5860a468a93f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            protocol\u003dself.PROTOCOL,"},{"line_number":45,"context_line":"            helper\u003dself.HELPER,"},{"line_number":46,"context_line":"            port\u003dself.PORT)"},{"line_number":47,"context_line":"        assert isinstance(ct_helper, _l3_conntrack_helper.ConntrackHelper)"},{"line_number":48,"context_line":"        self.CT_HELPER \u003d ct_helper"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"087754a5_d1149592","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":25},"in_reply_to":"fd044767_d7070822","updated":"2021-03-31 10:42:27.000000000","message":"Done","commit_id":"04e6452b60d21f90d65b35ea965a07f5b4c73e39"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"241609920c0a0a034a9cb56f0a49e8bf05fc5dd2","unresolved":true,"context_lines":[{"line_number":58,"context_line":"            self.CT_HELPER.id, self.ROT_ID)"},{"line_number":59,"context_line":"        self.assertEqual(self.PROTOCOL, sot.protocol)"},{"line_number":60,"context_line":"        self.assertEqual(self.HELPER, sot.helper)"},{"line_number":61,"context_line":"        self.assertEqual(self.PORT, sot.port)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_get(self):"},{"line_number":64,"context_line":"        sot \u003d self.conn.network.get_conntrack_helper("}],"source_content_type":"text/x-python","patch_set":3,"id":"aacd82d0_14957ff0","line":61,"updated":"2021-03-31 10:56:06.000000000","message":"Whoops","commit_id":"98c171138c2fe22edfcc056a8c40adc9751389cb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"cf48814113f22ed584bcef4571125a084226be23","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            self.CT_HELPER.id, self.ROT_ID)"},{"line_number":59,"context_line":"        self.assertEqual(self.PROTOCOL, sot.protocol)"},{"line_number":60,"context_line":"        self.assertEqual(self.HELPER, sot.helper)"},{"line_number":61,"context_line":"        self.assertEqual(self.PORT, sot.port)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_get(self):"},{"line_number":64,"context_line":"        sot \u003d self.conn.network.get_conntrack_helper("}],"source_content_type":"text/x-python","patch_set":3,"id":"388cc78d_44622157","line":61,"in_reply_to":"69100079_b3084a10","updated":"2021-03-31 13:00:04.000000000","message":"Ack","commit_id":"98c171138c2fe22edfcc056a8c40adc9751389cb"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"50c04ba82ae75f0eb5126bd5954c31716188071f","unresolved":true,"context_lines":[{"line_number":58,"context_line":"            self.CT_HELPER.id, self.ROT_ID)"},{"line_number":59,"context_line":"        self.assertEqual(self.PROTOCOL, sot.protocol)"},{"line_number":60,"context_line":"        self.assertEqual(self.HELPER, sot.helper)"},{"line_number":61,"context_line":"        self.assertEqual(self.PORT, sot.port)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_get(self):"},{"line_number":64,"context_line":"        sot \u003d self.conn.network.get_conntrack_helper("}],"source_content_type":"text/x-python","patch_set":3,"id":"69100079_b3084a10","line":61,"in_reply_to":"aacd82d0_14957ff0","updated":"2021-03-31 11:04:22.000000000","message":"sorry, I missed that. Now it\u0027s removed","commit_id":"98c171138c2fe22edfcc056a8c40adc9751389cb"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8bc3ffe7c7f2576511ed48732f84fd6231b897b2","unresolved":true,"context_lines":[{"line_number":22,"context_line":"    HELPER \u003d \"tftp\""},{"line_number":23,"context_line":"    PORT \u003d 69"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    ROT_ID \u003d None"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def setUp(self):"},{"line_number":28,"context_line":"        super(TestL3ConntrackHelper, self).setUp()"}],"source_content_type":"text/x-python","patch_set":4,"id":"de04ee29_da6f3f9f","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":11},"updated":"2021-05-27 11:28:25.000000000","message":"This corresponds to router_id. I am a bit surprised that \u0027router\u0027 is abbeviated to \"rot\".\nIf we have a chance to update this file in future, I would suggest to renamed it to \"ROUTER_ID\".","commit_id":"215403731db17e14506d2d83b17afd6df6d257d4"}]}
