)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ad5c0558e9dead9264181d1358b14e946617402c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"We have made os-xenapi repository to deal with XenServer Dom0"},{"line_number":10,"context_line":"specific functions, this patch is to change neutron to use"},{"line_number":11,"context_line":"os-xenapi when XenServer is hypervisor"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Depends-On: I8a31c81d9475387fe4ed7030b70b26098e588771"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia958c366189386b1b5abbadbb4d74950aaa23bb2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1a1ced50_933abf97","line":12,"updated":"2017-03-22 16:02:34.000000000","message":"Also mention that the RPM building scripts are in os-xenapi","commit_id":"ffd2a35243e419aa495ccf8dda5bcd7d8111511a"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"d96bd506ebd51c847d75403aa9e6c75cd4e7245b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"We have made os-xenapi repository to deal with XenServer Dom0"},{"line_number":10,"context_line":"specific functions, this patch is to change neutron to use"},{"line_number":11,"context_line":"os-xenapi when XenServer is hypervisor"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Depends-On: I8a31c81d9475387fe4ed7030b70b26098e588771"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia958c366189386b1b5abbadbb4d74950aaa23bb2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1a1ced50_a2ccb489","line":12,"in_reply_to":"1a1ced50_933abf97","updated":"2017-03-23 01:14:11.000000000","message":"Sure","commit_id":"ffd2a35243e419aa495ccf8dda5bcd7d8111511a"}],"bin/neutron-rootwrap-xen-dom0":[{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"1f6e099e2bfeacc9649d7a40f3b54d3b92b73f1e","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"def run_command(url, username, password, user_args, cmd_input):"},{"line_number":113,"context_line":"    try:"},{"line_number":114,"context_line":"        session \u003d XenAPI.Session(url)"},{"line_number":115,"context_line":"        session.login_with_password(username, password)"},{"line_number":116,"context_line":"        try:"},{"line_number":117,"context_line":"            host \u003d session.xenapi.session.get_this_host(session.handle)"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"5a74a57a_1b51280f","line":114,"range":{"start_line":114,"start_character":8,"end_line":114,"end_character":37},"updated":"2016-11-30 05:53:24.000000000","message":"We need to change this, not use XenAPI.Session directly, use the wrapper we provide os_xenapi.client.session.XenAPISession(), We can change this later when changes in nova get merged","commit_id":"919519632d57bdca50bfb46709a42e36b2ada00c"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ad5c0558e9dead9264181d1358b14e946617402c","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        sys.exit(RC_XENAPI_ERROR)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"def main():"},{"line_number":136,"context_line":"    exec_name, config_file, user_args \u003d parse_args()"},{"line_number":137,"context_line":"    config \u003d load_configuration(exec_name, config_file)"},{"line_number":138,"context_line":"    filter_command(exec_name, config[\u0027filters_path\u0027], user_args, config[\u0027exec_dirs\u0027])"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"1a1ced50_f3113305","line":135,"updated":"2017-03-22 16:02:34.000000000","message":"I\u0027d like to deprecate this in Pike for removal in Queens; we\u0027d need a release note and probably a log message in here that the non-daemon rootwrap is deprecated.\nWe\u0027re not going to test this moving forward - daemon mode is the future.","commit_id":"ffd2a35243e419aa495ccf8dda5bcd7d8111511a"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"d96bd506ebd51c847d75403aa9e6c75cd4e7245b","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        sys.exit(RC_XENAPI_ERROR)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"def main():"},{"line_number":136,"context_line":"    exec_name, config_file, user_args \u003d parse_args()"},{"line_number":137,"context_line":"    config \u003d load_configuration(exec_name, config_file)"},{"line_number":138,"context_line":"    filter_command(exec_name, config[\u0027filters_path\u0027], user_args, config[\u0027exec_dirs\u0027])"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"1a1ced50_62ad5c9a","line":135,"in_reply_to":"1a1ced50_f3113305","updated":"2017-03-23 01:14:11.000000000","message":"I will add log message here, for release node, I can create one and mark this is deprecated","commit_id":"ffd2a35243e419aa495ccf8dda5bcd7d8111511a"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8c78ee919e4aeb81c0dc16a7ec49553254405323","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"def main():"},{"line_number":136,"context_line":"    # Deprecated: This script is deprecated and will be deleted in next release"},{"line_number":137,"context_line":"    exec_name, config_file, user_args \u003d parse_args()"},{"line_number":138,"context_line":"    config \u003d load_configuration(exec_name, config_file)"},{"line_number":139,"context_line":"    filter_command(exec_name, config[\u0027filters_path\u0027], user_args, config[\u0027exec_dirs\u0027])"}],"source_content_type":"application/octet-stream","patch_set":10,"id":"1a1ced50_ae757bcb","line":136,"updated":"2017-03-23 04:15:09.000000000","message":"then please add a warning that is logged on stderr","commit_id":"6ff49b23c66b4286b591da1c684deff9522b5506"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"e5578edff69d02712e06890e7e5f7b0638188899","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"def main():"},{"line_number":136,"context_line":"    # Deprecated: This script is deprecated and will be deleted in next release"},{"line_number":137,"context_line":"    exec_name, config_file, user_args \u003d parse_args()"},{"line_number":138,"context_line":"    config \u003d load_configuration(exec_name, config_file)"},{"line_number":139,"context_line":"    filter_command(exec_name, config[\u0027filters_path\u0027], user_args, config[\u0027exec_dirs\u0027])"}],"source_content_type":"application/octet-stream","patch_set":10,"id":"1a1ced50_f9f65b5b","line":136,"in_reply_to":"1a1ced50_ae757bcb","updated":"2017-03-23 05:30:44.000000000","message":"I see, but adding the warning in stderr means adding this for each execution. I will have a test on my local development env and then if no other affect, I can add warning in stderr","commit_id":"6ff49b23c66b4286b591da1c684deff9522b5506"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"10e175aad0291f3ac4d1c9bc5ac4f501e97102b0","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            captured_stdout \u003d result_dict.get(\u0027out\u0027)"},{"line_number":124,"context_line":"            captured_stderr \u003d result_dict.get(\u0027err\u0027)"},{"line_number":125,"context_line":"            sys.stdout.write(captured_stdout)"},{"line_number":126,"context_line":"            sys.stderr.write(captured_stderr)"},{"line_number":127,"context_line":"            sys.exit(returncode)"},{"line_number":128,"context_line":"        finally:"},{"line_number":129,"context_line":"            session.xenapi.session.logout()"}],"source_content_type":"application/octet-stream","patch_set":12,"id":"ffe62b97_b0406f09","line":126,"updated":"2017-03-24 10:30:28.000000000","message":"If we want to add warning log, seems we can only add here","commit_id":"02a00d9a885c79e5dd438a5c05986ea130008d45"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"2a61b65d984aa60bd5764c247435e8816cf42fa4","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            captured_stdout \u003d result_dict.get(\u0027out\u0027)"},{"line_number":124,"context_line":"            captured_stderr \u003d result_dict.get(\u0027err\u0027)"},{"line_number":125,"context_line":"            sys.stdout.write(captured_stdout)"},{"line_number":126,"context_line":"            sys.stderr.write(captured_stderr)"},{"line_number":127,"context_line":"            sys.exit(returncode)"},{"line_number":128,"context_line":"        finally:"},{"line_number":129,"context_line":"            session.xenapi.session.logout()"}],"source_content_type":"application/octet-stream","patch_set":12,"id":"ffe62b97_70e66719","line":126,"in_reply_to":"ffe62b97_b0406f09","updated":"2017-03-24 10:34:12.000000000","message":"Sounds good to me.","commit_id":"02a00d9a885c79e5dd438a5c05986ea130008d45"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"f3578d8058d893e6c6014a4c141a657a2fcb4f11","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"def main():"},{"line_number":136,"context_line":"    # Deprecated: This script is deprecated and will be deleted in next release"},{"line_number":137,"context_line":"    exec_name, config_file, user_args \u003d parse_args()"},{"line_number":138,"context_line":"    config \u003d load_configuration(exec_name, config_file)"},{"line_number":139,"context_line":"    filter_command(exec_name, config[\u0027filters_path\u0027], user_args, config[\u0027exec_dirs\u0027])"}],"source_content_type":"application/octet-stream","patch_set":12,"id":"ffe62b97_0d2b8494","line":136,"updated":"2017-03-24 10:23:08.000000000","message":"Ihar requested a warning to be logged - is there a reason that we can\u0027t do that?","commit_id":"02a00d9a885c79e5dd438a5c05986ea130008d45"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"1119bfca055b6d1195773c302eaa8ef500832bd6","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"def main():"},{"line_number":136,"context_line":"    # Deprecated: This script is deprecated and will be deleted in next release"},{"line_number":137,"context_line":"    exec_name, config_file, user_args \u003d parse_args()"},{"line_number":138,"context_line":"    config \u003d load_configuration(exec_name, config_file)"},{"line_number":139,"context_line":"    filter_command(exec_name, config[\u0027filters_path\u0027], user_args, config[\u0027exec_dirs\u0027])"}],"source_content_type":"application/octet-stream","patch_set":12,"id":"ffe62b97_30e69f46","line":136,"in_reply_to":"ffe62b97_0d2b8494","updated":"2017-03-24 10:29:32.000000000","message":"If we add warning log, the warning log is in stderr, and it will added in stderr in each run_command() call","commit_id":"02a00d9a885c79e5dd438a5c05986ea130008d45"}],"neutron/agent/linux/xenapi_root_helper.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ad5c0558e9dead9264181d1358b14e946617402c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"determine whether a command is safe to execute."},{"line_number":23,"context_line":"\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from os_xenapi.client import XenAPI"},{"line_number":26,"context_line":"from oslo_config import cfg"},{"line_number":27,"context_line":"from oslo_log import log as logging"},{"line_number":28,"context_line":"from oslo_rootwrap import cmd as oslo_rootwrap_cmd"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a1ced50_531a0718","line":25,"updated":"2017-03-22 16:02:34.000000000","message":"We should be *using* xenapi.client, not importing XenAPI.\nIf we use the client, then a whole bunch of the initialisation code below can be cleaned up.","commit_id":"ffd2a35243e419aa495ccf8dda5bcd7d8111511a"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"d96bd506ebd51c847d75403aa9e6c75cd4e7245b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"determine whether a command is safe to execute."},{"line_number":23,"context_line":"\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from os_xenapi.client import XenAPI"},{"line_number":26,"context_line":"from oslo_config import cfg"},{"line_number":27,"context_line":"from oslo_log import log as logging"},{"line_number":28,"context_line":"from oslo_rootwrap import cmd as oslo_rootwrap_cmd"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a1ced50_c29e1062","line":25,"in_reply_to":"1a1ced50_531a0718","updated":"2017-03-23 01:14:11.000000000","message":"I see, will modify this","commit_id":"ffd2a35243e419aa495ccf8dda5bcd7d8111511a"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8c78ee919e4aeb81c0dc16a7ec49553254405323","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _create_session(self, url, username, password):"},{"line_number":58,"context_line":"        _session \u003d session.XenAPISession(url, username, password,"},{"line_number":59,"context_line":"                                        originator\u003d\"neutron\")"},{"line_number":60,"context_line":"        _session.login_with_password(username, password)"},{"line_number":61,"context_line":"        return _session"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a1ced50_2e50ab31","line":59,"updated":"2017-03-23 04:15:09.000000000","message":"wrapping here is not ideal, move one char to the right","commit_id":"6ff49b23c66b4286b591da1c684deff9522b5506"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"e5578edff69d02712e06890e7e5f7b0638188899","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _create_session(self, url, username, password):"},{"line_number":58,"context_line":"        _session \u003d session.XenAPISession(url, username, password,"},{"line_number":59,"context_line":"                                        originator\u003d\"neutron\")"},{"line_number":60,"context_line":"        _session.login_with_password(username, password)"},{"line_number":61,"context_line":"        return _session"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a1ced50_f48ae262","line":59,"in_reply_to":"1a1ced50_2e50ab31","updated":"2017-03-23 05:30:44.000000000","message":"Done","commit_id":"6ff49b23c66b4286b591da1c684deff9522b5506"}],"releasenotes/notes/deprecate-neutron-rootwrap-xen-dom0-124ee3647beecc17.yaml":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8c78ee919e4aeb81c0dc16a7ec49553254405323","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - With XenServer as hypervisor, we have supported rootwrap daemon mode,"},{"line_number":4,"context_line":"    so we will deprecate neutron-rootwrap-xen-dom0 script and plan to "},{"line_number":5,"context_line":"    delete it in next release."},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1a1ced50_8e619f07","line":4,"range":{"start_line":4,"start_character":69,"end_line":4,"end_character":70},"updated":"2017-03-23 04:15:09.000000000","message":"remove","commit_id":"6ff49b23c66b4286b591da1c684deff9522b5506"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"e5578edff69d02712e06890e7e5f7b0638188899","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - With XenServer as hypervisor, we have supported rootwrap daemon mode,"},{"line_number":4,"context_line":"    so we will deprecate neutron-rootwrap-xen-dom0 script and plan to "},{"line_number":5,"context_line":"    delete it in next release."},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1a1ced50_1998971b","line":4,"range":{"start_line":4,"start_character":69,"end_line":4,"end_character":70},"in_reply_to":"1a1ced50_8e619f07","updated":"2017-03-23 05:30:44.000000000","message":"Done","commit_id":"6ff49b23c66b4286b591da1c684deff9522b5506"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8c78ee919e4aeb81c0dc16a7ec49553254405323","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - With XenServer as hypervisor, we have supported rootwrap daemon mode,"},{"line_number":4,"context_line":"    so we will deprecate neutron-rootwrap-xen-dom0 script and plan to "},{"line_number":5,"context_line":"    delete it in next release."},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1a1ced50_ae5c9b4b","line":6,"range":{"start_line":6,"start_character":0,"end_line":6,"end_character":0},"updated":"2017-03-23 04:15:09.000000000","message":"remove lines","commit_id":"6ff49b23c66b4286b591da1c684deff9522b5506"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"e5578edff69d02712e06890e7e5f7b0638188899","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - With XenServer as hypervisor, we have supported rootwrap daemon mode,"},{"line_number":4,"context_line":"    so we will deprecate neutron-rootwrap-xen-dom0 script and plan to "},{"line_number":5,"context_line":"    delete it in next release."},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1a1ced50_399b9319","line":6,"range":{"start_line":6,"start_character":0,"end_line":6,"end_character":0},"in_reply_to":"1a1ced50_ae5c9b4b","updated":"2017-03-23 05:30:44.000000000","message":"Done","commit_id":"6ff49b23c66b4286b591da1c684deff9522b5506"}]}
