)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"3c4fa8331559ee501ffc70a32d34ee7e48c46a8e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove deprecated min_l3_agents_per_router"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The option was deprecated for removal in Newton"},{"line_number":10,"context_line":"and is being removed in Ocata."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I3a9195ff6fd18fad9f85cec03a632e7e52d954e7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa6399be_9be888b6","line":9,"updated":"2016-10-12 20:31:01.000000000","message":"Please add link to commit where it was deprecated\nChange-Id: I8a5fc74a96c784d474aefe2d9b27eeb66521ca82","commit_id":"e47a3e2ee7eed46039b8e0d0deb769ba143e0afb"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"a593c0cc2b5704a02a5bef5d29ec717e2cf3bdcd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove deprecated min_l3_agents_per_router"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The option was deprecated for removal in Newton"},{"line_number":10,"context_line":"and is being removed in Ocata."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I3a9195ff6fd18fad9f85cec03a632e7e52d954e7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa6399be_fe9fb24d","line":9,"in_reply_to":"fa6399be_9be888b6","updated":"2016-10-12 20:57:18.000000000","message":"Done, thanks!","commit_id":"e47a3e2ee7eed46039b8e0d0deb769ba143e0afb"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"3c4fa8331559ee501ffc70a32d34ee7e48c46a8e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"and is being removed in Ocata."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I3a9195ff6fd18fad9f85cec03a632e7e52d954e7"},{"line_number":13,"context_line":"Closes-Bug: #1555042"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa6399be_3bc13c2f","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":6},"updated":"2016-10-12 20:31:01.000000000","message":"Technically, bug is already closed. Wouldn\u0027t it be better to add \u0027Related-Bug\u0027 here?","commit_id":"e47a3e2ee7eed46039b8e0d0deb769ba143e0afb"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"a593c0cc2b5704a02a5bef5d29ec717e2cf3bdcd","unresolved":false,"context_lines":[{"line_number":10,"context_line":"and is being removed in Ocata."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I3a9195ff6fd18fad9f85cec03a632e7e52d954e7"},{"line_number":13,"context_line":"Closes-Bug: #1555042"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa6399be_de7d8e1d","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":6},"in_reply_to":"fa6399be_3bc13c2f","updated":"2016-10-12 20:57:18.000000000","message":"I\u0027m not aware of any significant to referencing an already closed bug with \u0027Closes\u0027 or \u0027Related\u0027.","commit_id":"e47a3e2ee7eed46039b8e0d0deb769ba143e0afb"}],"neutron/db/l3_hamode_db.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"7ea7585c55d69a17acac69161d797daa106e1f21","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    def _check_num_agents_per_router(self):"},{"line_number":110,"context_line":"        max_agents \u003d cfg.CONF.max_l3_agents_per_router"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        if max_agents \u003c 0:"},{"line_number":113,"context_line":"            raise l3_ha.HAMaximumAgentsNumberNotValid(max_agents\u003dmax_agents)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_c79f6f4e","line":112,"updated":"2016-10-13 08:05:09.000000000","message":"I would leave UNLIMITED_AGENTS_PER_ROUTER here for readability, otherwise it will be difficult to tell why a value of 0 makes sense. If you really want to not use that constant, then IMO it should be removed everywhere.","commit_id":"dbf1fcb0c60d0d157160905316c29ed47918cdbd"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ae77049f63b8fcfee519ea856d88e8357e579a26","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    def _check_num_agents_per_router(self):"},{"line_number":110,"context_line":"        max_agents \u003d cfg.CONF.max_l3_agents_per_router"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        if max_agents \u003c 0:"},{"line_number":113,"context_line":"            raise l3_ha.HAMaximumAgentsNumberNotValid(max_agents\u003dmax_agents)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_48ebddb0","line":112,"in_reply_to":"fa6399be_32ee92b4","updated":"2016-10-17 19:39:35.000000000","message":"Agree with amuller. lt or gt comparison with a special constant doesn\u0027t make sense.\n\nBut, I think the following might be a little more readable if not a little more verbose.\n\n  if (max_agents !\u003d UNLIMITED_AGENTS_PER_ROUTER and max_agents \u003c 1):\n      ...\n\nI know it is logically the same thing given what the value of the constant happens to be but it I think it addresses what Jens was trying to say.","commit_id":"dbf1fcb0c60d0d157160905316c29ed47918cdbd"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"561e34085fb9ef86f151cbe9317daf868fe4c0d3","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    def _check_num_agents_per_router(self):"},{"line_number":110,"context_line":"        max_agents \u003d cfg.CONF.max_l3_agents_per_router"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        if max_agents \u003c 0:"},{"line_number":113,"context_line":"            raise l3_ha.HAMaximumAgentsNumberNotValid(max_agents\u003dmax_agents)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_8e3dfdbd","line":112,"in_reply_to":"fa6399be_48ebddb0","updated":"2016-10-17 20:20:57.000000000","message":"I was considering that when I wrote the code but then my mind untangled it to max_agents \u003c 0, but yes the version you wrote Carl is more readable, I\u0027ll change to it.","commit_id":"dbf1fcb0c60d0d157160905316c29ed47918cdbd"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"a3706b3d49d554955cf9c4ef27f6b9cbe0b7d8bd","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    def _check_num_agents_per_router(self):"},{"line_number":110,"context_line":"        max_agents \u003d cfg.CONF.max_l3_agents_per_router"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        if max_agents \u003c 0:"},{"line_number":113,"context_line":"            raise l3_ha.HAMaximumAgentsNumberNotValid(max_agents\u003dmax_agents)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_32ee92b4","line":112,"in_reply_to":"fa6399be_c79f6f4e","updated":"2016-10-13 15:42:30.000000000","message":"I disagree. The intent of the new code is to make sure that max_agents is not a negative number.\n\nThe *value* of UNLIMITED_AGENTS_PER_ROUTER is hidden away by the constant name, that is the point of the constant.\n\nThe following bit of code makes absolutely no sense to me:\n\nif max_agents \u003c UNLIMITED_AGENTS_PER_ROUTER:\n   ...","commit_id":"dbf1fcb0c60d0d157160905316c29ed47918cdbd"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"b46450fcaa47aac5dc508351f7a4c9f1811461a8","unresolved":false,"context_lines":[{"line_number":486,"context_line":"                        \u0027set router admin_state_up to False prior to upgrade.\u0027)"},{"line_number":487,"context_line":"                raise n_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"            if requested_ha_state:"},{"line_number":490,"context_line":"                # This will throw HANotEnoughAvailableAgents if there aren\u0027t"},{"line_number":491,"context_line":"                # enough l3 agents to handle this router."},{"line_number":492,"context_line":"                self.get_number_of_agents_for_scheduling(context)"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"            # set status to ALLOCATING so this router is no longer"},{"line_number":495,"context_line":"            # provided to agents while its interfaces are being re-configured."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_f1357ca8","side":"PARENT","line":492,"range":{"start_line":489,"start_character":12,"end_line":492,"end_character":65},"updated":"2016-10-17 20:52:28.000000000","message":"correct me if I\u0027m wrong, but this is not required because this method was using the validation on the previous line 280, right?","commit_id":"9806288cd70a73972acd60eecd59e175543baf7e"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"ea221c2abea111406aa4ea5bab2ce30d3bbaba26","unresolved":false,"context_lines":[{"line_number":486,"context_line":"                        \u0027set router admin_state_up to False prior to upgrade.\u0027)"},{"line_number":487,"context_line":"                raise n_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"            if requested_ha_state:"},{"line_number":490,"context_line":"                # This will throw HANotEnoughAvailableAgents if there aren\u0027t"},{"line_number":491,"context_line":"                # enough l3 agents to handle this router."},{"line_number":492,"context_line":"                self.get_number_of_agents_for_scheduling(context)"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"            # set status to ALLOCATING so this router is no longer"},{"line_number":495,"context_line":"            # provided to agents while its interfaces are being re-configured."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_86990071","side":"PARENT","line":492,"range":{"start_line":489,"start_character":12,"end_line":492,"end_character":65},"in_reply_to":"fa6399be_f1357ca8","updated":"2016-10-19 20:41:40.000000000","message":"Correct, note that we don\u0027t use the return value of the function, we only called it so that it could potentially raise an exception.","commit_id":"9806288cd70a73972acd60eecd59e175543baf7e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"6170f76ad06ad7edbd99cf7082804be6db9ba2ba","unresolved":false,"context_lines":[{"line_number":72,"context_line":"               help\u003d_(\"Maximum number of L3 agents which a HA router will be \""},{"line_number":73,"context_line":"                      \"scheduled on. If it is set to 0 then the router will \""},{"line_number":74,"context_line":"                      \"be scheduled on every agent.\")),"},{"line_number":75,"context_line":"    cfg.IntOpt(\u0027min_l3_agents_per_router\u0027,"},{"line_number":76,"context_line":"               default\u003dn_const.DEFAULT_MINIMUM_AGENTS_FOR_HA,"},{"line_number":77,"context_line":"               help\u003d_(\"DEPRECATED: Minimum number of L3 agents that have to \""},{"line_number":78,"context_line":"                      \"be available in order to allow a new HA router to be \""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_67799bfc","side":"PARENT","line":75,"updated":"2017-01-13 21:47:38.000000000","message":"This is going to break dynamic-routing. Fix: https://review.openstack.org/420189","commit_id":"1a528e817fc3fcb1a3a91c494aabcf75385c02e1"}],"neutron/extensions/l3_ext_ha_mode.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ae77049f63b8fcfee519ea856d88e8357e579a26","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class HAMaximumAgentsNumberNotValid(exceptions.NeutronException):"},{"line_number":79,"context_line":"    message \u003d _(\"max_l3_agents_per_router %(max_agents)s config parameter \""},{"line_number":80,"context_line":"                \"is not valid. It has to be greater than or equal to 0.\")"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class L3_ext_ha_mode(extensions.ExtensionDescriptor):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_c89b6d71","line":80,"range":{"start_line":80,"start_character":69,"end_line":80,"end_character":70},"updated":"2016-10-17 19:39:35.000000000","message":"This doesn\u0027t make sense to me. I\u0027d say something like it \"has to be greater than or equal to 1 or 0 for unlimited.","commit_id":"dbf1fcb0c60d0d157160905316c29ed47918cdbd"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"561e34085fb9ef86f151cbe9317daf868fe4c0d3","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class HAMaximumAgentsNumberNotValid(exceptions.NeutronException):"},{"line_number":79,"context_line":"    message \u003d _(\"max_l3_agents_per_router %(max_agents)s config parameter \""},{"line_number":80,"context_line":"                \"is not valid. It has to be greater than or equal to 0.\")"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class L3_ext_ha_mode(extensions.ExtensionDescriptor):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_4ea925df","line":80,"range":{"start_line":80,"start_character":69,"end_line":80,"end_character":70},"in_reply_to":"fa6399be_c89b6d71","updated":"2016-10-17 20:20:57.000000000","message":"Done","commit_id":"dbf1fcb0c60d0d157160905316c29ed47918cdbd"}],"neutron/tests/unit/db/test_l3_hamode_db.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"27e7831bed15eebac26ec2639f7296b949167e87","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            l3_ext_ha_mode.HANetworkCIDRNotValid,"},{"line_number":120,"context_line":"            self.plugin._verify_configuration)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def test_verify_configuration_max_l3_agents_below_0(self):"},{"line_number":123,"context_line":"        cfg.CONF.set_override(\u0027max_l3_agents_per_router\u0027, -5)"},{"line_number":124,"context_line":"        self.assertRaises("},{"line_number":125,"context_line":"            l3_ext_ha_mode.HAMaximumAgentsNumberNotValid,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_f5a3789c","line":122,"range":{"start_line":122,"start_character":48,"end_line":122,"end_character":55},"updated":"2017-01-13 20:59:22.000000000","message":"super nit: s/negative","commit_id":"4cbd5dcd6da73f742ba314eca6d53b8bf25942e4"}],"neutron/tests/unit/scheduler/test_l3_agent_scheduler.py":[{"author":{"_account_id":22800,"name":"Joseph Pasque","email":"jp606j@att.com","username":"jp606j"},"change_message_id":"30e8a91b33fc26bcf7f7ac3c15db8fd8ceb09f17","unresolved":false,"context_lines":[{"line_number":1874,"context_line":"        self.plugin.auto_schedule_routers(self.adminContext,"},{"line_number":1875,"context_line":"                                          \u0027host_3\u0027,"},{"line_number":1876,"context_line":"                                          routers_to_auto_schedule)"},{"line_number":1877,"context_line":""},{"line_number":1878,"context_line":"    def test_scheduler_with_ha_enabled_not_enough_agent(self):"},{"line_number":1879,"context_line":"        r1 \u003d self._create_ha_router()"},{"line_number":1880,"context_line":"        agents \u003d self.plugin.get_l3_agents_hosting_routers("},{"line_number":1881,"context_line":"            self.adminContext, [r1[\u0027id\u0027]],"},{"line_number":1882,"context_line":"            admin_state_up\u003dTrue)"},{"line_number":1883,"context_line":"        self.assertEqual(2, len(agents))"},{"line_number":1884,"context_line":""},{"line_number":1885,"context_line":"        self._set_l3_agent_admin_state(self.adminContext,"},{"line_number":1886,"context_line":"                                       self.agent_id2, False)"},{"line_number":1887,"context_line":"        self.assertRaises("},{"line_number":1888,"context_line":"            l3_ha.HANotEnoughAvailableAgents, self._create_ha_router)"},{"line_number":1889,"context_line":""},{"line_number":1890,"context_line":""},{"line_number":1891,"context_line":"class L3HALeastRoutersSchedulerTestCase(L3HATestCaseMixin):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_3e1a0a6f","side":"PARENT","line":1888,"range":{"start_line":1877,"start_character":0,"end_line":1888,"end_character":69},"updated":"2016-10-12 20:44:08.000000000","message":"Why was this test deleted? it tests the raising of an HANotEnoughAvailableAgents exception, not the HAMinimumAgentsNumberNotValid exception?","commit_id":"9806288cd70a73972acd60eecd59e175543baf7e"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"a593c0cc2b5704a02a5bef5d29ec717e2cf3bdcd","unresolved":false,"context_lines":[{"line_number":1874,"context_line":"        self.plugin.auto_schedule_routers(self.adminContext,"},{"line_number":1875,"context_line":"                                          \u0027host_3\u0027,"},{"line_number":1876,"context_line":"                                          routers_to_auto_schedule)"},{"line_number":1877,"context_line":""},{"line_number":1878,"context_line":"    def test_scheduler_with_ha_enabled_not_enough_agent(self):"},{"line_number":1879,"context_line":"        r1 \u003d self._create_ha_router()"},{"line_number":1880,"context_line":"        agents \u003d self.plugin.get_l3_agents_hosting_routers("},{"line_number":1881,"context_line":"            self.adminContext, [r1[\u0027id\u0027]],"},{"line_number":1882,"context_line":"            admin_state_up\u003dTrue)"},{"line_number":1883,"context_line":"        self.assertEqual(2, len(agents))"},{"line_number":1884,"context_line":""},{"line_number":1885,"context_line":"        self._set_l3_agent_admin_state(self.adminContext,"},{"line_number":1886,"context_line":"                                       self.agent_id2, False)"},{"line_number":1887,"context_line":"        self.assertRaises("},{"line_number":1888,"context_line":"            l3_ha.HANotEnoughAvailableAgents, self._create_ha_router)"},{"line_number":1889,"context_line":""},{"line_number":1890,"context_line":""},{"line_number":1891,"context_line":"class L3HALeastRoutersSchedulerTestCase(L3HATestCaseMixin):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_fef41288","side":"PARENT","line":1888,"range":{"start_line":1877,"start_character":0,"end_line":1888,"end_character":69},"in_reply_to":"fa6399be_3e1a0a6f","updated":"2016-10-12 20:57:18.000000000","message":"The functionality was removed in this patch, look at the test name... Your comment made me notice that the exception should have been removed.","commit_id":"9806288cd70a73972acd60eecd59e175543baf7e"}]}
