)]}'
{"tools/export_sops":[{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"fd6692531950c3032db1869d7fde12ac9d41a948","unresolved":true,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"export SOPS_IMPORT_PGP\u003d\"$(curl -fsSL https://raw.githubusercontent.com/mozilla/sops/master/pgp/sops_functional_tests_key.asc)\""},{"line_number":16,"context_line":"export SOPS_PGP_FP\u003d\"FBC7B9E2A4F9289AC0C1D4843D16CEE4A27381B4\""}],"source_content_type":"application/octet-stream","patch_set":27,"id":"899bfb61_035919a7","line":16,"range":{"start_line":15,"start_character":0,"end_line":16,"end_character":61},"updated":"2021-06-29 17:04:38.000000000","message":"This isn\u0027t going to work - the variables will only be local to the sub-shell running this script, and the parent shell will be unaffected.","commit_id":"3f23f278a57066ad6970b5b2468db4a032e8b5e4"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"9d967eb08b0c5f4dc411e1073a44a8f0379c2746","unresolved":true,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"export SOPS_IMPORT_PGP\u003d\"$(curl -fsSL https://raw.githubusercontent.com/mozilla/sops/master/pgp/sops_functional_tests_key.asc)\""},{"line_number":16,"context_line":"export SOPS_PGP_FP\u003d\"FBC7B9E2A4F9289AC0C1D4843D16CEE4A27381B4\""}],"source_content_type":"application/octet-stream","patch_set":27,"id":"79e65776_66e3e019","line":16,"range":{"start_line":15,"start_character":0,"end_line":16,"end_character":61},"in_reply_to":"899bfb61_035919a7","updated":"2021-06-29 17:42:05.000000000","message":"This script is intended to use via \"source\" command, in this case these variables become available in current shell.\n\nFrom help of source:\n\nExecute commands from a file in the current shell.\n\n    Read and execute commands from FILENAME in the current shell.  The\n    entries in $PATH are used to find the directory containing FILENAME.\n    If any ARGUMENTS are supplied, they become the positional parameters\n    when FILENAME is executed.\n\nThis is how it works in practice:\n\nroot@ubuntu-airship:~# echo $SOPS_PGP_FP\n\nroot@ubuntu-airship:~# source export_sops\nroot@ubuntu-airship:~# echo $SOPS_PGP_FP\nFBC7B9E2A4F9289AC0C1D4843D16CEE4A27381B4\n\nSo, it allows to conveniently populate sops variables in the current shell.","commit_id":"3f23f278a57066ad6970b5b2468db4a032e8b5e4"}],"tools/gate/20_run_gate_runner.sh":[{"author":{"_account_id":32135,"name":"srinivasa muly","email":"msrinivasareddy@gmail.com","username":"muly"},"change_message_id":"9896437f6724bc7c7f13c2be917db5f16a9137c0","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"shift $((OPTIND-1))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"if ((verbose)); then"},{"line_number":55,"context_line":"  run_bash"},{"line_number":56,"context_line":"else"},{"line_number":57,"context_line":"  run_ansible"}],"source_content_type":"text/x-sh","patch_set":3,"id":"9f560f44_7a045515","line":54,"updated":"2020-09-28 14:46:08.000000000","message":"i think the variable name `verbose` is not appropriate as it is used to control running the \"bash\" vs \"ansible\" scripts. I recommend changing it. Please correct me if my understanding is incorrect.","commit_id":"354476a76c24fc6fbb95fec94d9b8fe9d507ea7d"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"bc085dd2daa80b84915d11d912122443d4d9f5b2","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"shift $((OPTIND-1))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"if ((verbose)); then"},{"line_number":55,"context_line":"  run_bash"},{"line_number":56,"context_line":"else"},{"line_number":57,"context_line":"  run_ansible"}],"source_content_type":"text/x-sh","patch_set":3,"id":"9f560f44_9bfe1002","line":54,"in_reply_to":"9f560f44_7a045515","updated":"2020-10-07 02:51:30.000000000","message":"changed to \"--run-bash\", however I think \"-v\" would fit too.","commit_id":"354476a76c24fc6fbb95fec94d9b8fe9d507ea7d"},{"author":{"_account_id":28690,"name":"Sirajudeen","email":"sirajudeen.yasin@gmail.com","username":"siraj.yasin"},"change_message_id":"a6bcf348f4b0847978e6d757572557a8d3f25a48","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\t  $GATE_RUNNER_PATH -e @\"$PLAYBOOK_CONFIG\""},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"run_bash () {"},{"line_number":40,"context_line":"  for script in ./tools/deployment/*.sh ; do"},{"line_number":41,"context_line":"   echo -e \"\\033[0;32m[ *** Run script $script *** ] \\033[0m \""},{"line_number":42,"context_line":"   $script"}],"source_content_type":"text/x-sh","patch_set":4,"id":"9f560f44_16cbf249","line":39,"updated":"2020-10-07 12:45:57.000000000","message":"This looks good for deploying master. But if we have to deploy with our local changes, we might need to export env var \"AIRSHIP_CONFIG_MANIFEST_DIRECTORY\" and skip document pull. Even if we are not skipping document pull, setting the manifest directory env variable will be important.","commit_id":"61f3900d0f900f9c575860f3017049de3f6cb576"},{"author":{"_account_id":28690,"name":"Sirajudeen","email":"sirajudeen.yasin@gmail.com","username":"siraj.yasin"},"change_message_id":"9ccf21c1afe04caad0cb7ffa8490f8db9d39078d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"run_bash () {"},{"line_number":40,"context_line":"  for script in ./tools/deployment/*.sh ; do"},{"line_number":41,"context_line":"   echo -e \"\\033[0;32m[ *** Run script $script *** ] \\033[0m \""},{"line_number":42,"context_line":"   $script"},{"line_number":43,"context_line":"  done"},{"line_number":44,"context_line":"}"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-sh","patch_set":4,"id":"9f560f44_b69e8666","line":42,"updated":"2020-10-07 12:39:54.000000000","message":"How is the order of execution preserved ?  Is it just by file naming ?","commit_id":"61f3900d0f900f9c575860f3017049de3f6cb576"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"fd48561767c9471fa5571cdfd1df15662ea88856","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9f560f44_44cbef48","updated":"2020-10-07 19:27:44.000000000","message":"Do we need this script for anything? AFAIK, it\u0027s not gated, and we don\u0027t intend to use it again.","commit_id":"6705d9a735a78377aa78e2dabb801c56f870736c"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"d9916a79e4edb102fe03c9108bb00fd788bd838a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9f560f44_1a678c26","in_reply_to":"9f560f44_44cbef48","updated":"2020-10-07 21:47:54.000000000","message":"I use it every day for dev labs.","commit_id":"6705d9a735a78377aa78e2dabb801c56f870736c"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"bd61698224fdae5d2d0cad8c5bd28917d5fba92f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9f560f44_643c3330","in_reply_to":"9f560f44_44cbef48","updated":"2020-10-07 19:30:02.000000000","message":"Just for developer use to prepare dev lab. it\u0027s not used on zuul site, but tries to emulate gate script runner job locally.","commit_id":"6705d9a735a78377aa78e2dabb801c56f870736c"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"351f555331f2e158d151d585c4d5947b42c236fa","unresolved":false,"context_lines":[{"line_number":27,"context_line":"eval set -- \"$options\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"run_ansible () {"},{"line_number":30,"context_line":"  TMP_DIR\u003d${TMP_DIR:-\"$(dirname $(mktemp -u))\"}"},{"line_number":31,"context_line":"  ANSIBLE_HOSTS\u003d${ANSIBLE_HOSTS:-\"${TMP_DIR}/ansible_hosts\"}"},{"line_number":32,"context_line":"  PLAYBOOK_CONFIG\u003d${PLAYBOOK_CONFIG:-\"${TMP_DIR}/config.yaml\"}"},{"line_number":33,"context_line":"  export AIRSHIPCTL_WS\u003d${AIRSHIPCTL_WS:-$PWD}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  sudo --preserve-env\u003dAIRSHIPCTL_WS ansible-playbook -i \"$ANSIBLE_HOSTS\" \\"},{"line_number":36,"context_line":"\t  $GATE_RUNNER_PATH -e @\"$PLAYBOOK_CONFIG\""}],"source_content_type":"text/x-sh","patch_set":6,"id":"9f560f44_ecf3f36b","line":33,"range":{"start_line":30,"start_character":2,"end_line":33,"end_character":45},"updated":"2020-10-09 01:19:24.000000000","message":"If you touch this maybe it\u0027s a good time to define AIRSHIP_CONFIG_MANIFEST_DIRECTORY properly for dev lab? You know, that if it\u0027s not defined in your current session then you will deploy the master branch from gerrit.","commit_id":"6705d9a735a78377aa78e2dabb801c56f870736c"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"e895776811e1c6b01ca9974c8641f53c590491db","unresolved":false,"context_lines":[{"line_number":27,"context_line":"eval set -- \"$options\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"run_ansible () {"},{"line_number":30,"context_line":"  TMP_DIR\u003d${TMP_DIR:-\"$(dirname $(mktemp -u))\"}"},{"line_number":31,"context_line":"  ANSIBLE_HOSTS\u003d${ANSIBLE_HOSTS:-\"${TMP_DIR}/ansible_hosts\"}"},{"line_number":32,"context_line":"  PLAYBOOK_CONFIG\u003d${PLAYBOOK_CONFIG:-\"${TMP_DIR}/config.yaml\"}"},{"line_number":33,"context_line":"  export AIRSHIPCTL_WS\u003d${AIRSHIPCTL_WS:-$PWD}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  sudo --preserve-env\u003dAIRSHIPCTL_WS ansible-playbook -i \"$ANSIBLE_HOSTS\" \\"},{"line_number":36,"context_line":"\t  $GATE_RUNNER_PATH -e @\"$PLAYBOOK_CONFIG\""}],"source_content_type":"text/x-sh","patch_set":6,"id":"9f560f44_8577a53b","line":33,"range":{"start_line":30,"start_character":2,"end_line":33,"end_character":45},"in_reply_to":"9f560f44_ecf3f36b","updated":"2020-10-09 09:48:05.000000000","message":"There is nothing to do with AIRSHIP_CONFIG_MANIFEST_DIRECTORY, it\u0027s defined properly and does not require any additional tuning until you want to skip document pull step. The variable that matters in this situation is AIRSHIP_CONFIG_PRIMARY_REPO_URL. If it\u0027s not explicitly defined then yes, document pull will retrieve master branch gerrit. But otherwise, document pull will use current local working directory (pwd) as git URL source to download the repo and no checkout will be performed, so you\u0027ll get properly downloaded airshipctl repo into AIRSHIP_CONFIG_MANIFEST_DIRECTORY with the latest committed state. That\u0027s why if you have some local not committed changes in manifest folder - there is just need to commit them (at least locally) to allow go-git inside of airshipctl to clone them. I added AIRSHIP_CONFIG_PRIMARY_REPO_URL to --preserve-env flag, that should help to solve your case.","commit_id":"6705d9a735a78377aa78e2dabb801c56f870736c"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"351f555331f2e158d151d585c4d5947b42c236fa","unresolved":false,"context_lines":[{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"run_bash () {"},{"line_number":40,"context_line":"  for script in ./tools/deployment/*.sh ; do"},{"line_number":41,"context_line":"   echo -e \"\\033[0;32m[ *** Run script $script *** ] \\033[0m \""},{"line_number":42,"context_line":"   $script"},{"line_number":43,"context_line":"  done"},{"line_number":44,"context_line":"}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"if git ls-files -m | grep -q \"manifests/\"; then"}],"source_content_type":"text/x-sh","patch_set":6,"id":"9f560f44_6ce8837a","line":43,"range":{"start_line":40,"start_character":2,"end_line":43,"end_character":6},"updated":"2020-10-09 01:19:24.000000000","message":"Let\u0027s make it simple. Just create a separate script for running bash scripts. There is no real value in CLI options for such simple scripts like this one.","commit_id":"6705d9a735a78377aa78e2dabb801c56f870736c"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"e895776811e1c6b01ca9974c8641f53c590491db","unresolved":false,"context_lines":[{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"run_bash () {"},{"line_number":40,"context_line":"  for script in ./tools/deployment/*.sh ; do"},{"line_number":41,"context_line":"   echo -e \"\\033[0;32m[ *** Run script $script *** ] \\033[0m \""},{"line_number":42,"context_line":"   $script"},{"line_number":43,"context_line":"  done"},{"line_number":44,"context_line":"}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"if git ls-files -m | grep -q \"manifests/\"; then"}],"source_content_type":"text/x-sh","patch_set":6,"id":"9f560f44_e5702144","line":43,"range":{"start_line":40,"start_character":2,"end_line":43,"end_character":6},"in_reply_to":"9f560f44_6ce8837a","updated":"2020-10-09 09:48:05.000000000","message":"Done","commit_id":"6705d9a735a78377aa78e2dabb801c56f870736c"},{"author":{"_account_id":22477,"name":"Matt McEuen","email":"matt.mceuen@att.com","username":"mattmceuen"},"change_message_id":"3a031d0d765587484e692da357a57d532f788510","unresolved":true,"context_lines":[{"line_number":25,"context_line":"export AIRSHIPCTL_WS\u003d${AIRSHIPCTL_WS:-$PWD}"},{"line_number":26,"context_line":"export AIRSHIP_CONFIG_PHASE_REPO_URL\u003d${AIRSHIP_CONFIG_PHASE_REPO_URL:-$PWD}"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"if git ls-files -m -o --exclude-standard | grep -q \"manifests/\"; then"},{"line_number":29,"context_line":"   echo \"Working directory contains not staged changes in document model. Please commit them before proceed\""},{"line_number":30,"context_line":"   exit 1"},{"line_number":31,"context_line":"fi"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"sudo -E --preserve-env\u003dAIRSHIPCTL_WS ANSIBLE_STDOUT_CALLBACK\u003ddebug ansible-playbook -i \"$ANSIBLE_HOSTS\" \\"},{"line_number":34,"context_line":"\tplaybooks/airshipctl-gate-runner.yaml \\"}],"source_content_type":"text/x-sh","patch_set":20,"id":"67555a57_2a384ef5","line":31,"range":{"start_line":28,"start_character":0,"end_line":31,"end_character":2},"updated":"2021-06-28 18:10:16.000000000","message":"Why are we requiring this?","commit_id":"dcd694c98ffe2a6e5ede0fa6346590b573444037"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"c335c6e9efebd41692c06fbe902a7d878f70501b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"export AIRSHIPCTL_WS\u003d${AIRSHIPCTL_WS:-$PWD}"},{"line_number":26,"context_line":"export AIRSHIP_CONFIG_PHASE_REPO_URL\u003d${AIRSHIP_CONFIG_PHASE_REPO_URL:-$PWD}"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"if git ls-files -m -o --exclude-standard | grep -q \"manifests/\"; then"},{"line_number":29,"context_line":"   echo \"Working directory contains not staged changes in document model. Please commit them before proceed\""},{"line_number":30,"context_line":"   exit 1"},{"line_number":31,"context_line":"fi"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"sudo -E --preserve-env\u003dAIRSHIPCTL_WS ANSIBLE_STDOUT_CALLBACK\u003ddebug ansible-playbook -i \"$ANSIBLE_HOSTS\" \\"},{"line_number":34,"context_line":"\tplaybooks/airshipctl-gate-runner.yaml \\"}],"source_content_type":"text/x-sh","patch_set":20,"id":"8dd8d3d0_76691061","line":31,"range":{"start_line":28,"start_character":0,"end_line":31,"end_character":2},"in_reply_to":"67555a57_2a384ef5","updated":"2021-06-29 05:16:56.000000000","message":"when we do document pull step, we use current directory as git source for cloning, so repo won\u0027t be cloned if it has unstaged changes. it never happens on CI, however could happen on dev\u0027s machine. it\u0027s just a convenient wrapper for git error, but it can be removed.","commit_id":"dcd694c98ffe2a6e5ede0fa6346590b573444037"}],"tools/gate/21_bash_run_gate_runner.sh":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"56e4f3d1b121f0688a19a232b4ce9713318b1c38","unresolved":false,"context_lines":[{"line_number":20,"context_line":"set -xe"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"export AIRSHIPCTL_WS\u003d${AIRSHIPCTL_WS:-$PWD}"},{"line_number":23,"context_line":"export AIRSHIP_CONFIG_PRIMARY_REPO_URL\u003d${AIRSHIP_CONFIG_PRIMARY_REPO_URL:-$PWD}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"GATE_RUNNER_YAML_PATH\u003dplaybooks/airshipctl-gate-runner.yaml"},{"line_number":26,"context_line":"OUTPUT_DIR\u003d\"\""}],"source_content_type":"text/x-sh","patch_set":10,"id":"3f65232a_c3ee4b87","line":23,"updated":"2020-10-22 13:44:03.000000000","message":"Please use AIRSHIP_CONFIG_PHASE_REPO_URL since we changed the terminology from `primary` to `phase`","commit_id":"a9436d23191a80614a7310f11a48df506c214bbb"},{"author":{"_account_id":22477,"name":"Matt McEuen","email":"matt.mceuen@att.com","username":"mattmceuen"},"change_message_id":"3a031d0d765587484e692da357a57d532f788510","unresolved":true,"context_lines":[{"line_number":77,"context_line":"  esac"},{"line_number":78,"context_line":"done"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"if git ls-files -m -o --exclude-standard | grep -q \"manifests/\"; then"},{"line_number":81,"context_line":"   echo \"Working directory contains not staged changes in document model. Please commit them before proceed\""},{"line_number":82,"context_line":"   exit 1"},{"line_number":83,"context_line":"fi"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"source tools/export_sops"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-sh","patch_set":20,"id":"b9c2d720_8c670773","line":83,"range":{"start_line":80,"start_character":0,"end_line":83,"end_character":2},"updated":"2021-06-28 18:10:16.000000000","message":"ditto","commit_id":"dcd694c98ffe2a6e5ede0fa6346590b573444037"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"c335c6e9efebd41692c06fbe902a7d878f70501b","unresolved":false,"context_lines":[{"line_number":77,"context_line":"  esac"},{"line_number":78,"context_line":"done"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"if git ls-files -m -o --exclude-standard | grep -q \"manifests/\"; then"},{"line_number":81,"context_line":"   echo \"Working directory contains not staged changes in document model. Please commit them before proceed\""},{"line_number":82,"context_line":"   exit 1"},{"line_number":83,"context_line":"fi"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"source tools/export_sops"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-sh","patch_set":20,"id":"6f7e2b89_0795701d","line":83,"range":{"start_line":80,"start_character":0,"end_line":83,"end_character":2},"in_reply_to":"b9c2d720_8c670773","updated":"2021-06-29 05:16:56.000000000","message":"removed","commit_id":"dcd694c98ffe2a6e5ede0fa6346590b573444037"}]}
