)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"c8685f05301ea41ddc51433a9c9f43af7cb7b3aa","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"For this reason, we\u0027ll use the following alternate approach on Windows:"},{"line_number":21,"context_line":"- we\u0027re adding another cli argument called \u0027backend_name\u0027, which allows"},{"line_number":22,"context_line":"requesting a certain backend."},{"line_number":23,"context_line":"- we\u0027re adding a Windows process launcher that will just use"},{"line_number":24,"context_line":"subprocess.Popen for each backend, using the above mentioned argument"},{"line_number":25,"context_line":"to request a specific backend."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f91af0f_14cf6656","line":22,"updated":"2018-01-08 21:43:29.000000000","message":"Can you explain what this means?  We already have the host for each cinder backend which is like foo@bar#pool  What is backend_name for?","commit_id":"d52d83009b227e5edf663f6e5dd2044015faba02"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"e0bbb369789e29ae05f199d0eb4110ef491576dd","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"For this reason, we\u0027ll use the following alternate approach on Windows:"},{"line_number":21,"context_line":"- we\u0027re adding another cli argument called \u0027backend_name\u0027, which allows"},{"line_number":22,"context_line":"requesting a certain backend."},{"line_number":23,"context_line":"- we\u0027re adding a Windows process launcher that will just use"},{"line_number":24,"context_line":"subprocess.Popen for each backend, using the above mentioned argument"},{"line_number":25,"context_line":"to request a specific backend."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f91af0f_f460c203","line":22,"in_reply_to":"9f91af0f_14cf6656","updated":"2018-01-08 22:02:45.000000000","message":"For each enabled backend, we have to spawn a child process. We cannot use fork (as oslo.service normally does) on Windows, so we\u0027ll need to call something like:\n\ncinder-volume.exe --backend_name\u003d\u003cbackend_name\u003e [args]\n\nIt\u0027s the easiest way of telling the child process what to run.","commit_id":"d52d83009b227e5edf663f6e5dd2044015faba02"}],"cinder/cmd/volume.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"5d455827d661f04205ac28df3bf11d93d4bc554a","unresolved":false,"context_lines":[{"line_number":60,"context_line":"host_opt \u003d cfg.StrOpt(\u0027backend_host\u0027, help\u003d\u0027Backend override of host value.\u0027)"},{"line_number":61,"context_line":"CONF.register_cli_opt(host_opt)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"backend_name_opt \u003d cfg.StrOpt("},{"line_number":64,"context_line":"    \u0027backend_name\u0027,"},{"line_number":65,"context_line":"    help\u003d\u0027The name of the backend to be managed by this process. It must be \u0027"},{"line_number":66,"context_line":"         \u0027one of the backends defined using the \"enabled_backends\" option. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf8cb3f7_2722dc53","line":63,"updated":"2017-12-24 16:45:33.000000000","message":"Can we add a a \u0027NOTE:  For Windows use only.\u0027 or something like that to make it clear that this should only be used there.","commit_id":"480b2626c958137165e946310d816f3b8268a41b"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"00131ca34a3cab16c9b75bb4f9f7dccfdd48fbfa","unresolved":false,"context_lines":[{"line_number":60,"context_line":"host_opt \u003d cfg.StrOpt(\u0027backend_host\u0027, help\u003d\u0027Backend override of host value.\u0027)"},{"line_number":61,"context_line":"CONF.register_cli_opt(host_opt)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"backend_name_opt \u003d cfg.StrOpt("},{"line_number":64,"context_line":"    \u0027backend_name\u0027,"},{"line_number":65,"context_line":"    help\u003d\u0027The name of the backend to be managed by this process. It must be \u0027"},{"line_number":66,"context_line":"         \u0027one of the backends defined using the \"enabled_backends\" option. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_6f0206b7","line":63,"in_reply_to":"bf8cb3f7_2722dc53","updated":"2018-01-03 10:09:11.000000000","message":"Makes sense.","commit_id":"480b2626c958137165e946310d816f3b8268a41b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"5d455827d661f04205ac28df3bf11d93d4bc554a","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    if CONF.backend_name and CONF.backend_name not in CONF.enabled_backends:"},{"line_number":126,"context_line":"        msg \u003d (\u0027The explicitly passed backend name \"%s\" is not among \u0027"},{"line_number":127,"context_line":"               \u0027the enabled backends: \"%s\".\u0027)"},{"line_number":128,"context_line":"        raise exception.Invalid(msg % (CONF.backend_name,"},{"line_number":129,"context_line":"                                       CONF.enabled_backends))"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    # We\u0027ll avoid spawning a subprocess if a single backend is requested."}],"source_content_type":"text/x-python","patch_set":2,"id":"bf8cb3f7_c7d69028","line":128,"updated":"2017-12-24 16:45:33.000000000","message":"Should we use \u0027InvalidInput\u0027 here instead of just Invalid?","commit_id":"480b2626c958137165e946310d816f3b8268a41b"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"00131ca34a3cab16c9b75bb4f9f7dccfdd48fbfa","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    if CONF.backend_name and CONF.backend_name not in CONF.enabled_backends:"},{"line_number":126,"context_line":"        msg \u003d (\u0027The explicitly passed backend name \"%s\" is not among \u0027"},{"line_number":127,"context_line":"               \u0027the enabled backends: \"%s\".\u0027)"},{"line_number":128,"context_line":"        raise exception.Invalid(msg % (CONF.backend_name,"},{"line_number":129,"context_line":"                                       CONF.enabled_backends))"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    # We\u0027ll avoid spawning a subprocess if a single backend is requested."}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_4f3382ac","line":128,"in_reply_to":"bf8cb3f7_c7d69028","updated":"2018-01-03 10:09:11.000000000","message":"Done","commit_id":"480b2626c958137165e946310d816f3b8268a41b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4d3748ac04951cf0e9fa056343e52abb40586671","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                                        coordination\u003dTrue,"},{"line_number":101,"context_line":"                                        cluster\u003dcluster)"},{"line_number":102,"context_line":"    except Exception:"},{"line_number":103,"context_line":"        msg \u003d _(\u0027Volume service %s failed to start.\u0027) % host"},{"line_number":104,"context_line":"        LOG.exception(msg)"},{"line_number":105,"context_line":"    else:"},{"line_number":106,"context_line":"        # Dispose of the whole DB connection pool here before"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_31c0a57b","line":103,"range":{"start_line":103,"start_character":14,"end_line":103,"end_character":16},"updated":"2018-01-05 19:28:52.000000000","message":"Log messages should not be translated. Get rid of _() and move this directly into the LOG.exception call with host as an argument so the logger takes care of string formatting.","commit_id":"7e1b94ee2b369ad11c5f84c4fde9a59251149186"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"e72eceabb7eb3b6a567d991122d4d9524b97c5ac","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                                        coordination\u003dTrue,"},{"line_number":101,"context_line":"                                        cluster\u003dcluster)"},{"line_number":102,"context_line":"    except Exception:"},{"line_number":103,"context_line":"        msg \u003d _(\u0027Volume service %s failed to start.\u0027) % host"},{"line_number":104,"context_line":"        LOG.exception(msg)"},{"line_number":105,"context_line":"    else:"},{"line_number":106,"context_line":"        # Dispose of the whole DB connection pool here before"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_9de740e5","line":103,"range":{"start_line":103,"start_character":14,"end_line":103,"end_character":16},"in_reply_to":"9f91af0f_31c0a57b","updated":"2018-01-05 22:53:03.000000000","message":"I\u0027ve moved some code around, those messages included, but I guess it\u0027s a good time to update them. Thanks for mentioning it.","commit_id":"7e1b94ee2b369ad11c5f84c4fde9a59251149186"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4d3748ac04951cf0e9fa056343e52abb40586671","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"def _ensure_service_started():"},{"line_number":115,"context_line":"    if not service_started:"},{"line_number":116,"context_line":"        msg \u003d _(\u0027No volume service(s) started successfully, terminating.\u0027)"},{"line_number":117,"context_line":"        LOG.error(msg)"},{"line_number":118,"context_line":"        sys.exit(1)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_51bbe90c","line":116,"range":{"start_line":116,"start_character":14,"end_line":116,"end_character":16},"updated":"2018-01-05 19:28:52.000000000","message":"Same.","commit_id":"7e1b94ee2b369ad11c5f84c4fde9a59251149186"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"e72eceabb7eb3b6a567d991122d4d9524b97c5ac","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"def _ensure_service_started():"},{"line_number":115,"context_line":"    if not service_started:"},{"line_number":116,"context_line":"        msg \u003d _(\u0027No volume service(s) started successfully, terminating.\u0027)"},{"line_number":117,"context_line":"        LOG.error(msg)"},{"line_number":118,"context_line":"        sys.exit(1)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_3dc1542f","line":116,"range":{"start_line":116,"start_character":14,"end_line":116,"end_character":16},"in_reply_to":"9f91af0f_51bbe90c","updated":"2018-01-05 22:53:03.000000000","message":"Done","commit_id":"7e1b94ee2b369ad11c5f84c4fde9a59251149186"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4d3748ac04951cf0e9fa056343e52abb40586671","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"def _launch_services_win32():"},{"line_number":127,"context_line":"    if CONF.backend_name and CONF.backend_name not in CONF.enabled_backends:"},{"line_number":128,"context_line":"        msg \u003d (\u0027The explicitly passed backend name \"%s\" is not among \u0027"},{"line_number":129,"context_line":"               \u0027the enabled backends: \"%s\".\u0027)"},{"line_number":130,"context_line":"        raise exception.InvalidInput(reason\u003dmsg % (CONF.backend_name,"},{"line_number":131,"context_line":"                                                   CONF.enabled_backends))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_b141150e","line":128,"range":{"start_line":128,"start_character":14,"end_line":128,"end_character":15},"updated":"2018-01-05 19:28:52.000000000","message":"Since this one is being used for the exception message, this one should have the _() translation applied.","commit_id":"7e1b94ee2b369ad11c5f84c4fde9a59251149186"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"e72eceabb7eb3b6a567d991122d4d9524b97c5ac","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"def _launch_services_win32():"},{"line_number":127,"context_line":"    if CONF.backend_name and CONF.backend_name not in CONF.enabled_backends:"},{"line_number":128,"context_line":"        msg \u003d (\u0027The explicitly passed backend name \"%s\" is not among \u0027"},{"line_number":129,"context_line":"               \u0027the enabled backends: \"%s\".\u0027)"},{"line_number":130,"context_line":"        raise exception.InvalidInput(reason\u003dmsg % (CONF.backend_name,"},{"line_number":131,"context_line":"                                                   CONF.enabled_backends))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_dd2b88e8","line":128,"range":{"start_line":128,"start_character":14,"end_line":128,"end_character":15},"in_reply_to":"9f91af0f_b141150e","updated":"2018-01-05 22:53:03.000000000","message":"Done","commit_id":"7e1b94ee2b369ad11c5f84c4fde9a59251149186"}]}
