)]}'
{"playbooks/overcloud-backup.yaml":[{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":14,"context_line":"      file:"},{"line_number":15,"context_line":"        path: /var/tmp/overcloud-backup/"},{"line_number":16,"context_line":"        state: directory"},{"line_number":17,"context_line":"          "},{"line_number":18,"context_line":"- name: Initializing database backups on the bootstrap Controller node"},{"line_number":19,"context_line":"  hosts: Controller[0]"},{"line_number":20,"context_line":"  user: heat-admin"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_22012705","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":10},"updated":"2018-07-17 10:42:52.000000000","message":"nit: whitespace","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":20868,"name":"Jill Rouleau","email":"jill.rouleau@bespokess.com","username":"jillr"},"change_message_id":"1835f8e9700094886bec7205288ecd2a5560599e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"      file:"},{"line_number":15,"context_line":"        path: /var/tmp/overcloud-backup/"},{"line_number":16,"context_line":"        state: directory"},{"line_number":17,"context_line":"          "},{"line_number":18,"context_line":"- name: Initializing database backups on the bootstrap Controller node"},{"line_number":19,"context_line":"  hosts: Controller[0]"},{"line_number":20,"context_line":"  user: heat-admin"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_524f4769","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":10},"in_reply_to":"5f7c97a3_22012705","updated":"2018-07-17 18:30:58.000000000","message":"I\u0027d rather see these directories as user-supplied variables.  There\u0027s an assumption here that /var on the undercloud has enough space to store multiple filesystem backups, without validating that.  I\u0027d expect it to be more likely that operators would want to backup to a network storage location, and keep several backups (not delete the parent dir before run).","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":17126,"name":"Dan Macpherson","email":"dmacpher@redhat.com","username":"dmacpher"},"change_message_id":"fdf2d751c13e1677bd8c4b70f7fdfd6aacf7b196","unresolved":false,"context_lines":[{"line_number":14,"context_line":"      file:"},{"line_number":15,"context_line":"        path: /var/tmp/overcloud-backup/"},{"line_number":16,"context_line":"        state: directory"},{"line_number":17,"context_line":"          "},{"line_number":18,"context_line":"- name: Initializing database backups on the bootstrap Controller node"},{"line_number":19,"context_line":"  hosts: Controller[0]"},{"line_number":20,"context_line":"  user: heat-admin"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_a39682ee","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":10},"in_reply_to":"5f7c97a3_524f4769","updated":"2018-07-18 06:49:28.000000000","message":"Yeah, I\u0027ll to refine this to not only allow a user-defined directory but a user-defined backup server too.","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":20868,"name":"Jill Rouleau","email":"jill.rouleau@bespokess.com","username":"jillr"},"change_message_id":"1835f8e9700094886bec7205288ecd2a5560599e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"        state: directory"},{"line_number":17,"context_line":"          "},{"line_number":18,"context_line":"- name: Initializing database backups on the bootstrap Controller node"},{"line_number":19,"context_line":"  hosts: Controller[0]"},{"line_number":20,"context_line":"  user: heat-admin"},{"line_number":21,"context_line":"  become: true"},{"line_number":22,"context_line":"  tasks:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_328c0b2d","line":19,"updated":"2018-07-17 18:30:58.000000000","message":"I\u0027m not sure we can make this assumption about the inventory, there might be ControllerDeployedServer instead of Controller, for example.","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":20868,"name":"Jill Rouleau","email":"jill.rouleau@bespokess.com","username":"jillr"},"change_message_id":"aa9cde977b659d326ecea2688469fe05d4486286","unresolved":false,"context_lines":[{"line_number":16,"context_line":"        state: directory"},{"line_number":17,"context_line":"          "},{"line_number":18,"context_line":"- name: Initializing database backups on the bootstrap Controller node"},{"line_number":19,"context_line":"  hosts: Controller[0]"},{"line_number":20,"context_line":"  user: heat-admin"},{"line_number":21,"context_line":"  become: true"},{"line_number":22,"context_line":"  tasks:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_0a0f302f","line":19,"in_reply_to":"5f7c97a3_03009634","updated":"2018-07-18 22:48:10.000000000","message":"Yeah naming depends on the role.  So for example my lab only has:\n(undercloud) [stack@undercloud ~]$ grep Controller inventory.yaml |uniq\nControllerDeployedServer:\n    tripleo_role_name: ControllerDeployedServer}\n    ControllerDeployedServer: {}\n\n\nInstead we could use user-provided vars, ala https://github.com/jillr/tripleo-ansible/blob/master/cleanup-docker.yml#L2.\n(tripleo-ansible will be our project/playbook repo, it has not been accepted upstream yet though - https://review.openstack.org/#/c/583415/)","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":20172,"name":"Michele Baldessari","email":"michele@acksyn.org","username":"michele"},"change_message_id":"f3c88f00e58dcbca61b5ad813abd8d50565f0bcf","unresolved":false,"context_lines":[{"line_number":16,"context_line":"        state: directory"},{"line_number":17,"context_line":"          "},{"line_number":18,"context_line":"- name: Initializing database backups on the bootstrap Controller node"},{"line_number":19,"context_line":"  hosts: Controller[0]"},{"line_number":20,"context_line":"  user: heat-admin"},{"line_number":21,"context_line":"  become: true"},{"line_number":22,"context_line":"  tasks:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_d99ec1f8","line":19,"in_reply_to":"5f7c97a3_0a0f302f","updated":"2018-08-02 06:24:16.000000000","message":"Thanks for tackling this task, Dan, this is nice!\n\nIndeed you don\u0027t want to hardcode any roles because that will break composable roles (think when you split galera into its own role, like in roles/Database.yaml, the Controller role will not have the DB)\n\nYou should be able to use the \u0027role_data_service_names\u0027 to figure out which role has which services and then you can pick the first node of that role.","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":17126,"name":"Dan Macpherson","email":"dmacpher@redhat.com","username":"dmacpher"},"change_message_id":"fdf2d751c13e1677bd8c4b70f7fdfd6aacf7b196","unresolved":false,"context_lines":[{"line_number":16,"context_line":"        state: directory"},{"line_number":17,"context_line":"          "},{"line_number":18,"context_line":"- name: Initializing database backups on the bootstrap Controller node"},{"line_number":19,"context_line":"  hosts: Controller[0]"},{"line_number":20,"context_line":"  user: heat-admin"},{"line_number":21,"context_line":"  become: true"},{"line_number":22,"context_line":"  tasks:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_03009634","line":19,"in_reply_to":"5f7c97a3_328c0b2d","updated":"2018-07-18 06:49:28.000000000","message":"So I was going off the host groups in tripleo-ansible-inventory. Do the host group names change in tripleo-ansible-inventory if using the Deployed Server method?\n\nIf so, how do you normally accommodate this?","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    - name: Dump the OpenStack databases"},{"line_number":50,"context_line":"      script: |"},{"line_number":51,"context_line":"        /bin/mysqldump -uroot -p{{ mysql_password.stdout_lines[0] }} --single-transaction --databases {{ mysql_databases.stdout_lines | join(\u0027 \u0027) }}"},{"line_number":52,"context_line":"      register: mysql_dump"},{"line_number":53,"context_line":"    - name: Copy the databases to the temporary directory"},{"line_number":54,"context_line":"      copy:"},{"line_number":55,"context_line":"        dest: /var/tmp/overcloud-backup-database/mysql/openstack_databases.sql"},{"line_number":56,"context_line":"        content: \"{{ mysql_dump.stdout }}\""},{"line_number":57,"context_line":"    - name: Get a list of mysql grants databases"},{"line_number":58,"context_line":"      script: |"},{"line_number":59,"context_line":"        /bin/mysql -uroot -p{{ mysql_password.stdout_lines[0] }} -e \"SELECT CONCAT(\u0027\\\"SHOW GRANTS FOR \u0027\u0027\u0027,user,\u0027\u0027\u0027@\u0027\u0027\u0027,host,\u0027\u0027\u0027;\\\"\u0027) FROM mysql.user where (length(user) \u003e 0 and user NOT LIKE \u0027root\u0027)\" -s -N | xargs -n1 mysql -uroot -p{{ mysql_password.stdout_lines[0] }} -s -N -e | sed \u0027s/$/;/\u0027"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_22860767","line":56,"range":{"start_line":52,"start_character":0,"end_line":56,"end_character":42},"updated":"2018-07-17 10:42:52.000000000","message":"IMO it would be safer to save the dump data directly in bash command and avoid keeping a potentially big chunk of data in memory.","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":17126,"name":"Dan Macpherson","email":"dmacpher@redhat.com","username":"dmacpher"},"change_message_id":"fdf2d751c13e1677bd8c4b70f7fdfd6aacf7b196","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    - name: Dump the OpenStack databases"},{"line_number":50,"context_line":"      script: |"},{"line_number":51,"context_line":"        /bin/mysqldump -uroot -p{{ mysql_password.stdout_lines[0] }} --single-transaction --databases {{ mysql_databases.stdout_lines | join(\u0027 \u0027) }}"},{"line_number":52,"context_line":"      register: mysql_dump"},{"line_number":53,"context_line":"    - name: Copy the databases to the temporary directory"},{"line_number":54,"context_line":"      copy:"},{"line_number":55,"context_line":"        dest: /var/tmp/overcloud-backup-database/mysql/openstack_databases.sql"},{"line_number":56,"context_line":"        content: \"{{ mysql_dump.stdout }}\""},{"line_number":57,"context_line":"    - name: Get a list of mysql grants databases"},{"line_number":58,"context_line":"      script: |"},{"line_number":59,"context_line":"        /bin/mysql -uroot -p{{ mysql_password.stdout_lines[0] }} -e \"SELECT CONCAT(\u0027\\\"SHOW GRANTS FOR \u0027\u0027\u0027,user,\u0027\u0027\u0027@\u0027\u0027\u0027,host,\u0027\u0027\u0027;\\\"\u0027) FROM mysql.user where (length(user) \u003e 0 and user NOT LIKE \u0027root\u0027)\" -s -N | xargs -n1 mysql -uroot -p{{ mysql_password.stdout_lines[0] }} -s -N -e | sed \u0027s/$/;/\u0027"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_639cea0c","line":56,"range":{"start_line":52,"start_character":0,"end_line":56,"end_character":42},"in_reply_to":"5f7c97a3_22860767","updated":"2018-07-18 06:49:28.000000000","message":"Agreed","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":62,"context_line":"      copy:"},{"line_number":63,"context_line":"        dest: /var/tmp/overcloud-backup-database/mysql/openstack_databases_grants.sql"},{"line_number":64,"context_line":"        content: \"{{ mysql_grants_database.stdout }}\""},{"line_number":65,"context_line":"        "},{"line_number":66,"context_line":"- name: Backing up MongoDB"},{"line_number":67,"context_line":"  hosts: Controller[0]"},{"line_number":68,"context_line":"  user: heat-admin"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_02250bae","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":8},"updated":"2018-07-17 10:42:52.000000000","message":"nit: whitespace","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":85,"context_line":"      when: mongo_running.failed \u003d\u003d false"},{"line_number":86,"context_line":"    - name: Dump the MongoDB database"},{"line_number":87,"context_line":"      script: |"},{"line_number":88,"context_line":"        /bin/mongodump --oplog -o /var/tmp/overcloud-backup-database/mongodb --host {{ mongodb_host.stdout }} "},{"line_number":89,"context_line":"      when: mongo_running.failed \u003d\u003d false"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"- name: Backing up redis"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_82c27b85","line":88,"range":{"start_line":88,"start_character":109,"end_line":88,"end_character":110},"updated":"2018-07-17 10:42:52.000000000","message":"ditto","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":122,"context_line":"      archive:"},{"line_number":123,"context_line":"        dest: /var/tmp/overcloud-backup-database.tar"},{"line_number":124,"context_line":"        path: /var/tmp/overcloud-backup-database/*"},{"line_number":125,"context_line":"    - name: Copy the databases to the undercloud"},{"line_number":126,"context_line":"      fetch:"},{"line_number":127,"context_line":"        src: /var/tmp/overcloud-backup-database.tar"},{"line_number":128,"context_line":"        dest: /var/tmp/overcloud-backup/"},{"line_number":129,"context_line":"        flat: yes"},{"line_number":130,"context_line":"    - name: Remove the overcloud-backup-database directory"},{"line_number":131,"context_line":"      file:"},{"line_number":132,"context_line":"        state: absent"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_022bcb32","line":129,"range":{"start_line":125,"start_character":4,"end_line":129,"end_character":17},"updated":"2018-07-17 10:42:52.000000000","message":"nit: what if the playbook is not run from undercloud? IMO it is better to use synchronize module combined with delegation to ensure controller-\u003eundercloud direction. \n\nAnyway, is it a good idea to use already overloaded undercloud node as a backup server?","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":17126,"name":"Dan Macpherson","email":"dmacpher@redhat.com","username":"dmacpher"},"change_message_id":"fdf2d751c13e1677bd8c4b70f7fdfd6aacf7b196","unresolved":false,"context_lines":[{"line_number":122,"context_line":"      archive:"},{"line_number":123,"context_line":"        dest: /var/tmp/overcloud-backup-database.tar"},{"line_number":124,"context_line":"        path: /var/tmp/overcloud-backup-database/*"},{"line_number":125,"context_line":"    - name: Copy the databases to the undercloud"},{"line_number":126,"context_line":"      fetch:"},{"line_number":127,"context_line":"        src: /var/tmp/overcloud-backup-database.tar"},{"line_number":128,"context_line":"        dest: /var/tmp/overcloud-backup/"},{"line_number":129,"context_line":"        flat: yes"},{"line_number":130,"context_line":"    - name: Remove the overcloud-backup-database directory"},{"line_number":131,"context_line":"      file:"},{"line_number":132,"context_line":"        state: absent"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_0385f6ad","line":129,"range":{"start_line":125,"start_character":4,"end_line":129,"end_character":17},"in_reply_to":"5f7c97a3_022bcb32","updated":"2018-07-18 06:49:28.000000000","message":"Agreed. Will try and allow a user-defined backup server.","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"3c7052bd37ea8835a4c97bccaa27fed0cdce93e7","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    backup_dirs:"},{"line_number":159,"context_line":"      - /etc"},{"line_number":160,"context_line":"      - /var/lib/nova"},{"line_number":161,"context_line":"      - /var/lib/glance"},{"line_number":162,"context_line":"      - /var/lib/keystone"},{"line_number":163,"context_line":"      - /var/lib/cinder"},{"line_number":164,"context_line":"      - /var/lib/heat"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3f79a3b5_8a555bc4","line":161,"updated":"2018-09-20 20:49:37.000000000","message":"What about optional services? I\u0027m thinking specifically of manila (/var/lib/manila).","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9b1e9557cf67e9b51466c4ced43a9121a0fdd29b","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    backup_dirs:"},{"line_number":159,"context_line":"      - /etc"},{"line_number":160,"context_line":"      - /var/lib/nova"},{"line_number":161,"context_line":"      - /var/lib/glance"},{"line_number":162,"context_line":"      - /var/lib/keystone"},{"line_number":163,"context_line":"      - /var/lib/cinder"},{"line_number":164,"context_line":"      - /var/lib/heat"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3f79a3b5_d7451e18","line":161,"in_reply_to":"3f79a3b5_8a555bc4","updated":"2018-09-21 21:11:32.000000000","message":"+1","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":185,"context_line":"          {% endif %}"},{"line_number":186,"context_line":"          {{\u0027 \u0027.join(backup_dirs) }}"},{"line_number":187,"context_line":"      delay: 60"},{"line_number":188,"context_line":"      "},{"line_number":189,"context_line":"- name: Copy filesystem backups to the undercloud"},{"line_number":190,"context_line":"  hosts: Controller"},{"line_number":191,"context_line":"  user: heat-admin"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_42d30303","line":188,"range":{"start_line":188,"start_character":0,"end_line":188,"end_character":6},"updated":"2018-07-17 10:42:52.000000000","message":"nit: whitespace","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"}],"playbooks/overcloud-restore.yaml":[{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":6,"context_line":"  tasks:"},{"line_number":7,"context_line":"    - set_fact:"},{"line_number":8,"context_line":"        bootstrap_node: false"},{"line_number":9,"context_line":"        "},{"line_number":10,"context_line":"- name: Set the bootstrap status on the first Controller node"},{"line_number":11,"context_line":"  hosts: Controller[0]"},{"line_number":12,"context_line":"  user: heat-admin"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_5d63e6ab","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":8},"updated":"2018-07-17 10:42:52.000000000","message":"nit: whitespace","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":14,"context_line":"  tasks:"},{"line_number":15,"context_line":"    - set_fact:"},{"line_number":16,"context_line":"        bootstrap_node: true"},{"line_number":17,"context_line":"        "},{"line_number":18,"context_line":"- name: Initializing local backup directory"},{"line_number":19,"context_line":"  hosts: undercloud"},{"line_number":20,"context_line":"  user: stack"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_1d07aecb","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":8},"updated":"2018-07-17 10:42:52.000000000","message":"nit: whitespace","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"      script: |"},{"line_number":32,"context_line":"        /bin/tar --xattrs --strip-components\u003d3 \\"},{"line_number":33,"context_line":"          -zxf {{ overcloud_backup_tar }} \\"},{"line_number":34,"context_line":"          -C /var/tmp/overcloud-backup/ "},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- name: Copy mysql database to the bootstrap Controller node"},{"line_number":37,"context_line":"  hosts: Controller"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_dd8136fc","line":34,"range":{"start_line":34,"start_character":39,"end_line":34,"end_character":40},"updated":"2018-07-17 10:42:52.000000000","message":"ditto","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        path: /var/tmp/overcloud-backup-database/"},{"line_number":50,"context_line":"        state: directory"},{"line_number":51,"context_line":"      when: bootstrap_node \u003d\u003d true"},{"line_number":52,"context_line":"    - name: Copy database tar to the bootstrap Controller node"},{"line_number":53,"context_line":"      copy:"},{"line_number":54,"context_line":"        src: /var/tmp/overcloud-backup/overcloud-backup-database.tar"},{"line_number":55,"context_line":"        dest: /var/tmp/overcloud-backup-database/overcloud-backup-database.tar"},{"line_number":56,"context_line":"      when: bootstrap_node \u003d\u003d true"},{"line_number":57,"context_line":"    - name: Unarchive the database tar"},{"line_number":58,"context_line":"      script: |"},{"line_number":59,"context_line":"        /bin/tar --xattrs \\"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_5de9a6a8","line":56,"range":{"start_line":52,"start_character":4,"end_line":56,"end_character":34},"updated":"2018-07-17 10:42:52.000000000","message":"nit: as is written in the backup playbook. To ensure undercloud-\u003econtroller transfer, we should maybe use synchronize module.","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":71,"context_line":"      script: |"},{"line_number":72,"context_line":"        /bin/hiera -c /etc/puppet/hiera.yaml mysql_bind_host"},{"line_number":73,"context_line":"      register: mysql_bind_host"},{"line_number":74,"context_line":"      "},{"line_number":75,"context_line":"    - name: Temporarily disable to database port from external access on each Controller nodes"},{"line_number":76,"context_line":"      iptables:"},{"line_number":77,"context_line":"        chain: \u0027INPUT\u0027"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_dd32965d","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":6},"updated":"2018-07-17 10:42:52.000000000","message":"nit: whitespace","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":20868,"name":"Jill Rouleau","email":"jill.rouleau@bespokess.com","username":"jillr"},"change_message_id":"1835f8e9700094886bec7205288ecd2a5560599e","unresolved":false,"context_lines":[{"line_number":164,"context_line":"      wait_for:"},{"line_number":165,"context_line":"        port: 3306"},{"line_number":166,"context_line":"        host: \"{{ mysql_bind_host.stdout|trim }}\""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    - name: Cleanup galera again (in case of monitor errors)"},{"line_number":169,"context_line":"      command: \"sudo pcs resource cleanup galera\""},{"line_number":170,"context_line":"      when: bootstrap_node \u003d\u003d true"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_9245df9d","line":167,"updated":"2018-07-17 18:30:58.000000000","message":"Clustered mysql needs to be brought up one node at a time, the data should be restored the bootstrap node before bringing replicas - then replication should handle copying the data to the other nodes.","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":17126,"name":"Dan Macpherson","email":"dmacpher@redhat.com","username":"dmacpher"},"change_message_id":"fdf2d751c13e1677bd8c4b70f7fdfd6aacf7b196","unresolved":false,"context_lines":[{"line_number":164,"context_line":"      wait_for:"},{"line_number":165,"context_line":"        port: 3306"},{"line_number":166,"context_line":"        host: \"{{ mysql_bind_host.stdout|trim }}\""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    - name: Cleanup galera again (in case of monitor errors)"},{"line_number":169,"context_line":"      command: \"sudo pcs resource cleanup galera\""},{"line_number":170,"context_line":"      when: bootstrap_node \u003d\u003d true"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_c3a37e43","line":167,"in_reply_to":"5f7c97a3_9245df9d","updated":"2018-07-18 06:49:28.000000000","message":"ACK on this item. I\u0027ll try and refine this process a bit.","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    - name: Cleanup galera again (in case of monitor errors)"},{"line_number":169,"context_line":"      command: \"sudo pcs resource cleanup galera\""},{"line_number":170,"context_line":"      when: bootstrap_node \u003d\u003d true"},{"line_number":171,"context_line":"  "},{"line_number":172,"context_line":"    - name: Wait for database to come up on all host"},{"line_number":173,"context_line":"      wait_for:"},{"line_number":174,"context_line":"        port: 3306"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_d81f0458","line":171,"range":{"start_line":171,"start_character":0,"end_line":171,"end_character":2},"updated":"2018-07-17 10:42:52.000000000","message":"ditto","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":182,"context_line":"      script: |"},{"line_number":183,"context_line":"        /bin/mysql -u root \u003c /var/tmp/overcloud-backup-database/mysql/openstack_databases.sql"},{"line_number":184,"context_line":"      when: bootstrap_node \u003d\u003d true"},{"line_number":185,"context_line":"      "},{"line_number":186,"context_line":"    - name: Import grants data"},{"line_number":187,"context_line":"      script: | "},{"line_number":188,"context_line":"        /bin/mysql -u root \u003c /var/tmp/overcloud-backup-database/mysql/openstack_databases_grants.sql"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_783830d3","line":185,"range":{"start_line":185,"start_character":0,"end_line":185,"end_character":6},"updated":"2018-07-17 10:42:52.000000000","message":"ditto","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":184,"context_line":"      when: bootstrap_node \u003d\u003d true"},{"line_number":185,"context_line":"      "},{"line_number":186,"context_line":"    - name: Import grants data"},{"line_number":187,"context_line":"      script: | "},{"line_number":188,"context_line":"        /bin/mysql -u root \u003c /var/tmp/overcloud-backup-database/mysql/openstack_databases_grants.sql"},{"line_number":189,"context_line":"      when: bootstrap_node \u003d\u003d true"},{"line_number":190,"context_line":"      "}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_98350cde","line":187,"range":{"start_line":187,"start_character":15,"end_line":187,"end_character":16},"updated":"2018-07-17 10:42:52.000000000","message":"ditto","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":187,"context_line":"      script: | "},{"line_number":188,"context_line":"        /bin/mysql -u root \u003c /var/tmp/overcloud-backup-database/mysql/openstack_databases_grants.sql"},{"line_number":189,"context_line":"      when: bootstrap_node \u003d\u003d true"},{"line_number":190,"context_line":"      "},{"line_number":191,"context_line":"    - name: Set the root password back to the original"},{"line_number":192,"context_line":"      command: \"sudo /usr/bin/mysqladmin -u root password {{ mysql_root_password.stdout|trim }}\""},{"line_number":193,"context_line":"      when: bootstrap_node \u003d\u003d true"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_582bf47a","line":190,"range":{"start_line":190,"start_character":0,"end_line":190,"end_character":6},"updated":"2018-07-17 10:42:52.000000000","message":"ditto","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":5241,"name":"Martin Magr","email":"mmagr@redhat.com","username":"mmagr"},"change_message_id":"4eb75804b5a9bd41e2bb1b1ad3df48ed79cc80d9","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    - name: Set the root password back to the original"},{"line_number":192,"context_line":"      command: \"sudo /usr/bin/mysqladmin -u root password {{ mysql_root_password.stdout|trim }}\""},{"line_number":193,"context_line":"      when: bootstrap_node \u003d\u003d true"},{"line_number":194,"context_line":"      "},{"line_number":195,"context_line":"    - name: Restore the root mysql config"},{"line_number":196,"context_line":"      copy:"},{"line_number":197,"context_line":"        remote_src: true"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f7c97a3_184fbc6a","line":194,"range":{"start_line":194,"start_character":0,"end_line":194,"end_character":6},"updated":"2018-07-17 10:42:52.000000000","message":"ditto","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"},{"author":{"_account_id":20868,"name":"Jill Rouleau","email":"jill.rouleau@bespokess.com","username":"jillr"},"change_message_id":"1835f8e9700094886bec7205288ecd2a5560599e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5f7c97a3_12b6af8a","line":235,"updated":"2018-07-17 18:30:58.000000000","message":"This playbook does not handle mongo, redis, or filesystem backups.  If they\u0027re part of the backup, they should be addressed in some way by the restore.","commit_id":"34caabcb7e4c8ee3d701fb04307690107ec7fc3d"}]}
