)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"443305265c48911f4db4d6d5b2eafd1d6100b725","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove RPC layer from API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This removes the RPC layer from the API, and instead calls the"},{"line_number":10,"context_line":"plugin functions directly."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: blueprint rpc-refactor"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"8924c068_a0f97141","line":9,"updated":"2022-06-10 16:15:34.000000000","message":"I think this could include a bit more information about why this change does this, the reasoning for it. As I understand, the main reason for this is to simplify code paths that are only concerned with DB access. The API can still communicate to the manager w/ RPC if need be (is this needed at all anymore?)","commit_id":"718baab60bf564d3aa7901e961db7f9a437a52ae"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"443305265c48911f4db4d6d5b2eafd1d6100b725","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"450469ea_61a50a86","updated":"2022-06-10 16:15:34.000000000","message":"I am a bit surprised that no other changes to tests were needed :O\n\nThis is a nice small change. I think a future cleanup refactor would be to tease apart the manager responsibilities vs. the API. Probably the calling of plugins should move to a \"PluginManager\" instead of \"ManagerService\". The Manager and the API can then both use the PluginManager to perform w/e DB operations or plugin resource modifications. There will still be a bit of tension where the Manager and API components will be using different areas of the plugin\u0027s interface. I think that\u0027s something we can also tease apart over time though.","commit_id":"718baab60bf564d3aa7901e961db7f9a437a52ae"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"363388e9afa1bfc56a64f7bbe958c07bb223cc45","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"8a25f307_6ded1b16","updated":"2022-08-25 09:02:07.000000000","message":"I raised my concerns in the related spec: https://review.opendev.org/c/openstack/blazar-specs/+/809485","commit_id":"718baab60bf564d3aa7901e961db7f9a437a52ae"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"8bbd400a50255711252735f8d0acb75d3048338c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"95cbc5c9_816c730e","updated":"2022-07-07 14:04:35.000000000","message":"Overall I am concerned that we are moving complex functions to run inside the API process. Maybe API should run only read operations? (get/list)","commit_id":"718baab60bf564d3aa7901e961db7f9a437a52ae"}],"blazar/api/v1/floatingips/service.py":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"8bbd400a50255711252735f8d0acb75d3048338c","unresolved":true,"context_lines":[{"line_number":36,"context_line":"        :type data: dict"},{"line_number":37,"context_line":"        \"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        return self.plugin.create_floatingip(data)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @policy.authorize(\u0027floatingips\u0027, \u0027get\u0027)"},{"line_number":42,"context_line":"    def get_floatingip(self, floatingip_id):"}],"source_content_type":"text/x-python","patch_set":12,"id":"e76db29f_c030497d","line":39,"range":{"start_line":39,"start_character":8,"end_line":39,"end_character":50},"updated":"2022-07-07 14:04:35.000000000","message":"I am not sure we want to run everything from the API process. In particular create calls often do more than just accessing the database. For example this function calls Neutron to validate inputs.\n\nThis is related to Jason\u0027s comment on the commit message.","commit_id":"718baab60bf564d3aa7901e961db7f9a437a52ae"}],"blazar/api/v1/oshosts/service.py":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"8bbd400a50255711252735f8d0acb75d3048338c","unresolved":true,"context_lines":[{"line_number":36,"context_line":"        :type data: dict"},{"line_number":37,"context_line":"        \"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        return self.plugin.create_computehost(data)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @policy.authorize(\u0027oshosts\u0027, \u0027get\u0027)"},{"line_number":42,"context_line":"    def get_computehost(self, host_id):"}],"source_content_type":"text/x-python","patch_set":12,"id":"79073068_7e97414f","line":39,"range":{"start_line":39,"start_character":15,"end_line":39,"end_character":45},"updated":"2022-07-07 14:04:35.000000000","message":"Similar comment to create_floatingip for this one.","commit_id":"718baab60bf564d3aa7901e961db7f9a437a52ae"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"8bbd400a50255711252735f8d0acb75d3048338c","unresolved":true,"context_lines":[{"line_number":65,"context_line":"        :param host_id: ID of the computehost in Blazar DB."},{"line_number":66,"context_line":"        :type host_id: str"},{"line_number":67,"context_line":"        \"\"\""},{"line_number":68,"context_line":"        self.plugin.delete_computehost(host_id)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @policy.authorize(\u0027oshosts\u0027, \u0027get_allocations\u0027)"},{"line_number":71,"context_line":"    def list_allocations(self, query):"}],"source_content_type":"text/x-python","patch_set":12,"id":"1b99ecd8_2e9bfed3","line":68,"range":{"start_line":68,"start_character":8,"end_line":68,"end_character":38},"updated":"2022-07-07 14:04:35.000000000","message":"Similar issue here.","commit_id":"718baab60bf564d3aa7901e961db7f9a437a52ae"}],"blazar/api/wsgi_app.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"443305265c48911f4db4d6d5b2eafd1d6100b725","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    CONF([], project\u003d\u0027blazar\u0027, prog\u003d\u0027blazar-api\u0027,"},{"line_number":45,"context_line":"         default_config_files\u003dconfig_files)"},{"line_number":46,"context_line":"    service_utils.prepare_service()"},{"line_number":47,"context_line":"    notifier.init()"},{"line_number":48,"context_line":"    if not CONF.enable_v1_api:"},{"line_number":49,"context_line":"        app \u003d v2_app.make_app()"},{"line_number":50,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":12,"id":"dd361db7_70889179","line":47,"updated":"2022-06-10 16:15:34.000000000","message":"What is the reason for this? It may be good to include a note","commit_id":"718baab60bf564d3aa7901e961db7f9a437a52ae"}],"blazar/cmd/api.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"443305265c48911f4db4d6d5b2eafd1d6100b725","unresolved":true,"context_lines":[{"line_number":51,"context_line":"def main():"},{"line_number":52,"context_line":"    \"\"\"Entry point to start Blazar API wsgi server.\"\"\""},{"line_number":53,"context_line":"    cfg.CONF(sys.argv[1:], project\u003d\u0027blazar\u0027, prog\u003d\u0027blazar-api\u0027)"},{"line_number":54,"context_line":"    notifier.init()"},{"line_number":55,"context_line":"    service_utils.prepare_service(sys.argv)"},{"line_number":56,"context_line":"    if not CONF.enable_v1_api:"},{"line_number":57,"context_line":"        app \u003d v2_app.make_app()"}],"source_content_type":"text/x-python","patch_set":12,"id":"aceee363_ab2fb449","line":54,"updated":"2022-06-10 16:15:34.000000000","message":"Same comment","commit_id":"718baab60bf564d3aa7901e961db7f9a437a52ae"}],"blazar/manager/oshosts/rpcapi.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"443305265c48911f4db4d6d5b2eafd1d6100b725","unresolved":true,"context_lines":[{"line_number":56,"context_line":"        return self.call(\u0027physical:host:delete_computehost\u0027,"},{"line_number":57,"context_line":"                         host_id\u003dhost_id)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def list_allocations(self, query, detail\u003dFalse):"},{"line_number":60,"context_line":"        \"\"\"List all allocations on all computehosts.\"\"\""},{"line_number":61,"context_line":"        return self.call(\u0027physical:host:list_allocations\u0027, query\u003dquery,"},{"line_number":62,"context_line":"                         detail\u003ddetail)"}],"source_content_type":"text/x-python","patch_set":12,"id":"08215577_ab4f7b89","line":59,"updated":"2022-06-10 16:15:34.000000000","message":"This seems like part of a different changeset","commit_id":"718baab60bf564d3aa7901e961db7f9a437a52ae"}],"blazar/status.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"443305265c48911f4db4d6d5b2eafd1d6100b725","unresolved":true,"context_lines":[{"line_number":200,"context_line":"            @wraps(func)"},{"line_number":201,"context_line":"            def wrapper(*args, **kwargs):"},{"line_number":202,"context_line":"                # Update a lease status"},{"line_number":203,"context_line":"                if \"lease_id\" in kwargs:"},{"line_number":204,"context_line":"                    lease_id \u003d kwargs[\"lease_id\"]"},{"line_number":205,"context_line":"                else:"},{"line_number":206,"context_line":"                    lease_id \u003d args[1]"}],"source_content_type":"text/x-python","patch_set":12,"id":"d2bb4e1c_c946b962","line":203,"updated":"2022-06-10 16:15:34.000000000","message":"This also seems like an unrelated change","commit_id":"718baab60bf564d3aa7901e961db7f9a437a52ae"}],"blazar/tests/manager/test_service.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"443305265c48911f4db4d6d5b2eafd1d6100b725","unresolved":true,"context_lines":[{"line_number":1640,"context_line":"            \u0027111\u0027, {\u0027status\u0027: \u0027error\u0027})"},{"line_number":1641,"context_line":"        self.event_update.assert_called_once_with(\u00271\u0027, {\u0027status\u0027: \u0027ERROR\u0027})"},{"line_number":1642,"context_line":""},{"line_number":1643,"context_line":"    def test_getattr_with_correct_plugin_and_method(self):"},{"line_number":1644,"context_line":"        self.fake_list_computehosts \u003d ("},{"line_number":1645,"context_line":"            self.patch(self.fake_phys_plugin, \u0027list_computehosts\u0027))"},{"line_number":1646,"context_line":"        self.fake_list_computehosts.return_value \u003d \u0027foo\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"1ff82556_efdbd109","side":"PARENT","line":1643,"updated":"2022-06-10 16:15:34.000000000","message":"Hmm, why are these tests no longer relevant? They seem proper to me","commit_id":"e9c19e2206839d4f73bb94aab579fbec596df8f4"}]}
