)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"ac47f8314c3ad4bafd9461487e0c63e38a43abea","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In neutron there is CLI tool to do sanity checks. Now, as we"},{"line_number":10,"context_line":"have \"neutron-status upgrade check\" tool, we can unify it with"},{"line_number":11,"context_line":"this \"neutron-sanity-check\" tool and use it in same was, like:"},{"line_number":12,"context_line":"\"neutron-status sanity check\"."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch adds only base \"framework\" for sanity checks."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3fa7e38b_65af6f7c","line":11,"range":{"start_line":11,"start_character":52,"end_line":11,"end_character":55},"updated":"2020-01-17 10:30:23.000000000","message":"nit: way","commit_id":"dfa15b4e83187488d6f57d97e5654c04e5115847"}],"doc/source/cli/neutron-status.rst":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ef7d0410ead7f230ce6bf8a6ff45c3b67a4abf4a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"       - At least one check encountered an issue and requires further"},{"line_number":79,"context_line":"         investigation. This is considered as a warning."},{"line_number":80,"context_line":"     * - 2"},{"line_number":81,"context_line":"       - There was an sanity check failure that needs to be fixed."},{"line_number":82,"context_line":"         This should be considered as error."},{"line_number":83,"context_line":"     * - 255"},{"line_number":84,"context_line":"       - An unexpected error occurred."}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fb8cfa7_7babb91c","line":81,"range":{"start_line":81,"start_character":19,"end_line":81,"end_character":21},"updated":"2019-06-04 16:12:06.000000000","message":"s/a","commit_id":"26d9ccadf1a422c63f47225102ebc66539f0c861"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ef7d0410ead7f230ce6bf8a6ff45c3b67a4abf4a","unresolved":false,"context_lines":[{"line_number":79,"context_line":"         investigation. This is considered as a warning."},{"line_number":80,"context_line":"     * - 2"},{"line_number":81,"context_line":"       - There was an sanity check failure that needs to be fixed."},{"line_number":82,"context_line":"         This should be considered as error."},{"line_number":83,"context_line":"     * - 255"},{"line_number":84,"context_line":"       - An unexpected error occurred."}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fb8cfa7_9ba8ed1f","line":82,"range":{"start_line":82,"start_character":35,"end_line":82,"end_character":37},"updated":"2019-06-04 16:12:06.000000000","message":"s/as an\n\nor just \u0027an\u0027","commit_id":"26d9ccadf1a422c63f47225102ebc66539f0c861"}],"neutron/cmd/status.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"dfeb4e7c5cf609291b901852ec9d661d642ad32c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"def load_checks(entrypoints):"},{"line_number":32,"context_line":"    checks \u003d []"},{"line_number":33,"context_line":"    ns_plugin \u003d runtime.NamespacedPlugins(entrypoints)"},{"line_number":34,"context_line":"    # TODO(slaweq): stop using private attribute of runtime.NamespacedPlugins"},{"line_number":35,"context_line":"    # class when it will provide some better way to access extensions"},{"line_number":36,"context_line":"    for module_name, module in ns_plugin._extensions.items():"},{"line_number":37,"context_line":"        try:"},{"line_number":38,"context_line":"            project_checks_class \u003d module.entry_point.load()"},{"line_number":39,"context_line":"            project_checks \u003d project_checks_class().get_checks()"},{"line_number":40,"context_line":"            if project_checks:"},{"line_number":41,"context_line":"                checks +\u003d project_checks"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_e3c96325","line":38,"range":{"start_line":34,"start_character":0,"end_line":38,"end_character":60},"updated":"2019-02-19 16:08:30.000000000","message":"This can be done getting the list of plugins and then the class:\n\n for module_name in ns_plugin.loaded_plugin_names:\n    try:\n        project_checks_class \u003d ns_plugin.get_plugin_class(module_name)","commit_id":"229d56a142d1b02ee74817d85273b1d91e84326a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4a26fe1a72aa67ec6750be5c698203ee88ea0ea5","unresolved":false,"context_lines":[{"line_number":31,"context_line":"def load_checks(entrypoints):"},{"line_number":32,"context_line":"    checks \u003d []"},{"line_number":33,"context_line":"    ns_plugin \u003d runtime.NamespacedPlugins(entrypoints)"},{"line_number":34,"context_line":"    # TODO(slaweq): stop using private attribute of runtime.NamespacedPlugins"},{"line_number":35,"context_line":"    # class when it will provide some better way to access extensions"},{"line_number":36,"context_line":"    for module_name, module in ns_plugin._extensions.items():"},{"line_number":37,"context_line":"        try:"},{"line_number":38,"context_line":"            project_checks_class \u003d module.entry_point.load()"},{"line_number":39,"context_line":"            project_checks \u003d project_checks_class().get_checks()"},{"line_number":40,"context_line":"            if project_checks:"},{"line_number":41,"context_line":"                checks +\u003d project_checks"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_394a26ac","line":38,"range":{"start_line":34,"start_character":0,"end_line":38,"end_character":60},"in_reply_to":"9fdfeff1_5e86f0bc","updated":"2019-02-20 11:22:15.000000000","message":"My bad, when I was testing the patch in my dev system I lost  track of the new code.\n\nBTW, this is something that can be done in a follow-on patch.","commit_id":"229d56a142d1b02ee74817d85273b1d91e84326a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"15064982019a9c3cd99f5faf16ab582782dcc4b1","unresolved":false,"context_lines":[{"line_number":31,"context_line":"def load_checks(entrypoints):"},{"line_number":32,"context_line":"    checks \u003d []"},{"line_number":33,"context_line":"    ns_plugin \u003d runtime.NamespacedPlugins(entrypoints)"},{"line_number":34,"context_line":"    # TODO(slaweq): stop using private attribute of runtime.NamespacedPlugins"},{"line_number":35,"context_line":"    # class when it will provide some better way to access extensions"},{"line_number":36,"context_line":"    for module_name, module in ns_plugin._extensions.items():"},{"line_number":37,"context_line":"        try:"},{"line_number":38,"context_line":"            project_checks_class \u003d module.entry_point.load()"},{"line_number":39,"context_line":"            project_checks \u003d project_checks_class().get_checks()"},{"line_number":40,"context_line":"            if project_checks:"},{"line_number":41,"context_line":"                checks +\u003d project_checks"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_5e86f0bc","line":38,"range":{"start_line":34,"start_character":0,"end_line":38,"end_character":60},"in_reply_to":"9fdfeff1_e3c96325","updated":"2019-02-20 10:35:55.000000000","message":"Yes, but I think it\u0027s not related to this patch :)","commit_id":"229d56a142d1b02ee74817d85273b1d91e84326a"}]}
