)]}'
{"tasks/nova_compute_kvm_install.yml":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"272e1a9a6354d28a6a9675e30c904cb2e2b9abe4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Make sure libvirt is started"},{"line_number":17,"context_line":"  service:"},{"line_number":18,"context_line":"    name: \"{{ libvirt_service_name }}\""},{"line_number":19,"context_line":"    state: \"started\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- name: Check the state of the default qemu save directory"},{"line_number":22,"context_line":"  stat:"},{"line_number":23,"context_line":"    path: \"/var/lib/libvirt/qemu/save\""},{"line_number":24,"context_line":"  until: _qemu_save_dir.stat.exists | bool"},{"line_number":25,"context_line":"  retries: 5"},{"line_number":26,"context_line":"  delay: 10"},{"line_number":27,"context_line":"  failed_when: false"},{"line_number":28,"context_line":"  register: _qemu_save_dir"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"- name: Check if the qemu save directory is empty"},{"line_number":31,"context_line":"  command: \u0027ls -1A /var/lib/libvirt/qemu/save\u0027"},{"line_number":32,"context_line":"  changed_when: false"},{"line_number":33,"context_line":"  register: _qemu_save_dir_contents"},{"line_number":34,"context_line":"  when:"},{"line_number":35,"context_line":"    - _qemu_save_dir.stat.isdir is defined"},{"line_number":36,"context_line":"    - _qemu_save_dir.stat.isdir | bool"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"- name: Move the existing save directory to nova_libvirt_save_path"},{"line_number":39,"context_line":"  command: \"mv /var/lib/libvirt/qemu/save {{ nova_libvirt_save_path }}\""},{"line_number":40,"context_line":"  when:"},{"line_number":41,"context_line":"    - _qemu_save_dir.stat.isdir is defined"},{"line_number":42,"context_line":"    - _qemu_save_dir.stat.isdir | bool"},{"line_number":43,"context_line":"    - _qemu_save_dir_contents.stdout_lines | length \u003d\u003d 0"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"- name: Create the new save directory"},{"line_number":46,"context_line":"  file:"},{"line_number":47,"context_line":"    path: \"{{ nova_libvirt_save_path }}\""},{"line_number":48,"context_line":"    state: directory"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"- name: Symlink qemu save dir to nova_libvirt_save_path"},{"line_number":51,"context_line":"  file:"},{"line_number":52,"context_line":"    src: \"{{ nova_libvirt_save_path }}\""},{"line_number":53,"context_line":"    dest: \"/var/lib/libvirt/qemu/save\""},{"line_number":54,"context_line":"    state: link"},{"line_number":55,"context_line":"    owner: \"{{ nova_qemu_user }}\""},{"line_number":56,"context_line":"    group: \"{{ nova_qemu_group }}\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"- name: Install pip packages"},{"line_number":59,"context_line":"  pip:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"dfeb2761_98391643","line":56,"range":{"start_line":16,"start_character":0,"end_line":56,"end_character":34},"updated":"2017-03-31 08:54:11.000000000","message":"This is all a block. The intent here is to check if the folder exists and if the folder contains anything. If it does, leave it alone. If it does not, then move the directory.\n\nLibvirt is forcefully started to make sure that it creates the directory, but apparently this behaviour is inconsistent.\n\nAt this point I think that we\u0027re better off just using a single shell task which implements our logic in a bash script which does all the bits necessary.\n\n1. Check if the folder exists and is not a symlink\n2. If 1 is true, check if it has contents - if it does, leave it alone\n3. If 2 does not, replace the folder with a symlink and create the folder in the other location with the appropriate ownerships, etc\n4. Return 0 for no change, 1 for error, 2 for change.\n\nWe should not have to forcefully start libvirt either.","commit_id":"2dbb8609c89c9508aaa8af687497429fadb55083"}]}
