)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8042,"name":"Jiří Stránský","email":"jistr@redhat.com","username":"jistr"},"change_message_id":"2371cdcee94ee305b50dc56d84f2d0c6e09227e4","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to allow running the Ansible playbooks with Mistral"},{"line_number":11,"context_line":"or executing directly thru Ansible."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is needed  in case we need to run"},{"line_number":14,"context_line":"exceptionally a task depending on Mistral"},{"line_number":15,"context_line":"but Mistral is broken. For example, retry"},{"line_number":16,"context_line":"an upgrade operation after having Mistral broken."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I15511b4f36260292e0ea4100b15b8e65a701b38b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"9fb8cfa7_1ddd1adf","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":49},"updated":"2019-06-14 12:50:41.000000000","message":"Mistral would be broken by UC operation and those don\u0027t depend on having Mistral running. So we can fix Mistral even without having Mistral already today.\n\nThe Mistral-less execution would impact UX and Zaqar timeouts, but shouldn\u0027t be required to unblock a situation with broken Mistral.","commit_id":"8b520bda6e532204a4abfaa2bfb7ceba7711924c"},{"author":{"_account_id":8042,"name":"Jiří Stránský","email":"jistr@redhat.com","username":"jistr"},"change_message_id":"f2324161a378c8ed39a333db35e912ae7ab4101a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to allow running the Ansible playbooks with Mistral"},{"line_number":11,"context_line":"or executing directly thru Ansible."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is needed  in case we need to run"},{"line_number":14,"context_line":"exceptionally a task depending on Mistral"},{"line_number":15,"context_line":"but Mistral is broken. For example, retry"},{"line_number":16,"context_line":"an upgrade operation after having Mistral broken."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I15511b4f36260292e0ea4100b15b8e65a701b38b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"9fb8cfa7_b8789c8f","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":49},"in_reply_to":"9fb8cfa7_1ddd1adf","updated":"2019-06-14 12:57:29.000000000","message":"Would be good to amend this part of commit msg as i think it\u0027s somewhat misleading, or at least it sounds like that to me.","commit_id":"8b520bda6e532204a4abfaa2bfb7ceba7711924c"},{"author":{"_account_id":8042,"name":"Jiří Stránský","email":"jistr@redhat.com","username":"jistr"},"change_message_id":"7c088b7f732b1a3fbb7fb0f9c14797da498a456a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to allow running the Ansible playbooks with Mistral"},{"line_number":11,"context_line":"or executing directly thru Ansible."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is needed  in case we need to run"},{"line_number":14,"context_line":"exceptionally a task depending on Mistral"},{"line_number":15,"context_line":"but Mistral is broken. For example, retry"},{"line_number":16,"context_line":"an upgrade operation after having Mistral broken."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I15511b4f36260292e0ea4100b15b8e65a701b38b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"9fb8cfa7_362b4631","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":49},"updated":"2019-06-17 08:01:00.000000000","message":"I still think this is not the right rationale to make this change, but it\u0027s just a nit, i won\u0027t block. +2","commit_id":"5249fbb2623165ef40098631fad18104579450c9"}],"tripleoclient/utils.py":[{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"e5f90ca8fa3c15f4f7bc7d15035e7f2d2a89e143","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        cmd \u003d [\"ansible-playbook-{}\".format(sys.version_info[0]),"},{"line_number":149,"context_line":"               \u0027-u\u0027, ssh_user,"},{"line_number":150,"context_line":"               \u0027-i\u0027, inventory,"},{"line_number":151,"context_line":"               \u0027-c\u0027, connection,"},{"line_number":152,"context_line":"               \u0027--private-key\u003d%s\u0027 % key if key else \u0027\u0027,"},{"line_number":153,"context_line":"               \u0027--module-path\u003d%s\u0027 % module_path if module_path else \u0027\u0027,"},{"line_number":154,"context_line":"               \u0027-l %s\u0027 % limit_hosts if limit_hosts else \u0027\u0027,"},{"line_number":155,"context_line":"               \u0027-t %s\u0027 % tags if tags else \u0027\u0027,"},{"line_number":156,"context_line":"               \u0027--skip_tags %s\u0027 % skip_tags if skip_tags else \u0027\u0027,"},{"line_number":157,"context_line":"               play"},{"line_number":158,"context_line":"               ]"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_2699f91d","line":155,"range":{"start_line":151,"start_character":0,"end_line":155,"end_character":46},"updated":"2019-02-28 14:52:54.000000000","message":"not sure this will do it. You\u0027d rather push params, something like:\ncmd \u003d [....] # only fixed params like command, ssh_user and so on\nif key:\n  cmd.extend([--private-key\u003dkey])\nif module_path:\n  cmd.extend([...]\n\nand so on. Cleaner, and we won\u0027t get some weird options with no value, especially for the \"-l\" and \"-t\".","commit_id":"d6c7386438f063c34df64a197b346cfc0f8bc9d0"},{"author":{"_account_id":20775,"name":"Carlos Camacho","email":"ccamacho@redhat.com","username":"ccamacho"},"change_message_id":"c4e44416b17173f63e3e93723fa6c50074da8deb","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        cmd \u003d [\"ansible-playbook-{}\".format(sys.version_info[0]),"},{"line_number":149,"context_line":"               \u0027-u\u0027, ssh_user,"},{"line_number":150,"context_line":"               \u0027-i\u0027, inventory,"},{"line_number":151,"context_line":"               \u0027-c\u0027, connection,"},{"line_number":152,"context_line":"               \u0027--private-key\u003d%s\u0027 % key if key else \u0027\u0027,"},{"line_number":153,"context_line":"               \u0027--module-path\u003d%s\u0027 % module_path if module_path else \u0027\u0027,"},{"line_number":154,"context_line":"               \u0027-l %s\u0027 % limit_hosts if limit_hosts else \u0027\u0027,"},{"line_number":155,"context_line":"               \u0027-t %s\u0027 % tags if tags else \u0027\u0027,"},{"line_number":156,"context_line":"               \u0027--skip_tags %s\u0027 % skip_tags if skip_tags else \u0027\u0027,"},{"line_number":157,"context_line":"               play"},{"line_number":158,"context_line":"               ]"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_4880b5f7","line":155,"range":{"start_line":151,"start_character":0,"end_line":155,"end_character":46},"in_reply_to":"9fdfeff1_2699f91d","updated":"2019-03-01 09:11:57.000000000","message":"Yeahp I agree, but also the line below\n[c for c in cmd if c] removes from the array the parameters not defined.","commit_id":"d6c7386438f063c34df64a197b346cfc0f8bc9d0"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"69fc9fbc047d3161843a47a39f27f794542f5cd5","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    \"\"\""},{"line_number":124,"context_line":"    env \u003d os.environ.copy()"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    env[\u0027ANSIBLE_LOG_PATH\u0027] \u003d \u0027%s/ansible.log\u0027 % workdir"},{"line_number":127,"context_line":"    env[\u0027ANSIBLE_HOST_KEY_CHECKING\u0027] \u003d \u0027False\u0027"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    cleanup \u003d False"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_eeb46d84","line":126,"range":{"start_line":126,"start_character":30,"end_line":126,"end_character":56},"updated":"2019-03-25 10:29:57.000000000","message":"os.path.join() instead?","commit_id":"30cd3a87891a5fac853ad0300118a4b22f1d00f0"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"899664694c12e82d6f3afd579b4efaf8b6f47783","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    \"\"\""},{"line_number":124,"context_line":"    env \u003d os.environ.copy()"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    env[\u0027ANSIBLE_LOG_PATH\u0027] \u003d os.path.join(workdir, \u0027ansible.log\u0027)"},{"line_number":127,"context_line":"    env[\u0027ANSIBLE_HOST_KEY_CHECKING\u0027] \u003d \u0027False\u0027"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    cleanup \u003d False"}],"source_content_type":"text/x-python","patch_set":13,"id":"5fc1f717_5fab9fd4","line":126,"updated":"2019-03-28 06:35:20.000000000","message":"FYI, ansible.log file rotation for individual runs. https://github.com/openstack/tripleo-common/commit/2e39c89192206e955f359dc40721c7e498f2b150","commit_id":"76f3ccf29b0e1906104170ce5c6e43460b5c5b80"},{"author":{"_account_id":26343,"name":"Jose Luis Franco","email":"jfrancoa@redhat.com","username":"jfrancoa"},"change_message_id":"76e2653927feb8746dde89fed49a07e7440e125d","unresolved":false,"context_lines":[{"line_number":142,"context_line":"         \u0027/usr/share/ansible/roles:\u0027"},{"line_number":143,"context_line":"         \u0027/etc/ansible/roles:\u0027"},{"line_number":144,"context_line":"         \u0027%s/roles\u0027 % constants.DEFAULT_VALIDATIONS_BASEDIR)"},{"line_number":145,"context_line":"    env[\u0027ANSIBLE_LOG_PATH\u0027] \u003d os.path.join(workdir, \u0027ansible.log\u0027)"},{"line_number":146,"context_line":"    env[\u0027ANSIBLE_HOST_KEY_CHECKING\u0027] \u003d \u0027False\u0027"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    cleanup \u003d False"}],"source_content_type":"text/x-python","patch_set":15,"id":"9fb8cfa7_b05bdaf3","line":145,"updated":"2019-06-14 08:23:31.000000000","message":"Will this log store all the ansible executions? or will it be rewritten with each run? maybe we should think about some better way to identify different playbook executions? or at least append the date into the log so you can identify your executions per date? This isn\u0027t a blocking thing, but imho it\u0027s something to keep in mind and try to improve in a follow up patch.","commit_id":"27fdffa347a0463eed8edda432376f245d88baa3"},{"author":{"_account_id":16515,"name":"mbu","email":"mat.bultel@gmail.com","username":"matbu"},"change_message_id":"8771c70c90d9a3db4db2c8a8167e63648640981c","unresolved":false,"context_lines":[{"line_number":142,"context_line":"         \u0027/usr/share/ansible/roles:\u0027"},{"line_number":143,"context_line":"         \u0027/etc/ansible/roles:\u0027"},{"line_number":144,"context_line":"         \u0027%s/roles\u0027 % constants.DEFAULT_VALIDATIONS_BASEDIR)"},{"line_number":145,"context_line":"    env[\u0027ANSIBLE_LOG_PATH\u0027] \u003d os.path.join(workdir, \u0027ansible.log\u0027)"},{"line_number":146,"context_line":"    env[\u0027ANSIBLE_HOST_KEY_CHECKING\u0027] \u003d \u0027False\u0027"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    cleanup \u003d False"}],"source_content_type":"text/x-python","patch_set":15,"id":"9fb8cfa7_ba1974d7","line":145,"in_reply_to":"9fb8cfa7_b05bdaf3","updated":"2019-06-14 11:39:29.000000000","message":"Yes we can add timestamp here, or even make the log file more smart (caller name + timestamp for example)","commit_id":"27fdffa347a0463eed8edda432376f245d88baa3"},{"author":{"_account_id":26343,"name":"Jose Luis Franco","email":"jfrancoa@redhat.com","username":"jfrancoa"},"change_message_id":"76e2653927feb8746dde89fed49a07e7440e125d","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    if os.path.exists(play):"},{"line_number":171,"context_line":"        cmd \u003d [\"ansible-playbook-{}\".format(sys.version_info[0]),"},{"line_number":172,"context_line":"               \u0027-u\u0027, ssh_user,"},{"line_number":173,"context_line":"               \u0027-i\u0027, inventory"},{"line_number":174,"context_line":"               ]"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9fb8cfa7_107506fa","line":172,"updated":"2019-06-14 08:23:31.000000000","message":"It would be nice to increase the verbosity of the execution if the command that calls this method has the --debug option. Or at least provide the -v option in this wrapper.","commit_id":"27fdffa347a0463eed8edda432376f245d88baa3"},{"author":{"_account_id":16515,"name":"mbu","email":"mat.bultel@gmail.com","username":"matbu"},"change_message_id":"8771c70c90d9a3db4db2c8a8167e63648640981c","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    if os.path.exists(play):"},{"line_number":171,"context_line":"        cmd \u003d [\"ansible-playbook-{}\".format(sys.version_info[0]),"},{"line_number":172,"context_line":"               \u0027-u\u0027, ssh_user,"},{"line_number":173,"context_line":"               \u0027-i\u0027, inventory"},{"line_number":174,"context_line":"               ]"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9fb8cfa7_1a41a0a9","line":172,"in_reply_to":"9fb8cfa7_107506fa","updated":"2019-06-14 11:39:29.000000000","message":"Yes good point.\nI will fix it in the next PS","commit_id":"27fdffa347a0463eed8edda432376f245d88baa3"},{"author":{"_account_id":26343,"name":"Jose Luis Franco","email":"jfrancoa@redhat.com","username":"jfrancoa"},"change_message_id":"76e2653927feb8746dde89fed49a07e7440e125d","unresolved":false,"context_lines":[{"line_number":212,"context_line":"    tmp_ansible_dir \u003d tempfile.mkdtemp(prefix\u003d\u0027tripleo-ansible-\u0027,"},{"line_number":213,"context_line":"                                       dir\u003doutput_dir)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    log.warning(_(\u0027** Downloading {0} ansible.. **\u0027).format(stack_name))"},{"line_number":216,"context_line":"    stack_config.write_config(stack_config.fetch_config(stack_name),"},{"line_number":217,"context_line":"                              stack_name,"},{"line_number":218,"context_line":"                              tmp_ansible_dir)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9fb8cfa7_900d76e9","line":215,"updated":"2019-06-14 08:23:31.000000000","message":"small nit - Downloading {0} ansible playbooks ... sounds better","commit_id":"27fdffa347a0463eed8edda432376f245d88baa3"},{"author":{"_account_id":16515,"name":"mbu","email":"mat.bultel@gmail.com","username":"matbu"},"change_message_id":"8771c70c90d9a3db4db2c8a8167e63648640981c","unresolved":false,"context_lines":[{"line_number":212,"context_line":"    tmp_ansible_dir \u003d tempfile.mkdtemp(prefix\u003d\u0027tripleo-ansible-\u0027,"},{"line_number":213,"context_line":"                                       dir\u003doutput_dir)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    log.warning(_(\u0027** Downloading {0} ansible.. **\u0027).format(stack_name))"},{"line_number":216,"context_line":"    stack_config.write_config(stack_config.fetch_config(stack_name),"},{"line_number":217,"context_line":"                              stack_name,"},{"line_number":218,"context_line":"                              tmp_ansible_dir)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9fb8cfa7_ba309457","line":215,"in_reply_to":"9fb8cfa7_900d76e9","updated":"2019-06-14 11:39:29.000000000","message":"Ack I will fix it in the next PS","commit_id":"27fdffa347a0463eed8edda432376f245d88baa3"},{"author":{"_account_id":26343,"name":"Jose Luis Franco","email":"jfrancoa@redhat.com","username":"jfrancoa"},"change_message_id":"76e2653927feb8746dde89fed49a07e7440e125d","unresolved":false,"context_lines":[{"line_number":1203,"context_line":""},{"line_number":1204,"context_line":""},{"line_number":1205,"context_line":"def run_update_ansible_action(log, clients, nodes, inventory,"},{"line_number":1206,"context_line":"                              playbook, all_playbooks, action\u003dNone,"},{"line_number":1207,"context_line":"                              ssh_user\u003d\u0027heat_admin\u0027, tags\u003d\u0027\u0027, skip_tags\u003d\u0027\u0027,"},{"line_number":1208,"context_line":"                              verbosity\u003d\u00271\u0027, extra_vars\u003dNone,"},{"line_number":1209,"context_line":"                              workdir\u003d\u0027\u0027, priv_key\u003d\u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":15,"id":"9fb8cfa7_f08f1227","line":1206,"updated":"2019-06-14 08:23:31.000000000","message":"So, if I understand it right, the \"action\" argument is the switch between using mistral or not, right? But that implies that you need to know in advance, right? I guess we should add some condition (either in this function or in the calling methods) to check if mistral is enabled and if it isn\u0027t then  avoid passing the action variable: https://github.com/openstack/python-tripleoclient/blob/master/tripleoclient/v1/overcloud_upgrade.py#L205","commit_id":"27fdffa347a0463eed8edda432376f245d88baa3"},{"author":{"_account_id":16515,"name":"mbu","email":"mat.bultel@gmail.com","username":"matbu"},"change_message_id":"8771c70c90d9a3db4db2c8a8167e63648640981c","unresolved":false,"context_lines":[{"line_number":1203,"context_line":""},{"line_number":1204,"context_line":""},{"line_number":1205,"context_line":"def run_update_ansible_action(log, clients, nodes, inventory,"},{"line_number":1206,"context_line":"                              playbook, all_playbooks, action\u003dNone,"},{"line_number":1207,"context_line":"                              ssh_user\u003d\u0027heat_admin\u0027, tags\u003d\u0027\u0027, skip_tags\u003d\u0027\u0027,"},{"line_number":1208,"context_line":"                              verbosity\u003d\u00271\u0027, extra_vars\u003dNone,"},{"line_number":1209,"context_line":"                              workdir\u003d\u0027\u0027, priv_key\u003d\u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":15,"id":"9fb8cfa7_faecccbb","line":1206,"in_reply_to":"9fb8cfa7_f08f1227","updated":"2019-06-14 11:39:29.000000000","message":"Yes, the goal is to switch mistral or not with the cli code instead.","commit_id":"27fdffa347a0463eed8edda432376f245d88baa3"},{"author":{"_account_id":8042,"name":"Jiří Stránský","email":"jistr@redhat.com","username":"jistr"},"change_message_id":"2371cdcee94ee305b50dc56d84f2d0c6e09227e4","unresolved":false,"context_lines":[{"line_number":147,"context_line":"         \u0027/etc/ansible/roles:\u0027"},{"line_number":148,"context_line":"         \u0027%s/roles\u0027 % constants.DEFAULT_VALIDATIONS_BASEDIR)"},{"line_number":149,"context_line":"    env[\u0027ANSIBLE_LOG_PATH\u0027] \u003d os.path.join(workdir, \u0027ansible.log\u0027)"},{"line_number":150,"context_line":"    env[\u0027ANSIBLE_HOST_KEY_CHECKING\u0027] \u003d \u0027False\u0027"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    cleanup \u003d False"},{"line_number":153,"context_line":"    if ansible_config is None:"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fb8cfa7_dd2c62ad","line":150,"range":{"start_line":150,"start_character":4,"end_line":150,"end_character":46},"updated":"2019-06-14 12:50:41.000000000","message":"This unconditionally disables key checking, which reduces security. I don\u0027t think we should be adding this. I think config-download has some ssh-keyscan functionality baked in but i can\u0027t find it right now...","commit_id":"8b520bda6e532204a4abfaa2bfb7ceba7711924c"},{"author":{"_account_id":8042,"name":"Jiří Stránský","email":"jistr@redhat.com","username":"jistr"},"change_message_id":"f2324161a378c8ed39a333db35e912ae7ab4101a","unresolved":false,"context_lines":[{"line_number":147,"context_line":"         \u0027/etc/ansible/roles:\u0027"},{"line_number":148,"context_line":"         \u0027%s/roles\u0027 % constants.DEFAULT_VALIDATIONS_BASEDIR)"},{"line_number":149,"context_line":"    env[\u0027ANSIBLE_LOG_PATH\u0027] \u003d os.path.join(workdir, \u0027ansible.log\u0027)"},{"line_number":150,"context_line":"    env[\u0027ANSIBLE_HOST_KEY_CHECKING\u0027] \u003d \u0027False\u0027"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    cleanup \u003d False"},{"line_number":153,"context_line":"    if ansible_config is None:"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fb8cfa7_38434c44","line":150,"range":{"start_line":150,"start_character":4,"end_line":150,"end_character":46},"in_reply_to":"9fb8cfa7_dd2c62ad","updated":"2019-06-14 12:57:29.000000000","message":"So i did more searching and what i say above is wrong it seems. E.g. \n\nhttps://github.com/openstack/tripleo-common/blob/11ac44b8ba21e563c009c791c0b83f51ba2fd52c/tripleo_common/actions/ansible.py#L92\n\nSo i won\u0027t block here.","commit_id":"8b520bda6e532204a4abfaa2bfb7ceba7711924c"},{"author":{"_account_id":8042,"name":"Jiří Stránský","email":"jistr@redhat.com","username":"jistr"},"change_message_id":"0ad5db517064953e3fbdd14aa4d9efe1d41bc82e","unresolved":false,"context_lines":[{"line_number":1209,"context_line":"    return env_files, localenv"},{"line_number":1210,"context_line":""},{"line_number":1211,"context_line":""},{"line_number":1212,"context_line":"def run_update_ansible_action(log, clients, nodes, inventory,"},{"line_number":1213,"context_line":"                              playbook, all_playbooks, action\u003dNone,"},{"line_number":1214,"context_line":"                              ssh_user\u003d\u0027heat_admin\u0027, tags\u003d\u0027\u0027, skip_tags\u003d\u0027\u0027,"},{"line_number":1215,"context_line":"                              verbosity\u003d\u00271\u0027, extra_vars\u003dNone,"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fb8cfa7_936edbfd","line":1212,"updated":"2019-06-14 14:10:29.000000000","message":"BTW do we have a matching CLI patch for this yet? It would be a bit easier to review if there was a visible CLI side too, but not a blocker.","commit_id":"8b520bda6e532204a4abfaa2bfb7ceba7711924c"},{"author":{"_account_id":8042,"name":"Jiří Stránský","email":"jistr@redhat.com","username":"jistr"},"change_message_id":"e678461b96e12ba9be07ebe2f091259936356dfa","unresolved":false,"context_lines":[{"line_number":1211,"context_line":""},{"line_number":1212,"context_line":"def run_update_ansible_action(log, clients, nodes, inventory,"},{"line_number":1213,"context_line":"                              playbook, all_playbooks, action\u003dNone,"},{"line_number":1214,"context_line":"                              ssh_user\u003d\u0027heat_admin\u0027, tags\u003d\u0027\u0027, skip_tags\u003d\u0027\u0027,"},{"line_number":1215,"context_line":"                              verbosity\u003d\u00271\u0027, extra_vars\u003dNone,"},{"line_number":1216,"context_line":"                              workdir\u003d\u0027\u0027, priv_key\u003d\u0027\u0027):"},{"line_number":1217,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"9fb8cfa7_33ddafdf","line":1214,"range":{"start_line":1214,"start_character":39,"end_line":1214,"end_character":51},"updated":"2019-06-14 14:09:00.000000000","message":"Should we just remove this default?  It\u0027s incorrect for the Mistral use case, and deployed-server envs would likely not have this user either. Maybe we should require passing it in instead of trying \"maybe heat-admin will work\"?","commit_id":"8b520bda6e532204a4abfaa2bfb7ceba7711924c"},{"author":{"_account_id":26343,"name":"Jose Luis Franco","email":"jfrancoa@redhat.com","username":"jfrancoa"},"change_message_id":"9162161ecf53a55cf92c923f4538c2305eeb92d1","unresolved":false,"context_lines":[{"line_number":178,"context_line":"               ]"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        if 0 \u003c verbosity \u003c 6:"},{"line_number":181,"context_line":"            cmd.extend([\u0027-\u0027 + (\u0027v\u0027 * verbosity)])"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        if key is not None:"},{"line_number":184,"context_line":"            cmd.extend([\u0027--private-key\u003d%s\u0027 % key])"}],"source_content_type":"text/x-python","patch_set":18,"id":"9fb8cfa7_d8d68228","line":181,"updated":"2019-06-18 08:23:23.000000000","message":"Elegant ;-)","commit_id":"5249fbb2623165ef40098631fad18104579450c9"}]}
