)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ba060314159e5b576bffb0215401e77db1ce84e6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the RequestSpec object was created, it was assumed that when the"},{"line_number":10,"context_line":"request was for more than one instance the scheduler would not need to"},{"line_number":11,"context_line":"know the UUIDs for the individual instances, and so it was prematurely"},{"line_number":12,"context_line":"optimized to only pass one instance UUID. If, however, we want the"},{"line_number":13,"context_line":"scheduler to be able to claim resources on the selected host, we will"},{"line_number":14,"context_line":"need to know the instance UUID, which will be the consumer_id of the"},{"line_number":15,"context_line":"allocation."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ff0f0b1f_8c7090de","line":12,"range":{"start_line":11,"start_character":52,"end_line":12,"end_character":40},"updated":"2017-05-19 08:48:03.000000000","message":"no, it wasn\u0027t \"prematurly optimized\", this is rather deliberartly made by design. The story is that, when I began defining the RequestSpec object, we had a talk with a lot of people and I discovered there was already a consensus on not providing the UUIDs because when you boot multiple instances at once, they all share the same user request with resource constraints.\n\nSome context can be found in the review of https://github.com/openstack/nova/commit/15e6a5d0","commit_id":"73e31f66337443516392d8b956b547e97d7aa7d5"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"b882d1942ea89105522c66d5f9d4390432b900d6","unresolved":false,"context_lines":[{"line_number":27,"context_line":"resource providers, since the claims will be done consistently. By doing"},{"line_number":28,"context_line":"the claims in the conductor (for Nova), all other services will also"},{"line_number":29,"context_line":"have to implement claiming code. Since it is the scheduler that is doing"},{"line_number":30,"context_line":"the selection, it should be the scheduler that does the claim."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Partially-Implements: blueprint placement-claims"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ff0f0b1f_9362e83d","line":30,"updated":"2017-05-19 13:09:23.000000000","message":"This paragraph really gets to the heart of the issue, one which we should resolve before we get too far along on this claiming process.\n\nWhen we started placement and made the plan that it would be an external service, the idealized hope was that placement would be able to return the single target(s)  (the placement) for a resource request. The need for filtering and weighing could maybe go away and thus nova-scheduler was a stop gap that would eventually dissolve to nothing.\n\nIt\u0027s now clear (from what I can discern) that that is no longer the case; there will always be a need for some filtering and weighing-like behaviors using info that we\u0027d prefer placement to never have to deal with.\n\nAt the same time it is generally accepted that placement will have as it clients more projects than just nova and those clients will also need to do be able to do filtering and somewhere in their stack do claiming.\n\nIf that\u0027s true then we\u0027re doing a disservice to people by not preparing the current scheduler code to potentially be a library for those other services and:\n\n* doing claiming in that library (because it makes the claim as early in the process as possible)\n* passing consumer uuids in so the claims can happen\n\nAs I said on https://review.openstack.org/#/c/460433/ I think we want to make the claim as long as possible. Besides letting go of it late (as on that review) that also means making it early (as on this review).\n\nIt was _extremely_ clear from summit that other services want to take advantage of the placement service. It is less clear if they need/want tooling for filtering. We should find out.","commit_id":"73e31f66337443516392d8b956b547e97d7aa7d5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b0f95f12c6aeb384085f13ceefd1a2a0376b7f5c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"resource providers, since the claims will be done consistently. By doing"},{"line_number":28,"context_line":"the claims in the conductor (for Nova), all other services will also"},{"line_number":29,"context_line":"have to implement claiming code. Since it is the scheduler that is doing"},{"line_number":30,"context_line":"the selection, it should be the scheduler that does the claim."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Partially-Implements: blueprint placement-claims"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ff0f0b1f_c732a15e","line":30,"in_reply_to":"ff0f0b1f_9362e83d","updated":"2017-05-22 16:00:58.000000000","message":"Agree with Chris here.","commit_id":"73e31f66337443516392d8b956b547e97d7aa7d5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b9ab4044aa1e1e92a3daa1eaee0a377ab3f0a62e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"resource providers, since the claims will be done consistently. By doing"},{"line_number":28,"context_line":"the claims in the conductor (for Nova), all other services will also"},{"line_number":29,"context_line":"have to implement claiming code. Since it is the scheduler that is doing"},{"line_number":30,"context_line":"the selection, it should be the scheduler that does the claim."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Partially-Implements: blueprint placement-claims"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ff0f0b1f_0302543f","line":30,"updated":"2017-05-25 18:00:58.000000000","message":"++ nice commit message.","commit_id":"ce689877cef7afe78267b2a791d4a0218405e323"}],"nova/scheduler/chance.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"27be76d1b26e27d8cee341b41fd0868948824510","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def select_destinations(self, context, spec_obj):"},{"line_number":59,"context_line":"        \"\"\"Selects random destinations.\"\"\""},{"line_number":60,"context_line":"        num_instances \u003d spec_obj.num_instances"},{"line_number":61,"context_line":"        # NOTE(timello): Returns a list of dicts with \u0027host\u0027, \u0027nodename\u0027 and"},{"line_number":62,"context_line":"        # \u0027limits\u0027 as keys for compatibility with filter_scheduler."},{"line_number":63,"context_line":"        # TODO(danms): This needs to be extended to support multiple cells"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff0f0b1f_543a2bcd","side":"PARENT","line":60,"updated":"2017-05-26 11:22:16.000000000","message":"Just curious will, len(instance_uuids) always be the same as num_instances?","commit_id":"203aacc3b994e6c6d95f63bb608bba41567714a0"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"23dc4ade9746eef85ba2077768af5c240cc3458a","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def select_destinations(self, context, spec_obj):"},{"line_number":59,"context_line":"        \"\"\"Selects random destinations.\"\"\""},{"line_number":60,"context_line":"        num_instances \u003d spec_obj.num_instances"},{"line_number":61,"context_line":"        # NOTE(timello): Returns a list of dicts with \u0027host\u0027, \u0027nodename\u0027 and"},{"line_number":62,"context_line":"        # \u0027limits\u0027 as keys for compatibility with filter_scheduler."},{"line_number":63,"context_line":"        # TODO(danms): This needs to be extended to support multiple cells"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff0f0b1f_b9b5ffcf","side":"PARENT","line":60,"in_reply_to":"ff0f0b1f_543a2bcd","updated":"2017-05-26 12:49:10.000000000","message":"Yes, it should be, since these are generated in compute/api.py in _provision_instances().","commit_id":"203aacc3b994e6c6d95f63bb608bba41567714a0"}],"nova/tests/unit/scheduler/test_rpcapi.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"27be76d1b26e27d8cee341b41fd0868948824510","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        fake_spec \u003d objects.RequestSpec()"},{"line_number":82,"context_line":"        self._test_scheduler_api(\u0027select_destinations\u0027, rpc_method\u003d\u0027call\u0027,"},{"line_number":83,"context_line":"                spec_obj\u003dfake_spec, instance_uuids\u003d[uuids.instance],"},{"line_number":84,"context_line":"                version\u003d\u00274.4\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    @mock.patch.object(objects.RequestSpec, \u0027to_legacy_filter_properties_dict\u0027)"},{"line_number":87,"context_line":"    @mock.patch.object(objects.RequestSpec, \u0027to_legacy_request_spec_dict\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff0f0b1f_5496ab96","line":84,"updated":"2017-05-26 11:22:16.000000000","message":"It looks like one of these tests should be useful version 4.3 but both are 4.4","commit_id":"ce689877cef7afe78267b2a791d4a0218405e323"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"23dc4ade9746eef85ba2077768af5c240cc3458a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        fake_spec \u003d objects.RequestSpec()"},{"line_number":82,"context_line":"        self._test_scheduler_api(\u0027select_destinations\u0027, rpc_method\u003d\u0027call\u0027,"},{"line_number":83,"context_line":"                spec_obj\u003dfake_spec, instance_uuids\u003d[uuids.instance],"},{"line_number":84,"context_line":"                version\u003d\u00274.4\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    @mock.patch.object(objects.RequestSpec, \u0027to_legacy_filter_properties_dict\u0027)"},{"line_number":87,"context_line":"    @mock.patch.object(objects.RequestSpec, \u0027to_legacy_request_spec_dict\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff0f0b1f_59f2639c","line":84,"in_reply_to":"ff0f0b1f_5496ab96","updated":"2017-05-26 12:49:10.000000000","message":"Good, you were paying attention! You pass the test.","commit_id":"ce689877cef7afe78267b2a791d4a0218405e323"}]}
