)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6fc33b7e2d8ccd80b7bf61f06e41b15c18c72655","unresolved":false,"context_lines":[{"line_number":21,"context_line":"is only called in one other place, in cells/state.py by"},{"line_number":22,"context_line":"CellStateManager._get_compute_hosts. There is code to remove"},{"line_number":23,"context_line":"disabled services from the list so removing the disabled filter"},{"line_number":24,"context_line":"from the db query will not impact the method\u0027s behaviour."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I05c2716da45119e6e6aa272b0701be9ae098842c"},{"line_number":27,"context_line":"Closes-Bug: #1553099"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5aef4532_fe31d4ed","line":24,"updated":"2016-03-07 20:33:58.000000000","message":"Changing this query *will* impact the result of the remotable object method that uses it. The filtering is not done in that method, which means this change affects RPC.\n\nI think this needs to be turned into a flag, which we can continue to provide from the object to keep the same behavior, optionally bumping t he version and supporting a flag on that method as well if it\u0027s important.","commit_id":"56f5c184715a74a58eaf3c93b20811c13fb99544"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5e9b8b5fafaccb6d343ca2a590b39f9a36f238d8","unresolved":false,"context_lines":[{"line_number":21,"context_line":"is only called in one other place, in cells/state.py by"},{"line_number":22,"context_line":"CellStateManager._get_compute_hosts. There is code to remove"},{"line_number":23,"context_line":"disabled services from the list so removing the disabled filter"},{"line_number":24,"context_line":"from the db query will not impact the method\u0027s behaviour."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I05c2716da45119e6e6aa272b0701be9ae098842c"},{"line_number":27,"context_line":"Closes-Bug: #1553099"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5aef4532_0186c564","line":24,"in_reply_to":"5aef4532_fe31d4ed","updated":"2016-03-08 10:29:17.000000000","message":"So, given how very few callers were using that, I was originally thinking that changing the RPC contract was okay *for that exceptional case only*.\n\nThat said, you make a valid point, and I agree, we should still try to be very explicit.\nPaul, please consider adding a new parameter in the object remotable method signature that you would pass down to the SQLA method and which would be defaulted to True. \nThat way, it wouldn\u0027t change the contract, and only the HostManager would require to explictly call the .get_by_binary method by passing that new arg set to False.","commit_id":"56f5c184715a74a58eaf3c93b20811c13fb99544"}],"nova/db/api.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a71554246b8384edf967d36d9d48be4f946c32a5","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"def service_get_all_by_binary(context, binary, include_disabled\u003dFalse):"},{"line_number":145,"context_line":"    \"\"\"Get all services for a given binary.\"\"\""},{"line_number":146,"context_line":"    return IMPL.service_get_all_by_binary(context, binary,"},{"line_number":147,"context_line":"                                          include_disabled\u003dinclude_disabled)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_6d7ae578","line":145,"updated":"2016-03-09 09:51:56.000000000","message":"amending the docstring could be nice","commit_id":"28404e9a096790fd6d059a7fd3d64040e602e310"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"2bb1105e2937b4f4a3a6b3d1b45b53221f09ac6e","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"def service_get_all_by_binary(context, binary, include_disabled\u003dFalse):"},{"line_number":145,"context_line":"    \"\"\"Get all services for a given binary.\"\"\""},{"line_number":146,"context_line":"    return IMPL.service_get_all_by_binary(context, binary,"},{"line_number":147,"context_line":"                                          include_disabled\u003dinclude_disabled)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_96e66213","line":145,"in_reply_to":"5aef4532_6d7ae578","updated":"2016-03-09 10:31:35.000000000","message":"Done","commit_id":"28404e9a096790fd6d059a7fd3d64040e602e310"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"33cee89a353f1b90ab97c3ac404c35d3b1592364","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"def service_get_all_by_binary(context, binary, include_disabled\u003dFalse):"},{"line_number":145,"context_line":"    \"\"\"Get services for a given binary."},{"line_number":146,"context_line":"    Includes disabled services if \u0027include_disabled\u0027 parameter is True"},{"line_number":147,"context_line":"    \"\"\""},{"line_number":148,"context_line":"    return IMPL.service_get_all_by_binary(context, binary,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5aef4532_413364f6","line":145,"updated":"2016-03-09 13:51:46.000000000","message":"nit: there should be a blank line here","commit_id":"0dbaebf5647922b78d0d78c54888b87f620b7923"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"09932da0bbf62320bee2bfee30283261fa14232f","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"def service_get_all_by_binary(context, binary, include_disabled\u003dFalse):"},{"line_number":145,"context_line":"    \"\"\"Get services for a given binary."},{"line_number":146,"context_line":"    Includes disabled services if \u0027include_disabled\u0027 parameter is True"},{"line_number":147,"context_line":"    \"\"\""},{"line_number":148,"context_line":"    return IMPL.service_get_all_by_binary(context, binary,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5aef4532_4157e425","line":145,"in_reply_to":"5aef4532_413364f6","updated":"2016-03-09 13:57:31.000000000","message":"Done","commit_id":"0dbaebf5647922b78d0d78c54888b87f620b7923"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4313e128c300f29e1d32c3a082044b7fe2309142","unresolved":false,"context_lines":[{"line_number":549,"context_line":"    if include_disabled:"},{"line_number":550,"context_line":"        return model_query(context, models.Service, read_deleted\u003d\"no\").\\"},{"line_number":551,"context_line":"                    filter_by(binary\u003dbinary).\\"},{"line_number":552,"context_line":"                    all()"},{"line_number":553,"context_line":"    return model_query(context, models.Service, read_deleted\u003d\"no\").\\"},{"line_number":554,"context_line":"                filter_by(disabled\u003dFalse).\\"},{"line_number":555,"context_line":"                filter_by(binary\u003dbinary).\\"}],"source_content_type":"text/x-python","patch_set":7,"id":"5aef4532_bcb8c1e6","line":552,"updated":"2016-03-08 18:42:45.000000000","message":"The way we do this in most other places is like this:\n\n query \u003d model_query(context, models.Service, read_deleted\u003d\"no\").\\\n                filter_by(binary\u003dbinary).\\\n if not include_disabled:\n     query \u003d query.filter_by(disabled\u003dFalse)\n return query.all()\n\notherwise we\u0027ve got code duplicated for the two queries which opens us up to someone editing one and not the other in the future.","commit_id":"6e6544fff0a30bded03c8ad4f633c812344d0abf"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"222bfc141a118eb02bbd83a45b82df2ead2d4662","unresolved":false,"context_lines":[{"line_number":549,"context_line":"    query \u003d model_query(context, models.Service, read_deleted\u003d\"no\").\\"},{"line_number":550,"context_line":"                    filter_by(binary\u003dbinary)"},{"line_number":551,"context_line":"    if not include_disabled:"},{"line_number":552,"context_line":"        query \u003d query.filter_by(disabled\u003dFalse)"},{"line_number":553,"context_line":"    return query.all()"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5aef4532_f3535d69","line":552,"updated":"2016-03-09 16:11:33.000000000","message":"After to look at the schema of Service I cannot see an index which correlate with that new query, you probably have to add new index which include (binary, deleted, disabled).","commit_id":"a684d1214ef1e271e4de8e1362b6a75857963d24"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"c12e68d5b511274e1e9c4f5fdfedbbaea1708b5c","unresolved":false,"context_lines":[{"line_number":549,"context_line":"    query \u003d model_query(context, models.Service, read_deleted\u003d\"no\").\\"},{"line_number":550,"context_line":"                    filter_by(binary\u003dbinary)"},{"line_number":551,"context_line":"    if not include_disabled:"},{"line_number":552,"context_line":"        query \u003d query.filter_by(disabled\u003dFalse)"},{"line_number":553,"context_line":"    return query.all()"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5aef4532_97a80022","line":552,"in_reply_to":"5aef4532_b118acd4","updated":"2016-03-09 17:05:27.000000000","message":"Right, so even if adding an index is a good idea, it is outside the scope of this change. If you think that\u0027s a good idea it could go in a separate change.","commit_id":"a684d1214ef1e271e4de8e1362b6a75857963d24"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"41809ec5e81900b25ef0fe8ffc4ca3b9155982dd","unresolved":false,"context_lines":[{"line_number":549,"context_line":"    query \u003d model_query(context, models.Service, read_deleted\u003d\"no\").\\"},{"line_number":550,"context_line":"                    filter_by(binary\u003dbinary)"},{"line_number":551,"context_line":"    if not include_disabled:"},{"line_number":552,"context_line":"        query \u003d query.filter_by(disabled\u003dFalse)"},{"line_number":553,"context_line":"    return query.all()"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5aef4532_b118acd4","line":552,"in_reply_to":"5aef4532_f3535d69","updated":"2016-03-09 16:54:32.000000000","message":"Filtering by disabled is in the current implementation so there is no negative impact on database query performance.  This change will improve performance because the scheduler HostManager will be executing the query without the disabled filter.  Therefore I think the additional index is not required.","commit_id":"a684d1214ef1e271e4de8e1362b6a75857963d24"}],"nova/objects/service.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4313e128c300f29e1d32c3a082044b7fe2309142","unresolved":false,"context_lines":[{"line_number":394,"context_line":"    @base.remotable_classmethod"},{"line_number":395,"context_line":"    def get_by_binary(cls, context, binary, include_disabled\u003dFalse):"},{"line_number":396,"context_line":"        db_services \u003d db.service_get_all_by_binary(context, binary,"},{"line_number":397,"context_line":"                                                   include_disabled\u003d"},{"line_number":398,"context_line":"                                                       include_disabled)"},{"line_number":399,"context_line":"        return base.obj_make_list(context, cls(context), objects.Service,"},{"line_number":400,"context_line":"                                  db_services)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5aef4532_fc91a953","line":397,"updated":"2016-03-08 18:42:45.000000000","message":"You should wrap all the arguments to the next line instead of ending with an infix like this. I think pep8 will complain, but even if not, please wrap.","commit_id":"6e6544fff0a30bded03c8ad4f633c812344d0abf"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a71554246b8384edf967d36d9d48be4f946c32a5","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                                  db_services)"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    @base.remotable_classmethod"},{"line_number":395,"context_line":"    def get_by_binary(cls, context, binary, include_disabled\u003dFalse):"},{"line_number":396,"context_line":"        db_services \u003d db.service_get_all_by_binary(context, binary,"},{"line_number":397,"context_line":"                                            include_disabled\u003dinclude_disabled)"},{"line_number":398,"context_line":"        return base.obj_make_list(context, cls(context), objects.Service,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_f5e6c1b2","line":395,"range":{"start_line":395,"start_character":44,"end_line":395,"end_character":60},"updated":"2016-03-09 09:51:56.000000000","message":"nit (but quite important tho, since it\u0027s a RPC interface point), maybe \"disabled\" as an argument name is enough","commit_id":"28404e9a096790fd6d059a7fd3d64040e602e310"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"2bb1105e2937b4f4a3a6b3d1b45b53221f09ac6e","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                                  db_services)"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    @base.remotable_classmethod"},{"line_number":395,"context_line":"    def get_by_binary(cls, context, binary, include_disabled\u003dFalse):"},{"line_number":396,"context_line":"        db_services \u003d db.service_get_all_by_binary(context, binary,"},{"line_number":397,"context_line":"                                            include_disabled\u003dinclude_disabled)"},{"line_number":398,"context_line":"        return base.obj_make_list(context, cls(context), objects.Service,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_36d5ce1b","line":395,"range":{"start_line":395,"start_character":44,"end_line":395,"end_character":60},"in_reply_to":"5aef4532_f5e6c1b2","updated":"2016-03-09 10:31:35.000000000","message":"\u0027disabled\u0027 was my first thought but that didn\u0027t describe the meaning of the parameter correctly, suggesting that you\u0027d only get disabled hosts if you set it to True!","commit_id":"28404e9a096790fd6d059a7fd3d64040e602e310"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"33cee89a353f1b90ab97c3ac404c35d3b1592364","unresolved":false,"context_lines":[{"line_number":394,"context_line":"    @base.remotable_classmethod"},{"line_number":395,"context_line":"    def get_by_binary(cls, context, binary, include_disabled\u003dFalse):"},{"line_number":396,"context_line":"        db_services \u003d db.service_get_all_by_binary(context, binary,"},{"line_number":397,"context_line":"                                            include_disabled\u003dinclude_disabled)"},{"line_number":398,"context_line":"        return base.obj_make_list(context, cls(context), objects.Service,"},{"line_number":399,"context_line":"                                  db_services)"},{"line_number":400,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5aef4532_819d6cbe","line":397,"updated":"2016-03-09 13:51:46.000000000","message":"alignment of parameters","commit_id":"0dbaebf5647922b78d0d78c54888b87f620b7923"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"09932da0bbf62320bee2bfee30283261fa14232f","unresolved":false,"context_lines":[{"line_number":394,"context_line":"    @base.remotable_classmethod"},{"line_number":395,"context_line":"    def get_by_binary(cls, context, binary, include_disabled\u003dFalse):"},{"line_number":396,"context_line":"        db_services \u003d db.service_get_all_by_binary(context, binary,"},{"line_number":397,"context_line":"                                            include_disabled\u003dinclude_disabled)"},{"line_number":398,"context_line":"        return base.obj_make_list(context, cls(context), objects.Service,"},{"line_number":399,"context_line":"                                  db_services)"},{"line_number":400,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5aef4532_8133ac13","line":397,"in_reply_to":"5aef4532_819d6cbe","updated":"2016-03-09 13:57:31.000000000","message":"Done","commit_id":"0dbaebf5647922b78d0d78c54888b87f620b7923"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"13ed67886476ca3d519b4508498e1bd4cde69db6","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                                  db_services)"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    @base.remotable_classmethod"},{"line_number":395,"context_line":"    def get_by_binary(cls, context, binary, include_disabled\u003dFalse):"},{"line_number":396,"context_line":"        db_services \u003d db.service_get_all_by_binary("},{"line_number":397,"context_line":"            context, binary, include_disabled\u003dinclude_disabled)"},{"line_number":398,"context_line":"        return base.obj_make_list(context, cls(context), objects.Service,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5aef4532_938ad919","line":395,"updated":"2016-03-09 16:11:16.000000000","message":"So one more nit here, but I think it\u0027s one you\u0027ll appreciate:\n\nI think you should put a note comment above this that says that in V2.0 of the object, we should remove the include_disabled flag and make it always return disabled hosts as well. If you don\u0027t then we won\u0027t get that cleanup to happen when we do that major version bump and we\u0027ll have to live with this wart for even longer.\n\nSee L246 for example.","commit_id":"a684d1214ef1e271e4de8e1362b6a75857963d24"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"41809ec5e81900b25ef0fe8ffc4ca3b9155982dd","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                                  db_services)"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    @base.remotable_classmethod"},{"line_number":395,"context_line":"    def get_by_binary(cls, context, binary, include_disabled\u003dFalse):"},{"line_number":396,"context_line":"        db_services \u003d db.service_get_all_by_binary("},{"line_number":397,"context_line":"            context, binary, include_disabled\u003dinclude_disabled)"},{"line_number":398,"context_line":"        return base.obj_make_list(context, cls(context), objects.Service,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5aef4532_d44e066e","line":395,"in_reply_to":"5aef4532_938ad919","updated":"2016-03-09 16:54:32.000000000","message":"Done","commit_id":"a684d1214ef1e271e4de8e1362b6a75857963d24"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1e20484dc6c1aeb06076cb5220a2a4f52b361154","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                                  db_services)"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    # NOTE(paul-carlton2): In v2.0 of the object the include_disabled flag"},{"line_number":395,"context_line":"    # will be removed so both enabled and disabled hosts are returned"},{"line_number":396,"context_line":"    @base.remotable_classmethod"},{"line_number":397,"context_line":"    def get_by_binary(cls, context, binary, include_disabled\u003dFalse):"},{"line_number":398,"context_line":"        db_services \u003d db.service_get_all_by_binary("}],"source_content_type":"text/x-python","patch_set":14,"id":"5aef4532_d92e0d8b","line":395,"updated":"2016-03-10 11:40:52.000000000","message":"I guess we first need to remove the other usages of this method that don\u0027t pass include_disabled. But that can be a follow on change.","commit_id":"214b7550bca6b78c99660f257fc63d6ea4ccf212"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"841c5ea08db0d81c57e4ddc5004fc96b5c2c3ff5","unresolved":false,"context_lines":[{"line_number":3452,"context_line":"            {\u0027host\u0027: \u0027host3\u0027, \u0027binary\u0027: \u0027b2\u0027}"},{"line_number":3453,"context_line":"        ]"},{"line_number":3454,"context_line":"        services \u003d [self._create_service(vals) for vals in values]"},{"line_number":3455,"context_line":"        expected \u003d services[:3]"},{"line_number":3456,"context_line":"        real \u003d db.service_get_all_by_binary(self.ctxt, \u0027b1\u0027)"},{"line_number":3457,"context_line":"        self._assertEqualListsOfObjects(expected, real)"},{"line_number":3458,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_17b64c8a","line":3455,"updated":"2016-03-07 09:40:59.000000000","message":"fortunately, this test is already good","commit_id":"8dbde851214cf75c58530681d094bbc2ec835345"}],"nova/tests/unit/objects/test_service.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a71554246b8384edf967d36d9d48be4f946c32a5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    \u0027version\u0027: service.SERVICE_VERSION,"},{"line_number":48,"context_line":"    }"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"fake_service_disabled \u003d {"},{"line_number":51,"context_line":"    \u0027created_at\u0027: NOW,"},{"line_number":52,"context_line":"    \u0027updated_at\u0027: None,"},{"line_number":53,"context_line":"    \u0027deleted_at\u0027: None,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_f0fa4e42","line":50,"updated":"2016-03-09 09:51:56.000000000","message":"I would have prefered some helper like \n\n  def _fake_service(**kwargs):\n   fake_service \u003d {...}\n   fake_service.update(kwargs)\n   return fake_service\n\n(or even better an helper module like this https://github.com/openstack/nova/blob/master/nova/tests/unit/fake_build_request.py )\n\nsince it means that updating a DB service model would also need to update both dicts. That said, it\u0027s something we can fix in a later patch.","commit_id":"28404e9a096790fd6d059a7fd3d64040e602e310"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"2bb1105e2937b4f4a3a6b3d1b45b53221f09ac6e","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    \u0027version\u0027: service.SERVICE_VERSION,"},{"line_number":48,"context_line":"    }"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"fake_service_disabled \u003d {"},{"line_number":51,"context_line":"    \u0027created_at\u0027: NOW,"},{"line_number":52,"context_line":"    \u0027updated_at\u0027: None,"},{"line_number":53,"context_line":"    \u0027deleted_at\u0027: None,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_36bcaedb","line":50,"in_reply_to":"5aef4532_f0fa4e42","updated":"2016-03-09 10:31:35.000000000","message":"Done","commit_id":"28404e9a096790fd6d059a7fd3d64040e602e310"}],"releasenotes/notes/scheduling-to-disabled-hosts-79f5b5d20a42875a.yaml":[{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"d99d8050b02325775f86786550b2accebe4f54d6","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    Previously disabled hosts were not included in the"},{"line_number":7,"context_line":"    host list to be filtered. They are now included so"},{"line_number":8,"context_line":"    instances maybe scheduled to disabled hosts unless"},{"line_number":9,"context_line":"    the ComputeFilter is executed."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"fixes:"},{"line_number":12,"context_line":"  - https://bugs.launchpad.net/nova/+bug/1553099"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5aef4532_1c6dcc04","line":9,"updated":"2016-03-07 11:05:25.000000000","message":"I would change this to something more explict like:\n\n\"Previously disabled hosts were not included in the host list to be filtered; the ComputeHosts filter had no effect and\nit was not possible to schedule to a disabled host. This has been corrected so now the ComputeHosts filter will be required to filter out disabled hosts.\"","commit_id":"f82adc7c26c31557d9349f21817acb9a79917eb9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4e7c7d949c546d21e5f1818e6cb74d3c4a6f05dd","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    ComputeHosts filter will be required to filter out"},{"line_number":11,"context_line":"    disabled hosts."},{"line_number":12,"context_line":"fixes:"},{"line_number":13,"context_line":"  - https://bugs.launchpad.net/nova/+bug/1553099"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5aef4532_e003f30d","line":13,"updated":"2016-03-07 20:12:20.000000000","message":"The release notes are provided for users not really needing to know the code, just wanting to know what\u0027s changing and what they need to modify (for example a conf opt).\n\nThat way, I prefer to remove the \"fixes\" section, and modify the relnote to be a bit cleaner for non-knowing users.","commit_id":"07645975b743d764b81c86f4f7cd8396dd941404"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"8c3755b79d1765051c21a131d83d1dee61d5a36f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - In order to  make possible to force an instance to"},{"line_number":4,"context_line":"    boot in a disabled host by using the force host"},{"line_number":5,"context_line":"    feature, the (default) FilterScheduler now also"},{"line_number":6,"context_line":"    verifies the disabled nodes for filtering."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5aef4532_ed91089b","line":3,"updated":"2016-03-08 12:13:08.000000000","message":"Actually, the bug that was fixed prevented any kind of scheduling to disabled hosts using the filter scheduler, not just force to host. So I am not sure that detail is needed.\n\nHow about something like:\n\n\"A bug that stopped disabled hosts being presented to the scheduler has been fixed. It is now possible to schedule to disabled hosts. Make sure the ComputeFilter is in the \u0027\u0027scheduler_default_filters\u0027\u0027 configuration option if you only want to schedule to active hosts.\"","commit_id":"56f5c184715a74a58eaf3c93b20811c13fb99544"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"49cc99c03cfb1b5959f676c5cb4dbe263c4e8399","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - In order to  make possible to force an instance to"},{"line_number":4,"context_line":"    boot in a disabled host by using the force host"},{"line_number":5,"context_line":"    feature, the (default) FilterScheduler now also"},{"line_number":6,"context_line":"    verifies the disabled nodes for filtering."},{"line_number":7,"context_line":"    Make sure to enable the ComputeFilter in the"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5aef4532_9b19ab7c","line":4,"updated":"2016-03-08 07:42:44.000000000","message":"would this read better as \u0027on\u0027 a disabled host?","commit_id":"56f5c184715a74a58eaf3c93b20811c13fb99544"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5e9b8b5fafaccb6d343ca2a590b39f9a36f238d8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - In order to  make possible to force an instance to"},{"line_number":4,"context_line":"    boot in a disabled host by using the force host"},{"line_number":5,"context_line":"    feature, the (default) FilterScheduler now also"},{"line_number":6,"context_line":"    verifies the disabled nodes for filtering."},{"line_number":7,"context_line":"    Make sure to enable the ComputeFilter in the"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5aef4532_be029009","line":4,"in_reply_to":"5aef4532_9b19ab7c","updated":"2016-03-08 10:29:17.000000000","message":"Yup","commit_id":"56f5c184715a74a58eaf3c93b20811c13fb99544"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"49cc99c03cfb1b5959f676c5cb4dbe263c4e8399","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - In order to  make possible to force an instance to"},{"line_number":4,"context_line":"    boot in a disabled host by using the force host"},{"line_number":5,"context_line":"    feature, the (default) FilterScheduler now also"},{"line_number":6,"context_line":"    verifies the disabled nodes for filtering."},{"line_number":7,"context_line":"    Make sure to enable the ComputeFilter in the"},{"line_number":8,"context_line":"    ``scheduler_default_filters`` configuration option"},{"line_number":9,"context_line":"    if you want to only schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5aef4532_7b693fbe","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":12},"updated":"2016-03-08 07:42:44.000000000","message":"includes instead of verifies?","commit_id":"56f5c184715a74a58eaf3c93b20811c13fb99544"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5e9b8b5fafaccb6d343ca2a590b39f9a36f238d8","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - In order to  make possible to force an instance to"},{"line_number":4,"context_line":"    boot in a disabled host by using the force host"},{"line_number":5,"context_line":"    feature, the (default) FilterScheduler now also"},{"line_number":6,"context_line":"    verifies the disabled nodes for filtering."},{"line_number":7,"context_line":"    Make sure to enable the ComputeFilter in the"},{"line_number":8,"context_line":"    ``scheduler_default_filters`` configuration option"},{"line_number":9,"context_line":"    if you want to only schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5aef4532_610a2923","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":12},"in_reply_to":"5aef4532_7b693fbe","updated":"2016-03-08 10:29:17.000000000","message":"yup, works too","commit_id":"56f5c184715a74a58eaf3c93b20811c13fb99544"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4313e128c300f29e1d32c3a082044b7fe2309142","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - A bug that stopped disabled hosts being presented "},{"line_number":4,"context_line":"    to the scheduler has been fixed. It is now possible "},{"line_number":5,"context_line":"    to schedule to disabled hosts. "},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the "},{"line_number":7,"context_line":"    \u0027scheduler_default_filters\u0027 configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5aef4532_bc39e143","line":6,"updated":"2016-03-08 18:42:45.000000000","message":"Lots of whitespace here.","commit_id":"6e6544fff0a30bded03c8ad4f633c812344d0abf"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a71554246b8384edf967d36d9d48be4f946c32a5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    to the scheduler has been fixed. It is now possible"},{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    \u0027scheduler_default_filters\u0027 configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5aef4532_535a2c2b","line":7,"range":{"start_line":7,"start_character":5,"end_line":7,"end_character":30},"updated":"2016-03-09 09:51:56.000000000","message":"nit: we usually prefer to use a pre comment like\n``scheduler_default_filters`` for configuration options\n\nsee http://docs-draft.openstack.org/73/288373/8/check/gate-nova-releasenotes/dacbcb7//releasenotes/build/html/unreleased.html#b3-133 for the rendering","commit_id":"28404e9a096790fd6d059a7fd3d64040e602e310"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"2bb1105e2937b4f4a3a6b3d1b45b53221f09ac6e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    to the scheduler has been fixed. It is now possible"},{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    \u0027scheduler_default_filters\u0027 configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5aef4532_168ff22a","line":7,"range":{"start_line":7,"start_character":5,"end_line":7,"end_character":30},"in_reply_to":"5aef4532_535a2c2b","updated":"2016-03-09 10:31:35.000000000","message":"Done","commit_id":"28404e9a096790fd6d059a7fd3d64040e602e310"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a71554246b8384edf967d36d9d48be4f946c32a5","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    \u0027scheduler_default_filters\u0027 configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5aef4532_304cb69d","line":8,"updated":"2016-03-09 09:51:56.000000000","message":"that looks a nice relnote, I\u0027m fine with that.","commit_id":"28404e9a096790fd6d059a7fd3d64040e602e310"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"2bb1105e2937b4f4a3a6b3d1b45b53221f09ac6e","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    \u0027scheduler_default_filters\u0027 configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5aef4532_7680f6f7","line":8,"in_reply_to":"5aef4532_304cb69d","updated":"2016-03-09 10:31:35.000000000","message":"Done","commit_id":"28404e9a096790fd6d059a7fd3d64040e602e310"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"33cee89a353f1b90ab97c3ac404c35d3b1592364","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    ``scheduler_default_filters`` configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5aef4532_21e3b834","line":8,"updated":"2016-03-09 13:51:46.000000000","message":"great note, I love the wording :)","commit_id":"0dbaebf5647922b78d0d78c54888b87f620b7923"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"13ed67886476ca3d519b4508498e1bd4cde69db6","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - A bug that stopped disabled hosts being presented"},{"line_number":4,"context_line":"    to the scheduler has been fixed. It is now possible"},{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    ``scheduler_default_filters`` configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5aef4532_93be5963","line":5,"updated":"2016-03-09 16:11:16.000000000","message":"If I hadn\u0027t read the comments on this patch I wouldn\u0027t really understand this at all. Can you change this to \"force schedule\" perhaps? Otherwise this seems contrary to the sentence below.","commit_id":"a684d1214ef1e271e4de8e1362b6a75857963d24"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"41809ec5e81900b25ef0fe8ffc4ca3b9155982dd","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - A bug that stopped disabled hosts being presented"},{"line_number":4,"context_line":"    to the scheduler has been fixed. It is now possible"},{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    ``scheduler_default_filters`` configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5aef4532_d183b854","line":5,"in_reply_to":"5aef4532_93be5963","updated":"2016-03-09 16:54:32.000000000","message":"I think this text is actually right!  The inclusion of the disabled\u003dFalse filter in the database query meant that the host manager\u0027s list of hosts did not include disabled hosts. This meant that you could not schedule an instance to a disabled host, either using force host or via the FilterScheduler.  Including disabled hosts in the list of hosts to be considered by the FilterScheduler seems like an odd approach to me but it is supported.  Currently it is not possible, this fix makes it possible.\nThe comment below is a warning to operators who may not wish to have disabled hosts considered by the FilterScheduler that they need to ensure they have the ComputeFilter in the list of filters to remove disabled hosts.","commit_id":"a684d1214ef1e271e4de8e1362b6a75857963d24"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ff1670293b259739804b667a2656b7b8ab1ceff4","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - A bug that stopped disabled hosts being presented"},{"line_number":4,"context_line":"    to the scheduler has been fixed. It is now possible"},{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    ``scheduler_default_filters`` configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5aef4532_2e254a08","line":5,"in_reply_to":"5aef4532_9775a0fb","updated":"2016-03-09 19:20:40.000000000","message":"Yeah, I think I understand the problem. I\u0027m saying that someone not understanding that ComputeFilter is currently redundant won\u0027t understand what is being changed here. Reading it confused me, even though I knew what the code was doing and didn\u0027t grok the full thing until I read the comments here.\n\nSo, regardless, I think it\u0027s confusing.","commit_id":"a684d1214ef1e271e4de8e1362b6a75857963d24"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"4238f74950841cb620eab045eb912ceb8c3684d1","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - A bug that stopped disabled hosts being presented"},{"line_number":4,"context_line":"    to the scheduler has been fixed. It is now possible"},{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    ``scheduler_default_filters`` configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5aef4532_9775a0fb","line":5,"in_reply_to":"5aef4532_d183b854","updated":"2016-03-09 17:03:33.000000000","message":"Hi Dan, \n\nThis message is not about force to host. I think mentioning that may encourage the target audience to ignore it.\n\nI think most sane people would not schedule to disabled hosts. However, the ComputeFilter (which filters out disabled hosts)  has been redundant for some time because the disabled hosts were not being provided. People who were not using it may have accidentally got the behavior they expect. If they don\u0027t pay attention to this they may be surprised.","commit_id":"a684d1214ef1e271e4de8e1362b6a75857963d24"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6d802f2a3769f2949ec94288d91733c0712881ea","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    ``scheduler_default_filters`` configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5aef4532_4e6ff62a","line":8,"updated":"2016-03-09 19:21:34.000000000","message":"I still think this is confusing (see comments on the previous set).\n\nI guess I won\u0027t -1 it, but hopefully other cores will come in and say that it makes perfect sense to them. For me, reading it is confusing and this is directly targeted at users not developers.","commit_id":"a1a131723fa421ee5196a4b484c79021eb7bb307"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"6f4c33d7c1e4eacade723e641dee8c21a3ab0188","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    ``scheduler_default_filters`` configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5aef4532_ce592a90","line":8,"in_reply_to":"5aef4532_1fdfd90d","updated":"2016-03-10 08:44:58.000000000","message":"Done","commit_id":"a1a131723fa421ee5196a4b484c79021eb7bb307"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"71d3cdea3de2aa09c901e5660f6a21e8bf336d4e","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    ``scheduler_default_filters`` configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5aef4532_1fdfd90d","line":8,"in_reply_to":"5aef4532_4e6ff62a","updated":"2016-03-09 20:40:14.000000000","message":"So,","commit_id":"a1a131723fa421ee5196a4b484c79021eb7bb307"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"71d3cdea3de2aa09c901e5660f6a21e8bf336d4e","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    to schedule to disabled hosts."},{"line_number":6,"context_line":"    Make sure the ComputeFilter is in the"},{"line_number":7,"context_line":"    ``scheduler_default_filters`` configuration option"},{"line_number":8,"context_line":"    if you only want to schedule to active hosts."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5aef4532_7fc9bd58","line":8,"in_reply_to":"5aef4532_4e6ff62a","updated":"2016-03-09 20:40:14.000000000","message":"So, I\u0027m probably not the best guy for providing some English explanation, but lemme try another phrasing :\n\n\"The FilterScheduler is now also checking disabled hosts for filtering. Just make sure to have the ComputeFilter enabled in the ``scheduler_default_filters`` config option for only booting instances to active nodes\".","commit_id":"a1a131723fa421ee5196a4b484c79021eb7bb307"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"584c919e2ec73d30074ebe74e630d3c2a860864c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The FilterScheduler is now including disabled hosts."},{"line_number":4,"context_line":"    Make sure you have the ComputeFilter enabled in the"},{"line_number":5,"context_line":"    ``scheduler_default_filters`` config option to avoid"},{"line_number":6,"context_line":"    placing instances on disabled hosts."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"5aef4532_b1288334","line":4,"range":{"start_line":4,"start_character":41,"end_line":4,"end_character":48},"updated":"2016-03-10 08:48:43.000000000","message":"maybe enabled should be included?","commit_id":"22ae89d29e8593dd19fb143315de413702d1a05a"}]}
