)]}'
{"nova/scheduler/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"33c29d53244216a12bb6356e52eb30671a0047a8","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            request_filter.process_reqspec(ctxt, spec_obj)"},{"line_number":122,"context_line":"        except exception.RequestFilterFailed as e:"},{"line_number":123,"context_line":"            raise exception.NoValidHost(e.message)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        resources \u003d utils.resources_from_request_spec(spec_obj)"},{"line_number":126,"context_line":"        alloc_reqs_by_rp_uuid, provider_summaries, allocation_request_version \\"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf659307_cb2500ad","line":123,"range":{"start_line":123,"start_character":40,"end_line":123,"end_character":49},"updated":"2018-03-28 15:16:33.000000000","message":"reason\u003de.message? Otherwise this overwrites the NoValidHost message.","commit_id":"72acfaa660dc0e6c0fa3bf9959aadc6fe44f8d14"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ea9dfa6047e74a640a8157cad0a8de18d10440ab","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            request_filter.process_reqspec(ctxt, spec_obj)"},{"line_number":122,"context_line":"        except exception.RequestFilterFailed as e:"},{"line_number":123,"context_line":"            raise exception.NoValidHost(e.message)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        resources \u003d utils.resources_from_request_spec(spec_obj)"},{"line_number":126,"context_line":"        alloc_reqs_by_rp_uuid, provider_summaries, allocation_request_version \\"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf659307_11523edf","line":123,"range":{"start_line":123,"start_character":40,"end_line":123,"end_character":49},"in_reply_to":"bf659307_cb2500ad","updated":"2018-03-28 20:14:40.000000000","message":"Yeah I meant to do this.","commit_id":"72acfaa660dc0e6c0fa3bf9959aadc6fe44f8d14"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"82f0ca0612548b32204891e2506ae6f48df5d53d","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            request_filter.process_reqspec(ctxt, spec_obj)"},{"line_number":122,"context_line":"        except exception.RequestFilterFailed as e:"},{"line_number":123,"context_line":"            raise exception.NoValidHost(reason\u003de.message)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        resources \u003d utils.resources_from_request_spec(spec_obj)"},{"line_number":126,"context_line":"        alloc_reqs_by_rp_uuid, provider_summaries, allocation_request_version \\"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf659307_34dabe4b","line":123,"updated":"2018-03-29 13:57:04.000000000","message":"just a thought, since we\u0027re going to implement a loop on all the pre-filters, some operators could love to see a way to have more than just the current exception, but that\u0027s food for thoughts later.","commit_id":"5f36cafacda0a0deec1a3b7e1038406dc8802b0b"}],"nova/scheduler/request_filter.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"33c29d53244216a12bb6356e52eb30671a0047a8","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    :param ctxt: A RequestContext"},{"line_number":30,"context_line":"    :param request_spec: An objects.RequestSpec to be inspected/modified"},{"line_number":31,"context_line":"    \"\"\""},{"line_number":32,"context_line":"    for filter in ALL_REQUEST_FILTERS:"},{"line_number":33,"context_line":"        filter(ctxt, request_spec)"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf659307_cb5ae028","line":32,"range":{"start_line":32,"start_character":8,"end_line":32,"end_character":14},"updated":"2018-03-28 15:16:33.000000000","message":"nit: this is a built-in; not sure it matters here, but just pointing it out.","commit_id":"72acfaa660dc0e6c0fa3bf9959aadc6fe44f8d14"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"82f0ca0612548b32204891e2506ae6f48df5d53d","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"ALL_REQUEST_FILTERS \u003d ["},{"line_number":23,"context_line":"]"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def process_reqspec(ctxt, request_spec):"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf659307_f4868613","line":23,"updated":"2018-03-29 13:57:04.000000000","message":"as we said, that won\u0027t be tunable by operators, right?","commit_id":"5f36cafacda0a0deec1a3b7e1038406dc8802b0b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f27e6f112d60ab10d69e329e91f098e1b91c309e","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"ALL_REQUEST_FILTERS \u003d ["},{"line_number":23,"context_line":"]"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def process_reqspec(ctxt, request_spec):"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf659307_af543b54","line":23,"in_reply_to":"bf659307_f4868613","updated":"2018-03-29 14:41:58.000000000","message":"As in pluggable? We said no. And the placement request filters are tunable in that there will be a boolean config option with each one to disable the ones you don\u0027t want (and I think they default to disabled, at least one one in this series).","commit_id":"5f36cafacda0a0deec1a3b7e1038406dc8802b0b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"82f0ca0612548b32204891e2506ae6f48df5d53d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"]"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def process_reqspec(ctxt, request_spec):"},{"line_number":27,"context_line":"    \"\"\"Process an objects.ReqestSpec before calling placement."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    :param ctxt: A RequestContext"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf659307_b4932e5b","line":26,"updated":"2018-03-29 13:57:04.000000000","message":"we already have https://github.com/openstack/nova/blob/master/nova/filters.py\n\nI\u0027m not particularly asking to use that specific module, but that would avoid to create a new module just for a classic Visitor pattern.","commit_id":"5f36cafacda0a0deec1a3b7e1038406dc8802b0b"}],"nova/tests/unit/scheduler/test_request_filter.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"33c29d53244216a12bb6356e52eb30671a0047a8","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class TestRequestFilter(test.NoDBTestCase):"},{"line_number":22,"context_line":"    def setUp(self):"},{"line_number":23,"context_line":"        super(TestRequestFilter, self).setUp()"},{"line_number":24,"context_line":"        self.context \u003d nova_context.RequestContext(user_id\u003duuids.user,"},{"line_number":25,"context_line":"                                                   project_id\u003duuids.project)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def test_process_reqspec(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf659307_0b9f78b4","line":24,"updated":"2018-03-28 15:16:33.000000000","message":"This isn\u0027t used.","commit_id":"72acfaa660dc0e6c0fa3bf9959aadc6fe44f8d14"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ea9dfa6047e74a640a8157cad0a8de18d10440ab","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class TestRequestFilter(test.NoDBTestCase):"},{"line_number":22,"context_line":"    def setUp(self):"},{"line_number":23,"context_line":"        super(TestRequestFilter, self).setUp()"},{"line_number":24,"context_line":"        self.context \u003d nova_context.RequestContext(user_id\u003duuids.user,"},{"line_number":25,"context_line":"                                                   project_id\u003duuids.project)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def test_process_reqspec(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf659307_91572ecb","line":24,"in_reply_to":"bf659307_0b9f78b4","updated":"2018-03-28 20:14:40.000000000","message":"It\u0027s used in the next patch that adds stuff here. I can move it if you care, but hopefully you\u0027ll let me slide :)","commit_id":"72acfaa660dc0e6c0fa3bf9959aadc6fe44f8d14"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"33c29d53244216a12bb6356e52eb30671a0047a8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        fake_filters \u003d [mock.MagicMock(), mock.MagicMock()]"},{"line_number":29,"context_line":"        with mock.patch(\u0027nova.scheduler.request_filter.ALL_REQUEST_FILTERS\u0027,"},{"line_number":30,"context_line":"                        new\u003dfake_filters):"},{"line_number":31,"context_line":"            request_filter.process_reqspec(mock.sentinel.context,"},{"line_number":32,"context_line":"                                           mock.sentinel.reqspec)"},{"line_number":33,"context_line":"        for filter in fake_filters:"},{"line_number":34,"context_line":"            filter.assert_called_once_with(mock.sentinel.context,"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf659307_eb9b24c6","line":31,"range":{"start_line":31,"start_character":43,"end_line":31,"end_character":64},"updated":"2018-03-28 15:16:33.000000000","message":"nit: self.context? Otherwise there is no point in your setUp method.","commit_id":"72acfaa660dc0e6c0fa3bf9959aadc6fe44f8d14"}]}
