)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"11c1f7b7e185820b44364a95f98bc416fab95d07","unresolved":false,"context_lines":[{"line_number":9,"context_line":"IPv6 attributes of subnet were validated whenever one of them"},{"line_number":10,"context_line":"was changed, but when previously no attributes or only one was set"},{"line_number":11,"context_line":"it could lead to erroneous result."},{"line_number":12,"context_line":"Now attributes equality is only tested if both attributes are are"},{"line_number":13,"context_line":"set to not None after update."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ie2ce837709f116221054c62cd980fd3f38fb1484"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa98f980_82b9a630","line":12,"updated":"2014-09-01 12:17:30.000000000","message":"nit: s/are are/are/g (there are 2 \"are\" here)\n\nWe aren\u0027t pirates ;-)","commit_id":"94b9680d6385f45d07737ee2df5e06c11cf2fcf4"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"0145e15817d1ce3b30b66d180495ffb8ceb85372","unresolved":false,"context_lines":[{"line_number":9,"context_line":"IPv6 attributes of subnet were validated whenever one of them"},{"line_number":10,"context_line":"was changed, but when previously no attributes or only one was set"},{"line_number":11,"context_line":"it could lead to erroneous result."},{"line_number":12,"context_line":"Now attributes equality is only tested if both attributes are are"},{"line_number":13,"context_line":"set to not None after update."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ie2ce837709f116221054c62cd980fd3f38fb1484"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa98f980_5de4030d","line":12,"in_reply_to":"fa98f980_5d3ec3b9","updated":"2014-09-01 12:52:33.000000000","message":"+1","commit_id":"94b9680d6385f45d07737ee2df5e06c11cf2fcf4"},{"author":{"_account_id":12737,"name":"Jacek Swiderski","email":"jacek.swiderski@codilime.com","username":"Altran"},"change_message_id":"c6900c06ad2d8f54468bf1e258b6946772f9ce24","unresolved":false,"context_lines":[{"line_number":9,"context_line":"IPv6 attributes of subnet were validated whenever one of them"},{"line_number":10,"context_line":"was changed, but when previously no attributes or only one was set"},{"line_number":11,"context_line":"it could lead to erroneous result."},{"line_number":12,"context_line":"Now attributes equality is only tested if both attributes are are"},{"line_number":13,"context_line":"set to not None after update."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ie2ce837709f116221054c62cd980fd3f38fb1484"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa98f980_5d3ec3b9","line":12,"in_reply_to":"fa98f980_82b9a630","updated":"2014-09-01 12:51:12.000000000","message":"Thanks - I was changing this sentence on weekend and didn\u0027t proof read it - but being pirate could be fun :)","commit_id":"94b9680d6385f45d07737ee2df5e06c11cf2fcf4"}],"neutron/db/db_base_plugin_v2.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"d20aa7206af6eb4ebf62ca481dbb3b2cd031c244","unresolved":false,"context_lines":[{"line_number":725,"context_line":"                       else cur_subnet[\u0027ipv6_ra_mode\u0027])"},{"line_number":726,"context_line":"            addr_mode \u003d (subnet[\u0027ipv6_address_mode\u0027] if address_mode_set"},{"line_number":727,"context_line":"                         else cur_subnet[\u0027ipv6_address_mode\u0027])"},{"line_number":728,"context_line":"            if ra_mode and addr_mode:"},{"line_number":729,"context_line":"                # Check that updated subnet ipv6 attributes do not conflict"},{"line_number":730,"context_line":"                self._validate_ipv6_combination(ra_mode, addr_mode)"},{"line_number":731,"context_line":"            self._validate_ipv6_update_dhcp(subnet, cur_subnet)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da9df570_d5e5a309","line":728,"updated":"2014-09-26 15:48:34.000000000","message":"If neither mode is being updated then we shouldn\u0027t need to re-validate the modes. Thus the condition from https://review.openstack.org/123756 might be better:\n\n  if (ra_mode_set or address_mode_set) and ra_mode and addr_mode:","commit_id":"27879a1dc05e79e288e6deb1ae92f0e9be9cfc06"},{"author":{"_account_id":12737,"name":"Jacek Swiderski","email":"jacek.swiderski@codilime.com","username":"Altran"},"change_message_id":"6cf5849df679a3890bb0ea98e597193ad1565725","unresolved":false,"context_lines":[{"line_number":725,"context_line":"                       else cur_subnet[\u0027ipv6_ra_mode\u0027])"},{"line_number":726,"context_line":"            addr_mode \u003d (subnet[\u0027ipv6_address_mode\u0027] if address_mode_set"},{"line_number":727,"context_line":"                         else cur_subnet[\u0027ipv6_address_mode\u0027])"},{"line_number":728,"context_line":"            if ra_mode and addr_mode:"},{"line_number":729,"context_line":"                # Check that updated subnet ipv6 attributes do not conflict"},{"line_number":730,"context_line":"                self._validate_ipv6_combination(ra_mode, addr_mode)"},{"line_number":731,"context_line":"            self._validate_ipv6_update_dhcp(subnet, cur_subnet)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baa201ad_9faf5f2b","line":728,"in_reply_to":"da9df570_d5e5a309","updated":"2014-09-29 10:50:04.000000000","message":"Done","commit_id":"27879a1dc05e79e288e6deb1ae92f0e9be9cfc06"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"5ca8e984d5bb465f6be2e16dfad9b0c01eeae070","unresolved":false,"context_lines":[{"line_number":748,"context_line":"                       else cur_subnet[\u0027ipv6_ra_mode\u0027])"},{"line_number":749,"context_line":"            addr_mode \u003d (subnet[\u0027ipv6_address_mode\u0027] if address_mode_set"},{"line_number":750,"context_line":"                         else cur_subnet[\u0027ipv6_address_mode\u0027])"},{"line_number":751,"context_line":"            if (ra_mode_set or address_mode_set) and ra_mode and addr_mode:"},{"line_number":752,"context_line":"                # Check that updated subnet ipv6 attributes do not conflict"},{"line_number":753,"context_line":"                self._validate_ipv6_combination(ra_mode, addr_mode)"},{"line_number":754,"context_line":"            self._validate_ipv6_update_dhcp(subnet, cur_subnet)"}],"source_content_type":"text/x-python","patch_set":10,"id":"baa201ad_0d2ac28f","line":751,"updated":"2014-10-06 19:57:28.000000000","message":"Isn\u0027t the problem really in _validate_ipv6_combination?  Shouldn\u0027t it be that method\u0027s responsibility to validate correctly?","commit_id":"c8a3cd3f5478433132f329bff83a373b37f2b41b"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"f162c9332024d9b94a7c8f42f6d08f3ea73d003a","unresolved":false,"context_lines":[{"line_number":748,"context_line":"                       else cur_subnet[\u0027ipv6_ra_mode\u0027])"},{"line_number":749,"context_line":"            addr_mode \u003d (subnet[\u0027ipv6_address_mode\u0027] if address_mode_set"},{"line_number":750,"context_line":"                         else cur_subnet[\u0027ipv6_address_mode\u0027])"},{"line_number":751,"context_line":"            if (ra_mode_set or address_mode_set) and ra_mode and addr_mode:"},{"line_number":752,"context_line":"                # Check that updated subnet ipv6 attributes do not conflict"},{"line_number":753,"context_line":"                self._validate_ipv6_combination(ra_mode, addr_mode)"},{"line_number":754,"context_line":"            self._validate_ipv6_update_dhcp(subnet, cur_subnet)"}],"source_content_type":"text/x-python","patch_set":10,"id":"baa201ad_8e6069a6","line":751,"in_reply_to":"baa201ad_0d2ac28f","updated":"2014-10-06 20:48:58.000000000","message":"Done","commit_id":"c8a3cd3f5478433132f329bff83a373b37f2b41b"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"5ca8e984d5bb465f6be2e16dfad9b0c01eeae070","unresolved":false,"context_lines":[{"line_number":759,"context_line":"                self._validate_ipv6_combination(subnet[\u0027ipv6_ra_mode\u0027],"},{"line_number":760,"context_line":"                                                subnet[\u0027ipv6_address_mode\u0027])"},{"line_number":761,"context_line":""},{"line_number":762,"context_line":"    def _validate_ipv6_combination(self, ra_mode, address_mode):"},{"line_number":763,"context_line":"        if ra_mode !\u003d address_mode:"},{"line_number":764,"context_line":"            msg \u003d _(\"ipv6_ra_mode set to \u0027%(ra_mode)s\u0027 with ipv6_address_mode \""},{"line_number":765,"context_line":"                    \"set to \u0027%(addr_mode)s\u0027 is not valid. \""}],"source_content_type":"text/x-python","patch_set":10,"id":"baa201ad_ed03be0d","line":762,"updated":"2014-10-06 19:57:28.000000000","message":"if ra_mode and address_mode and ra_mode !\u003d address_mode","commit_id":"c8a3cd3f5478433132f329bff83a373b37f2b41b"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"f162c9332024d9b94a7c8f42f6d08f3ea73d003a","unresolved":false,"context_lines":[{"line_number":759,"context_line":"                self._validate_ipv6_combination(subnet[\u0027ipv6_ra_mode\u0027],"},{"line_number":760,"context_line":"                                                subnet[\u0027ipv6_address_mode\u0027])"},{"line_number":761,"context_line":""},{"line_number":762,"context_line":"    def _validate_ipv6_combination(self, ra_mode, address_mode):"},{"line_number":763,"context_line":"        if ra_mode !\u003d address_mode:"},{"line_number":764,"context_line":"            msg \u003d _(\"ipv6_ra_mode set to \u0027%(ra_mode)s\u0027 with ipv6_address_mode \""},{"line_number":765,"context_line":"                    \"set to \u0027%(addr_mode)s\u0027 is not valid. \""}],"source_content_type":"text/x-python","patch_set":10,"id":"baa201ad_ae652db6","line":762,"in_reply_to":"baa201ad_ed03be0d","updated":"2014-10-06 20:48:58.000000000","message":"Done","commit_id":"c8a3cd3f5478433132f329bff83a373b37f2b41b"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"5ca8e984d5bb465f6be2e16dfad9b0c01eeae070","unresolved":false,"context_lines":[{"line_number":762,"context_line":"    def _validate_ipv6_combination(self, ra_mode, address_mode):"},{"line_number":763,"context_line":"        if ra_mode !\u003d address_mode:"},{"line_number":764,"context_line":"            msg \u003d _(\"ipv6_ra_mode set to \u0027%(ra_mode)s\u0027 with ipv6_address_mode \""},{"line_number":765,"context_line":"                    \"set to \u0027%(addr_mode)s\u0027 is not valid. \""},{"line_number":766,"context_line":"                    \"If both attributes are set, they must be the same value\""},{"line_number":767,"context_line":"                    ) % {\u0027ra_mode\u0027: ra_mode, \u0027addr_mode\u0027: address_mode}"},{"line_number":768,"context_line":"            raise n_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"baa201ad_6807bc18","line":765,"updated":"2014-10-06 19:57:28.000000000","message":"This message alreday describes how this should be validated.  \"If both attributes are set\"","commit_id":"c8a3cd3f5478433132f329bff83a373b37f2b41b"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"f162c9332024d9b94a7c8f42f6d08f3ea73d003a","unresolved":false,"context_lines":[{"line_number":762,"context_line":"    def _validate_ipv6_combination(self, ra_mode, address_mode):"},{"line_number":763,"context_line":"        if ra_mode !\u003d address_mode:"},{"line_number":764,"context_line":"            msg \u003d _(\"ipv6_ra_mode set to \u0027%(ra_mode)s\u0027 with ipv6_address_mode \""},{"line_number":765,"context_line":"                    \"set to \u0027%(addr_mode)s\u0027 is not valid. \""},{"line_number":766,"context_line":"                    \"If both attributes are set, they must be the same value\""},{"line_number":767,"context_line":"                    ) % {\u0027ra_mode\u0027: ra_mode, \u0027addr_mode\u0027: address_mode}"},{"line_number":768,"context_line":"            raise n_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"baa201ad_ce56f1cd","line":765,"in_reply_to":"baa201ad_6807bc18","updated":"2014-10-06 20:48:58.000000000","message":"Done","commit_id":"c8a3cd3f5478433132f329bff83a373b37f2b41b"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"b3cd4c8e019b8b4871361b0f9d478684c1c3ef8d","unresolved":false,"context_lines":[{"line_number":754,"context_line":"            self._validate_ipv6_update_dhcp(subnet, cur_subnet)"},{"line_number":755,"context_line":"        else:"},{"line_number":756,"context_line":"            self._validate_ipv6_dhcp(ra_mode_set, address_mode_set,"},{"line_number":757,"context_line":"                                     subnet[\u0027enable_dhcp\u0027])"},{"line_number":758,"context_line":"            if ra_mode_set and address_mode_set:"},{"line_number":759,"context_line":"                self._validate_ipv6_combination(subnet[\u0027ipv6_ra_mode\u0027],"},{"line_number":760,"context_line":"                                                subnet[\u0027ipv6_address_mode\u0027])"}],"source_content_type":"text/x-python","patch_set":13,"id":"baa201ad_1ad90422","line":757,"updated":"2014-10-07 12:02:55.000000000","message":"https://review.openstack.org/#/c/125328/ allows the mode to be set as None. In addition, ATTR_NOT_SPECIFIED is the default value. There doesn\u0027t seem to be difference between \u0027None\u0027 and ATTR_NOT_SPECIFIED. So if the default were to be changed to None, then the above check becomes redundant.","commit_id":"f41b730f2766e7b9e5564141e7bff0ea7eda2873"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"2bd1b212a7e75bf88a3cbf04bb3867d1dfa1fbe6","unresolved":false,"context_lines":[{"line_number":754,"context_line":"            self._validate_ipv6_update_dhcp(subnet, cur_subnet)"},{"line_number":755,"context_line":"        else:"},{"line_number":756,"context_line":"            self._validate_ipv6_dhcp(ra_mode_set, address_mode_set,"},{"line_number":757,"context_line":"                                     subnet[\u0027enable_dhcp\u0027])"},{"line_number":758,"context_line":"            if ra_mode_set and address_mode_set:"},{"line_number":759,"context_line":"                self._validate_ipv6_combination(subnet[\u0027ipv6_ra_mode\u0027],"},{"line_number":760,"context_line":"                                                subnet[\u0027ipv6_address_mode\u0027])"}],"source_content_type":"text/x-python","patch_set":13,"id":"baa201ad_3b5deb79","line":757,"in_reply_to":"baa201ad_1ad90422","updated":"2014-10-07 13:16:32.000000000","message":"Should we abandon this review and address everything in https://review.openstack.org/125328 ?","commit_id":"f41b730f2766e7b9e5564141e7bff0ea7eda2873"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"95a039f1ea5db163a65f862665dba19aea676c73","unresolved":false,"context_lines":[{"line_number":777,"context_line":"    def _validate_ipv6_combination(self, ra_mode, address_mode):"},{"line_number":778,"context_line":"        if ra_mode and address_mode and ra_mode !\u003d address_mode:"},{"line_number":779,"context_line":"            msg \u003d _(\"ipv6_ra_mode set to \u0027%(ra_mode)s\u0027 with ipv6_address_mode \""},{"line_number":780,"context_line":"                    \"set to \u0027%(addr_mode)s\u0027 is not valid. They must be the \""},{"line_number":781,"context_line":"                    \"same value.\""},{"line_number":782,"context_line":"                    ) % {\u0027ra_mode\u0027: ra_mode, \u0027addr_mode\u0027: address_mode}"},{"line_number":783,"context_line":"            raise n_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":13,"id":"baa201ad_7f759862","line":780,"updated":"2014-10-07 16:34:56.000000000","message":"I thought the previous message was fine.  But, I\u0027ll take either.","commit_id":"f41b730f2766e7b9e5564141e7bff0ea7eda2873"}],"neutron/tests/unit/test_db_plugin.py":[{"author":{"_account_id":9380,"name":"Sayaji Patil","email":"sayaji15@gmail.com","username":"Sayaji"},"change_message_id":"0e5cd0cee085847204f2254d6b44dbb5d641cdb9","unresolved":false,"context_lines":[{"line_number":3329,"context_line":"                                          subnet[\u0027subnet\u0027][\u0027id\u0027])"},{"line_number":3330,"context_line":"            res \u003d self.deserialize(self.fmt, req.get_response(self.api))"},{"line_number":3331,"context_line":"            self.assertEqual(res[\u0027subnet\u0027][\u0027ipv6_ra_mode\u0027],"},{"line_number":3332,"context_line":"                             data[\u0027subnet\u0027][\u0027ipv6_ra_mode\u0027])"},{"line_number":3333,"context_line":""},{"line_number":3334,"context_line":"    def test_update_subnet_ipv6_ra_attribute(self):"},{"line_number":3335,"context_line":"        with self.subnet(ip_version\u003d6, cidr\u003d\u0027fe80::/80\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_f5d7b2eb","line":3332,"updated":"2014-08-30 19:11:37.000000000","message":"nit:Expected value should be the first paramter\nnit: Could use constants.DHCPV6_STATEFUL instead of data[\u0027subnet\u0027][\u0027ipv6_ra_mode\u0027]","commit_id":"d4d4b8f66e6fbf0acb8d1621fd3d869278e7cefc"},{"author":{"_account_id":12737,"name":"Jacek Swiderski","email":"jacek.swiderski@codilime.com","username":"Altran"},"change_message_id":"8ec60e9d632098b877859d0a57a73f73be5b09a2","unresolved":false,"context_lines":[{"line_number":3329,"context_line":"                                          subnet[\u0027subnet\u0027][\u0027id\u0027])"},{"line_number":3330,"context_line":"            res \u003d self.deserialize(self.fmt, req.get_response(self.api))"},{"line_number":3331,"context_line":"            self.assertEqual(res[\u0027subnet\u0027][\u0027ipv6_ra_mode\u0027],"},{"line_number":3332,"context_line":"                             data[\u0027subnet\u0027][\u0027ipv6_ra_mode\u0027])"},{"line_number":3333,"context_line":""},{"line_number":3334,"context_line":"    def test_update_subnet_ipv6_ra_attribute(self):"},{"line_number":3335,"context_line":"        with self.subnet(ip_version\u003d6, cidr\u003d\u0027fe80::/80\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_cc222301","line":3332,"in_reply_to":"fa98f980_f5d7b2eb","updated":"2014-08-31 08:20:39.000000000","message":"In both cases I\u0027ve gone with keeping consistency with surrounding tests - I think both things are matter for a separate retractor if needed.","commit_id":"d4d4b8f66e6fbf0acb8d1621fd3d869278e7cefc"},{"author":{"_account_id":9380,"name":"Sayaji Patil","email":"sayaji15@gmail.com","username":"Sayaji"},"change_message_id":"0e5cd0cee085847204f2254d6b44dbb5d641cdb9","unresolved":false,"context_lines":[{"line_number":3335,"context_line":"        with self.subnet(ip_version\u003d6, cidr\u003d\u0027fe80::/80\u0027,"},{"line_number":3336,"context_line":"                         ipv6_ra_mode\u003dconstants.DHCPV6_STATEFUL,"},{"line_number":3337,"context_line":"                         ipv6_address_mode\u003dNone) as subnet:"},{"line_number":3338,"context_line":"            data \u003d {\u0027subnet\u0027: {\u0027ipv6_ra_mode\u0027: constants.DHCPV6_STATEFUL}}"},{"line_number":3339,"context_line":"            req \u003d self.new_update_request(\u0027subnets\u0027, data,"},{"line_number":3340,"context_line":"                                          subnet[\u0027subnet\u0027][\u0027id\u0027])"},{"line_number":3341,"context_line":"            res \u003d self.deserialize(self.fmt, req.get_response(self.api))"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_35305a56","line":3338,"updated":"2014-08-30 19:11:37.000000000","message":"The ipv6_ra_mode is updated to the same value as before, I am not sure if this correctly validates the update functionality.","commit_id":"d4d4b8f66e6fbf0acb8d1621fd3d869278e7cefc"},{"author":{"_account_id":12737,"name":"Jacek Swiderski","email":"jacek.swiderski@codilime.com","username":"Altran"},"change_message_id":"8ec60e9d632098b877859d0a57a73f73be5b09a2","unresolved":false,"context_lines":[{"line_number":3335,"context_line":"        with self.subnet(ip_version\u003d6, cidr\u003d\u0027fe80::/80\u0027,"},{"line_number":3336,"context_line":"                         ipv6_ra_mode\u003dconstants.DHCPV6_STATEFUL,"},{"line_number":3337,"context_line":"                         ipv6_address_mode\u003dNone) as subnet:"},{"line_number":3338,"context_line":"            data \u003d {\u0027subnet\u0027: {\u0027ipv6_ra_mode\u0027: constants.DHCPV6_STATEFUL}}"},{"line_number":3339,"context_line":"            req \u003d self.new_update_request(\u0027subnets\u0027, data,"},{"line_number":3340,"context_line":"                                          subnet[\u0027subnet\u0027][\u0027id\u0027])"},{"line_number":3341,"context_line":"            res \u003d self.deserialize(self.fmt, req.get_response(self.api))"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_ec1fe7b5","line":3338,"in_reply_to":"fa98f980_35305a56","updated":"2014-08-31 08:20:39.000000000","message":"Done","commit_id":"d4d4b8f66e6fbf0acb8d1621fd3d869278e7cefc"},{"author":{"_account_id":9380,"name":"Sayaji Patil","email":"sayaji15@gmail.com","username":"Sayaji"},"change_message_id":"0e5cd0cee085847204f2254d6b44dbb5d641cdb9","unresolved":false,"context_lines":[{"line_number":3351,"context_line":"                                          subnet[\u0027subnet\u0027][\u0027id\u0027])"},{"line_number":3352,"context_line":"            res \u003d self.deserialize(self.fmt, req.get_response(self.api))"},{"line_number":3353,"context_line":"            self.assertEqual(res[\u0027subnet\u0027][\u0027ipv6_address_mode\u0027],"},{"line_number":3354,"context_line":"                             data[\u0027subnet\u0027][\u0027ipv6_address_mode\u0027])"},{"line_number":3355,"context_line":""},{"line_number":3356,"context_line":"    def test_update_subnet_ipv6_address_attribute(self):"},{"line_number":3357,"context_line":"        with self.subnet(ip_version\u003d6, cidr\u003d\u0027fe80::/80\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_55febe6c","line":3354,"updated":"2014-08-30 19:11:37.000000000","message":"Ditto","commit_id":"d4d4b8f66e6fbf0acb8d1621fd3d869278e7cefc"},{"author":{"_account_id":9380,"name":"Sayaji Patil","email":"sayaji15@gmail.com","username":"Sayaji"},"change_message_id":"0e5cd0cee085847204f2254d6b44dbb5d641cdb9","unresolved":false,"context_lines":[{"line_number":3362,"context_line":"                                          subnet[\u0027subnet\u0027][\u0027id\u0027])"},{"line_number":3363,"context_line":"            res \u003d self.deserialize(self.fmt, req.get_response(self.api))"},{"line_number":3364,"context_line":"            self.assertEqual(res[\u0027subnet\u0027][\u0027ipv6_address_mode\u0027],"},{"line_number":3365,"context_line":"                             data[\u0027subnet\u0027][\u0027ipv6_address_mode\u0027])"},{"line_number":3366,"context_line":""},{"line_number":3367,"context_line":"    def test_update_subnet_ipv6_inconsistent_ra_attribute(self):"},{"line_number":3368,"context_line":"        with self.subnet(ip_version\u003d6, cidr\u003d\u0027fe80::/80\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_95f7468c","line":3365,"updated":"2014-08-30 19:11:37.000000000","message":"Ditto","commit_id":"d4d4b8f66e6fbf0acb8d1621fd3d869278e7cefc"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"11c1f7b7e185820b44364a95f98bc416fab95d07","unresolved":false,"context_lines":[{"line_number":3320,"context_line":"            self.assertEqual(res[\u0027subnet\u0027][\u0027ipv6_address_mode\u0027],"},{"line_number":3321,"context_line":"                             data[\u0027subnet\u0027][\u0027ipv6_address_mode\u0027])"},{"line_number":3322,"context_line":""},{"line_number":3323,"context_line":"    def test_update_subnet_ipv6_ra_attribute_from_none(self):"},{"line_number":3324,"context_line":"        with self.subnet(ip_version\u003d6, cidr\u003d\u0027fe80::/80\u0027,"},{"line_number":3325,"context_line":"                         ipv6_ra_mode\u003dNone,"},{"line_number":3326,"context_line":"                         ipv6_address_mode\u003dNone) as subnet:"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_424b3e2b","line":3323,"updated":"2014-09-01 12:17:30.000000000","message":"These tests hold a lot of code duplication here.\n\nHow about creating a function which receives \"ipv6_ra_mode\", \"ipv6_address_mode\" and a subnet-key-field-thingy (which are the only changes throughout the code here), and checks the rest according to a template?","commit_id":"94b9680d6385f45d07737ee2df5e06c11cf2fcf4"},{"author":{"_account_id":12737,"name":"Jacek Swiderski","email":"jacek.swiderski@codilime.com","username":"Altran"},"change_message_id":"c6900c06ad2d8f54468bf1e258b6946772f9ce24","unresolved":false,"context_lines":[{"line_number":3320,"context_line":"            self.assertEqual(res[\u0027subnet\u0027][\u0027ipv6_address_mode\u0027],"},{"line_number":3321,"context_line":"                             data[\u0027subnet\u0027][\u0027ipv6_address_mode\u0027])"},{"line_number":3322,"context_line":""},{"line_number":3323,"context_line":"    def test_update_subnet_ipv6_ra_attribute_from_none(self):"},{"line_number":3324,"context_line":"        with self.subnet(ip_version\u003d6, cidr\u003d\u0027fe80::/80\u0027,"},{"line_number":3325,"context_line":"                         ipv6_ra_mode\u003dNone,"},{"line_number":3326,"context_line":"                         ipv6_address_mode\u003dNone) as subnet:"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_3df9ffc8","line":3323,"in_reply_to":"fa98f980_424b3e2b","updated":"2014-09-01 12:51:12.000000000","message":"Will do - except I think \"subnet-key-field-thingy\" won\u0027t be needed but will see.","commit_id":"94b9680d6385f45d07737ee2df5e06c11cf2fcf4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"d20aa7206af6eb4ebf62ca481dbb3b2cd031c244","unresolved":false,"context_lines":[{"line_number":3311,"context_line":"                                            address_mode\u003dNone,"},{"line_number":3312,"context_line":"                                            new_ra_mode\u003dNone,"},{"line_number":3313,"context_line":"                                            new_address_mode\u003dNone):"},{"line_number":3314,"context_line":"        with self.subnet(ip_version\u003d6, cidr\u003d\u0027fe80::/80\u0027,"},{"line_number":3315,"context_line":"                         ipv6_ra_mode\u003dra_mode,"},{"line_number":3316,"context_line":"                         ipv6_address_mode\u003daddress_mode) as subnet:"},{"line_number":3317,"context_line":"            data \u003d {\u0027subnet\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":7,"id":"da9df570_550b738d","line":3314,"updated":"2014-09-26 15:48:34.000000000","message":"It\u0027s not necessary for these IPv6 mode unit tests to go through the whole create/update subnet API path. They can just test plugin._validate_subnet() directly. I have written a set of tests this way, with complete coverage of every mode combination for create and update subnet. Runs in milliseconds instead of seconds. I would like to share and discuss it with you.","commit_id":"27879a1dc05e79e288e6deb1ae92f0e9be9cfc06"},{"author":{"_account_id":12737,"name":"Jacek Swiderski","email":"jacek.swiderski@codilime.com","username":"Altran"},"change_message_id":"6cf5849df679a3890bb0ea98e597193ad1565725","unresolved":false,"context_lines":[{"line_number":3311,"context_line":"                                            address_mode\u003dNone,"},{"line_number":3312,"context_line":"                                            new_ra_mode\u003dNone,"},{"line_number":3313,"context_line":"                                            new_address_mode\u003dNone):"},{"line_number":3314,"context_line":"        with self.subnet(ip_version\u003d6, cidr\u003d\u0027fe80::/80\u0027,"},{"line_number":3315,"context_line":"                         ipv6_ra_mode\u003dra_mode,"},{"line_number":3316,"context_line":"                         ipv6_address_mode\u003daddress_mode) as subnet:"},{"line_number":3317,"context_line":"            data \u003d {\u0027subnet\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":7,"id":"baa201ad_1700b3a9","line":3314,"in_reply_to":"da9df570_550b738d","updated":"2014-09-29 10:50:04.000000000","message":"Done - but I\u0027ve only included tests for update because change itself only affects updates and behaviour for create is untouched so after weekend I felt like it was out of scope to change it.","commit_id":"27879a1dc05e79e288e6deb1ae92f0e9be9cfc06"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"ff738a36d9d1485923dde3a029efeda1696bbad6","unresolved":false,"context_lines":[{"line_number":3317,"context_line":"            data \u003d {\u0027subnet\u0027: {}}"},{"line_number":3318,"context_line":"            # This can be changed to include change to None"},{"line_number":3319,"context_line":"            # after bug 1362966 is fixed"},{"line_number":3320,"context_line":"            if new_ra_mode:"},{"line_number":3321,"context_line":"                data[\u0027subnet\u0027][\u0027ipv6_ra_mode\u0027] \u003d new_ra_mode"},{"line_number":3322,"context_line":"            if new_address_mode:"},{"line_number":3323,"context_line":"                data[\u0027subnet\u0027][\u0027ipv6_address_mode\u0027] \u003d new_address_mode"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_a92beae9","line":3320,"updated":"2014-09-01 14:42:33.000000000","message":"Since you\u0027re not checking a situation where both ra_mode and address_mode are enabled, I think this code can be optimised some more to include a key and the value, i.e.:\n\n def _test_update_subnet_ipv6_attributes(self, key, value):\n     ...\n     if key is not None:\n         data[\u0027subnet\u0027][key] \u003d value\n\nSame for L3327 (whoa).\n\nAlso I picked bad variable names which are ought to be changed :)","commit_id":"27879a1dc05e79e288e6deb1ae92f0e9be9cfc06"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"ca7e3dddeeb17a0f7138c08b9a9b33fe0ccf2f99","unresolved":false,"context_lines":[{"line_number":3317,"context_line":"            data \u003d {\u0027subnet\u0027: {}}"},{"line_number":3318,"context_line":"            # This can be changed to include change to None"},{"line_number":3319,"context_line":"            # after bug 1362966 is fixed"},{"line_number":3320,"context_line":"            if new_ra_mode:"},{"line_number":3321,"context_line":"                data[\u0027subnet\u0027][\u0027ipv6_ra_mode\u0027] \u003d new_ra_mode"},{"line_number":3322,"context_line":"            if new_address_mode:"},{"line_number":3323,"context_line":"                data[\u0027subnet\u0027][\u0027ipv6_address_mode\u0027] \u003d new_address_mode"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_641da766","line":3320,"in_reply_to":"fa98f980_a92beae9","updated":"2014-09-01 14:49:42.000000000","message":"Actually I missed test_update_subnet_ipv6_attributes, so nevermind :)","commit_id":"27879a1dc05e79e288e6deb1ae92f0e9be9cfc06"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"8f3cfdc11c2b3423c862a264a9900e73d4a29c2e","unresolved":false,"context_lines":[{"line_number":3321,"context_line":"                         ipv6_ra_mode\u003dra_mode,"},{"line_number":3322,"context_line":"                         ipv6_address_mode\u003daddress_mode) as subnet:"},{"line_number":3323,"context_line":"            data \u003d {\u0027subnet\u0027: {}}"},{"line_number":3324,"context_line":"            # This can be changed to include change to None"},{"line_number":3325,"context_line":"            # after bug 1362966 is fixed"},{"line_number":3326,"context_line":"            if new_ra_mode:"},{"line_number":3327,"context_line":"                data[\u0027subnet\u0027][\u0027ipv6_ra_mode\u0027] \u003d new_ra_mode"}],"source_content_type":"text/x-python","patch_set":13,"id":"baa201ad_e90d643f","line":3324,"updated":"2014-10-07 10:01:36.000000000","message":"This comment should probably have a REVISIT or FIXME tag.","commit_id":"f41b730f2766e7b9e5564141e7bff0ea7eda2873"}]}
