)]}'
{"neutron/api/extensions.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ab8107ffea87ad5a475a727ede5e81e7b5b7db4d","unresolved":false,"context_lines":[{"line_number":645,"context_line":""},{"line_number":646,"context_line":""},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"import uuid"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"class ProjectIdMiddleware(base.ConfigurableMiddleware):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_a67c93eb","line":648,"updated":"2020-09-22 00:40:05.000000000","message":"pep8: E303 too many blank lines (5)","commit_id":"8bc249a2106fe069d7ccb2e5f8ad65f9bf24cf56"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ab8107ffea87ad5a475a727ede5e81e7b5b7db4d","unresolved":false,"context_lines":[{"line_number":645,"context_line":""},{"line_number":646,"context_line":""},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"import uuid"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"class ProjectIdMiddleware(base.ConfigurableMiddleware):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_067e1fe2","line":648,"updated":"2020-09-22 00:40:05.000000000","message":"pep8: E402 module level import not at top of file","commit_id":"8bc249a2106fe069d7ccb2e5f8ad65f9bf24cf56"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ab8107ffea87ad5a475a727ede5e81e7b5b7db4d","unresolved":false,"context_lines":[{"line_number":645,"context_line":""},{"line_number":646,"context_line":""},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"import uuid"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"class ProjectIdMiddleware(base.ConfigurableMiddleware):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_e6820bc7","line":648,"updated":"2020-09-22 00:40:05.000000000","message":"pep8: I100 Import statements are in the wrong order. import uuid should be before from neutron","commit_id":"8bc249a2106fe069d7ccb2e5f8ad65f9bf24cf56"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ab8107ffea87ad5a475a727ede5e81e7b5b7db4d","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    @classmethod"},{"line_number":659,"context_line":"    def factory(cls, global_conf, **local_conf):"},{"line_number":660,"context_line":"        return super(ProjectIdMiddleware, cls).factory(global_conf, **local_conf)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"    @webob.dec.wsgify"},{"line_number":663,"context_line":"    def __call__(self, req):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_466bf71d","line":660,"updated":"2020-09-22 00:40:05.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"8bc249a2106fe069d7ccb2e5f8ad65f9bf24cf56"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"067899301b775c841d139ab6db288bb32b7a0acc","unresolved":false,"context_lines":[{"line_number":649,"context_line":""},{"line_number":650,"context_line":"    @classmethod"},{"line_number":651,"context_line":"    def factory(cls, global_conf, **local_conf):"},{"line_number":652,"context_line":"        return super(ProjectIdMiddleware, cls).factory(global_conf, **local_conf)"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"    @webob.dec.wsgify"},{"line_number":655,"context_line":"    def __call__(self, req):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_29d67d28","line":652,"updated":"2020-09-23 00:17:26.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"8914591ae6d86a9d59b0f25d7710744b67bc7115"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d9ffea87d78e031ad6dd22ae7457ef2ad3ec5ec5","unresolved":false,"context_lines":[{"line_number":649,"context_line":""},{"line_number":650,"context_line":"    @classmethod"},{"line_number":651,"context_line":"    def factory(cls, global_conf, **local_conf):"},{"line_number":652,"context_line":"        return super(ProjectIdMiddleware, cls).factory(global_conf, **local_conf)"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"    @webob.dec.wsgify"},{"line_number":655,"context_line":"    def __call__(self, req):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_a2e45f0f","line":652,"updated":"2020-09-23 10:50:45.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"8914591ae6d86a9d59b0f25d7710744b67bc7115"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cc102e8e908cc742359290e02c6093256a7d9dfe","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"EXTENSION_SUPPORTED_CHECK_MAP \u003d {}"},{"line_number":43,"context_line":"_PLUGIN_AGNOSTIC_EXTENSIONS \u003d set()"},{"line_number":44,"context_line":"_NOVA_CONNECTION \u003d None"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"def register_custom_supported_check(alias, f, plugin_agnostic\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_a9f236e1","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":16},"updated":"2020-09-28 06:13:46.000000000","message":"Why nova_connection?","commit_id":"315cc49a61395ebe2a0e41bfe7699c601e702b12"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"049bb86c409bafba821760bda9eec2492238f6d4","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"EXTENSION_SUPPORTED_CHECK_MAP \u003d {}"},{"line_number":43,"context_line":"_PLUGIN_AGNOSTIC_EXTENSIONS \u003d set()"},{"line_number":44,"context_line":"_NOVA_CONNECTION \u003d None"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"def register_custom_supported_check(alias, f, plugin_agnostic\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_5c7cf66f","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":16},"in_reply_to":"9f560f44_a9f236e1","updated":"2020-09-28 08:13:53.000000000","message":"See L656","commit_id":"315cc49a61395ebe2a0e41bfe7699c601e702b12"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cc102e8e908cc742359290e02c6093256a7d9dfe","unresolved":false,"context_lines":[{"line_number":653,"context_line":"        project \u003d req.params.get(\u0027project_id\u0027) or req.params.get(\u0027tenant_id\u0027)"},{"line_number":654,"context_line":"        if project:"},{"line_number":655,"context_line":"            if not _NOVA_CONNECTION:"},{"line_number":656,"context_line":"                auth \u003d ks_loading.load_auth_from_conf_options(cfg.CONF, \u0027nova\u0027)"},{"line_number":657,"context_line":"                keystone_session \u003d ks_loading.load_session_from_conf_options("},{"line_number":658,"context_line":"                    cfg.CONF, \u0027nova\u0027, auth\u003dauth)"},{"line_number":659,"context_line":"                _NOVA_CONNECTION \u003d connection.Connection("}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_e9f8aec1","line":656,"range":{"start_line":656,"start_character":61,"end_line":656,"end_character":79},"updated":"2020-09-28 06:13:46.000000000","message":"Why nova config?","commit_id":"315cc49a61395ebe2a0e41bfe7699c601e702b12"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f6a943f0af951a9b6496e0f074716ff39806183b","unresolved":false,"context_lines":[{"line_number":653,"context_line":"        project \u003d req.params.get(\u0027project_id\u0027) or req.params.get(\u0027tenant_id\u0027)"},{"line_number":654,"context_line":"        if project:"},{"line_number":655,"context_line":"            if not _NOVA_CONNECTION:"},{"line_number":656,"context_line":"                auth \u003d ks_loading.load_auth_from_conf_options(cfg.CONF, \u0027nova\u0027)"},{"line_number":657,"context_line":"                keystone_session \u003d ks_loading.load_session_from_conf_options("},{"line_number":658,"context_line":"                    cfg.CONF, \u0027nova\u0027, auth\u003dauth)"},{"line_number":659,"context_line":"                _NOVA_CONNECTION \u003d connection.Connection("}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_b3e9e481","line":656,"range":{"start_line":656,"start_character":61,"end_line":656,"end_character":79},"in_reply_to":"7f6b1bfe_82e1f701","updated":"2020-10-14 13:52:13.000000000","message":"for sure","commit_id":"315cc49a61395ebe2a0e41bfe7699c601e702b12"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"44cb645561d1c5ea42f666a4c4d072d4e0baba96","unresolved":false,"context_lines":[{"line_number":653,"context_line":"        project \u003d req.params.get(\u0027project_id\u0027) or req.params.get(\u0027tenant_id\u0027)"},{"line_number":654,"context_line":"        if project:"},{"line_number":655,"context_line":"            if not _NOVA_CONNECTION:"},{"line_number":656,"context_line":"                auth \u003d ks_loading.load_auth_from_conf_options(cfg.CONF, \u0027nova\u0027)"},{"line_number":657,"context_line":"                keystone_session \u003d ks_loading.load_session_from_conf_options("},{"line_number":658,"context_line":"                    cfg.CONF, \u0027nova\u0027, auth\u003dauth)"},{"line_number":659,"context_line":"                _NOVA_CONNECTION \u003d connection.Connection("}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_82e1f701","line":656,"range":{"start_line":656,"start_character":61,"end_line":656,"end_character":79},"in_reply_to":"9f560f44_c5952f3f","updated":"2020-10-14 07:19:53.000000000","message":"ok, it\u0027s fine for me but please add comment in the code to explain that as it may be confusing in the future :)","commit_id":"315cc49a61395ebe2a0e41bfe7699c601e702b12"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"70be4cb7258a960b722de087cfba437ba442b314","unresolved":false,"context_lines":[{"line_number":653,"context_line":"        project \u003d req.params.get(\u0027project_id\u0027) or req.params.get(\u0027tenant_id\u0027)"},{"line_number":654,"context_line":"        if project:"},{"line_number":655,"context_line":"            if not _NOVA_CONNECTION:"},{"line_number":656,"context_line":"                auth \u003d ks_loading.load_auth_from_conf_options(cfg.CONF, \u0027nova\u0027)"},{"line_number":657,"context_line":"                keystone_session \u003d ks_loading.load_session_from_conf_options("},{"line_number":658,"context_line":"                    cfg.CONF, \u0027nova\u0027, auth\u003dauth)"},{"line_number":659,"context_line":"                _NOVA_CONNECTION \u003d connection.Connection("}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_c5952f3f","line":656,"range":{"start_line":656,"start_character":61,"end_line":656,"end_character":79},"in_reply_to":"9f560f44_dcdc8672","updated":"2020-10-08 13:13:12.000000000","message":"ack","commit_id":"315cc49a61395ebe2a0e41bfe7699c601e702b12"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"049bb86c409bafba821760bda9eec2492238f6d4","unresolved":false,"context_lines":[{"line_number":653,"context_line":"        project \u003d req.params.get(\u0027project_id\u0027) or req.params.get(\u0027tenant_id\u0027)"},{"line_number":654,"context_line":"        if project:"},{"line_number":655,"context_line":"            if not _NOVA_CONNECTION:"},{"line_number":656,"context_line":"                auth \u003d ks_loading.load_auth_from_conf_options(cfg.CONF, \u0027nova\u0027)"},{"line_number":657,"context_line":"                keystone_session \u003d ks_loading.load_session_from_conf_options("},{"line_number":658,"context_line":"                    cfg.CONF, \u0027nova\u0027, auth\u003dauth)"},{"line_number":659,"context_line":"                _NOVA_CONNECTION \u003d connection.Connection("}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_dcdc8672","line":656,"range":{"start_line":656,"start_character":61,"end_line":656,"end_character":79},"in_reply_to":"9f560f44_e9f8aec1","updated":"2020-09-28 08:13:53.000000000","message":"I\u0027ll add this reply as a comment in the code.\n\nThis user has permissions in Keystone to list the projects. Because we have this user already configured (same as Ironic, but this one does not have those permissions), I\u0027m using it to retrieve this info.\n\nAnother solution could be to create a specific user config to connect to Keystone to query for this info, but seems unnecessary as long as we\u0027ll always need Nova user and adds more complexity in the neutron.conf file.","commit_id":"315cc49a61395ebe2a0e41bfe7699c601e702b12"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"44cb645561d1c5ea42f666a4c4d072d4e0baba96","unresolved":false,"context_lines":[{"line_number":659,"context_line":"                _NOVA_CONNECTION \u003d connection.Connection("},{"line_number":660,"context_line":"                    session\u003dkeystone_session, oslo_conf\u003dcfg.CONF,"},{"line_number":661,"context_line":"                    connect_retries\u003dcfg.CONF.http_retries)"},{"line_number":662,"context_line":"            if not _NOVA_CONNECTION.list_projects(name_or_id\u003dproject):"},{"line_number":663,"context_line":"                return webob.exc.HTTPNotFound("},{"line_number":664,"context_line":"                    comment\u003d\u0027Project %s does not exist\u0027 % project)"},{"line_number":665,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_029b2772","line":662,"range":{"start_line":662,"start_character":36,"end_line":662,"end_character":49},"updated":"2020-10-14 07:19:53.000000000","message":"just a question: why list_projects() and not \"get_project()? Is it faster?","commit_id":"315cc49a61395ebe2a0e41bfe7699c601e702b12"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f6a943f0af951a9b6496e0f074716ff39806183b","unresolved":false,"context_lines":[{"line_number":659,"context_line":"                _NOVA_CONNECTION \u003d connection.Connection("},{"line_number":660,"context_line":"                    session\u003dkeystone_session, oslo_conf\u003dcfg.CONF,"},{"line_number":661,"context_line":"                    connect_retries\u003dcfg.CONF.http_retries)"},{"line_number":662,"context_line":"            if not _NOVA_CONNECTION.list_projects(name_or_id\u003dproject):"},{"line_number":663,"context_line":"                return webob.exc.HTTPNotFound("},{"line_number":664,"context_line":"                    comment\u003d\u0027Project %s does not exist\u0027 % project)"},{"line_number":665,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_f387dcb5","line":662,"range":{"start_line":662,"start_character":36,"end_line":662,"end_character":49},"in_reply_to":"7f6b1bfe_029b2772","updated":"2020-10-14 13:52:13.000000000","message":"just because I started coding with this method, but I\u0027ll use get_project, makes sense here","commit_id":"315cc49a61395ebe2a0e41bfe7699c601e702b12"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3c73061948ff8691ac9bb5eae54c7e49879530d1","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"EXTENSION_SUPPORTED_CHECK_MAP \u003d {}"},{"line_number":43,"context_line":"_PLUGIN_AGNOSTIC_EXTENSIONS \u003d set()"},{"line_number":44,"context_line":"_NOVA_CONNECTION \u003d None"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"def register_custom_supported_check(alias, f, plugin_agnostic\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fffc6b78_a1098832","line":44,"range":{"start_line":44,"start_character":1,"end_line":44,"end_character":5},"updated":"2020-11-19 05:48:27.000000000","message":"is it a connection to keystone or no nova?","commit_id":"2df49fa879eda377c6f7489cfbe0659be29d2366"}]}
