)]}'
{"placement/objects/research_context.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0533e0d69bf8e84e9b3fb29ec4bec3dfc37a289","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            self.rps_in_aggs \u003d provider_ids_matching_aggregates("},{"line_number":83,"context_line":"                context, self.member_of)"},{"line_number":84,"context_line":"            if not self.rps_in_aggs:"},{"line_number":85,"context_line":"                LOG.debug(\u0027found no providers matching aggregates %s\u0027,"},{"line_number":86,"context_line":"                          self.member_of)"},{"line_number":87,"context_line":"                raise exception.ResourceProviderNotFound()"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_0487fc63","line":85,"updated":"2020-08-06 13:28:38.000000000","message":"granular","commit_id":"fa9ae57984ba1f839331174d9b3ef9658af5b775"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0533e0d69bf8e84e9b3fb29ec4bec3dfc37a289","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            # flows down feature) rather than applying later the implicit rule"},{"line_number":124,"context_line":"            # that aggregate on root spans the whole tree"},{"line_number":125,"context_line":"            rc_name \u003d context.rc_cache.string_from_id(rc_id)"},{"line_number":126,"context_line":"            LOG.debug(\u0027getting providers with %d %s\u0027, amount, rc_name)"},{"line_number":127,"context_line":"            provs_with_resource \u003d get_providers_with_resource("},{"line_number":128,"context_line":"                context, rc_id, amount, tree_root_id\u003dself.tree_root_id)"},{"line_number":129,"context_line":"            if not provs_with_resource:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_e433e8a9","line":126,"updated":"2020-08-06 13:28:38.000000000","message":"This might be a bit chatty.","commit_id":"fa9ae57984ba1f839331174d9b3ef9658af5b775"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"00a9e8664ec007d7cd5a370848593623150de16e","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            # flows down feature) rather than applying later the implicit rule"},{"line_number":124,"context_line":"            # that aggregate on root spans the whole tree"},{"line_number":125,"context_line":"            rc_name \u003d context.rc_cache.string_from_id(rc_id)"},{"line_number":126,"context_line":"            LOG.debug(\u0027getting providers with %d %s\u0027, amount, rc_name)"},{"line_number":127,"context_line":"            provs_with_resource \u003d get_providers_with_resource("},{"line_number":128,"context_line":"                context, rc_id, amount, tree_root_id\u003dself.tree_root_id)"},{"line_number":129,"context_line":"            if not provs_with_resource:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_c7dfbc0a","line":126,"in_reply_to":"9f560f44_e433e8a9","updated":"2020-08-06 22:44:51.000000000","message":"Understood. I considered not logging this one... but in a case where placement is ultimately going to fail to find a provider that satisfies all requirements, I thought it might help to show which resources did pass before the fail.\n\nI\u0027m realizing maybe that would be more clear if I logged \u0027found provider with \u003camount\u003e \u003crc_name\u003e\u0027 on L132 instead. Though that would be redundant with the log message on L549 if the request ends up succeeding in finding providers. I think that\u0027s why I logged it here instead.","commit_id":"fa9ae57984ba1f839331174d9b3ef9658af5b775"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0533e0d69bf8e84e9b3fb29ec4bec3dfc37a289","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            provs_with_resource \u003d get_providers_with_resource("},{"line_number":128,"context_line":"                context, rc_id, amount, tree_root_id\u003dself.tree_root_id)"},{"line_number":129,"context_line":"            if not provs_with_resource:"},{"line_number":130,"context_line":"                LOG.debug(\u0027found no providers with %d %s\u0027, amount, rc_name)"},{"line_number":131,"context_line":"                raise exception.ResourceProviderNotFound()"},{"line_number":132,"context_line":"            self._rps_with_resource[rc_id] \u003d provs_with_resource"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_24804046","line":130,"updated":"2020-08-06 13:28:38.000000000","message":"granular","commit_id":"fa9ae57984ba1f839331174d9b3ef9658af5b775"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0533e0d69bf8e84e9b3fb29ec4bec3dfc37a289","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            self._ctx, required_ids, forbidden_ids)"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        if not self.anchor_root_ids:"},{"line_number":233,"context_line":"            LOG.debug(\u0027found no providers satisfying required traits: %s and \u0027"},{"line_number":234,"context_line":"                      \u0027forbidden traits: %s\u0027, required, forbidden)"},{"line_number":235,"context_line":"            raise exception.ResourceProviderNotFound()"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_849aecb5","line":233,"updated":"2020-08-06 13:28:38.000000000","message":"non-granular","commit_id":"fa9ae57984ba1f839331174d9b3ef9658af5b775"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"00a9e8664ec007d7cd5a370848593623150de16e","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        rc_name \u003d rg_ctx.context.rc_cache.string_from_id(rc_id)"},{"line_number":548,"context_line":"        provs_with_resource \u003d rg_ctx.get_rps_with_resource(rc_id)"},{"line_number":549,"context_line":"        LOG.debug(\"found %d providers with available %d %s\","},{"line_number":550,"context_line":"                  len(provs_with_resource), amount, rc_name)"},{"line_number":551,"context_line":"        if not provs_with_resource:"},{"line_number":552,"context_line":"            return []"},{"line_number":553,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_e701206c","line":550,"updated":"2020-08-06 22:44:51.000000000","message":"Note: this is where found providers are logged.","commit_id":"fa9ae57984ba1f839331174d9b3ef9658af5b775"}]}
