From 308d304851a2fd86eec7a1ec20f7e07efcb9dc9d Mon Sep 17 00:00:00 2001 From: Daniel Clavijo Coca Date: Mon, 25 Mar 2019 15:12:53 -0600 Subject: [PATCH] B #3103 #3127: Fix ext4 handling code and set correct permissions for raw images (cherry picked from commit becaf48344932bbd652f246d6f915709da5c7ddf) --- src/vmm_mad/remotes/lib/lxd/client.rb | 2 +- src/vmm_mad/remotes/lib/lxd/mapper/mapper.rb | 7 +++++-- src/vmm_mad/remotes/lib/lxd/mapper/raw.rb | 3 +++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/vmm_mad/remotes/lib/lxd/client.rb b/src/vmm_mad/remotes/lib/lxd/client.rb index 0d0fd3301b..46fac3766a 100644 --- a/src/vmm_mad/remotes/lib/lxd/client.rb +++ b/src/vmm_mad/remotes/lib/lxd/client.rb @@ -94,7 +94,7 @@ class LXDClient def wait(response, timeout) operation_id = response['operation'].split('/').last - timeout = "?timeout=#{timeout}" if [nil, ''].include?(timeout) + timeout = "?timeout=#{timeout}" unless [nil, ''].include?(timeout) response = get("operations/#{operation_id}/wait#{timeout}") diff --git a/src/vmm_mad/remotes/lib/lxd/mapper/mapper.rb b/src/vmm_mad/remotes/lib/lxd/mapper/mapper.rb index c39925d286..e9d036a682 100644 --- a/src/vmm_mad/remotes/lib/lxd/mapper/mapper.rb +++ b/src/vmm_mad/remotes/lib/lxd/mapper/mapper.rb @@ -481,7 +481,6 @@ class Mapper if o.empty? OpenNebula.log_error("#{err}#{e}") - return false else cmd = "#{COMMANDS[:resize2fs]} #{device}" rc, _o, e = Command.execute(cmd, false) @@ -511,7 +510,11 @@ class Mapper when /xfs/ cmd = "#{COMMANDS[:xfs_admin]} -U generate #{device}" when /ext/ - Command.execute("#{COMMANDS[:e2fsck]} -f -y #{device}", false) + cmd = "#{COMMANDS[:e2fsck]} -f -y #{device}" + _rc, o, e = Command.execute(cmd, false) + + OpenNebula.log e if o.empty? + cmd = "#{COMMANDS[:tune2fs]} -U random #{device}" else return true diff --git a/src/vmm_mad/remotes/lib/lxd/mapper/raw.rb b/src/vmm_mad/remotes/lib/lxd/mapper/raw.rb index cecb386365..baf8bed8cd 100644 --- a/src/vmm_mad/remotes/lib/lxd/mapper/raw.rb +++ b/src/vmm_mad/remotes/lib/lxd/mapper/raw.rb @@ -27,6 +27,9 @@ class FSRawMapper < Mapper def do_map(one_vm, disk, _directory) dsrc = one_vm.disk_source(disk) + + File.chmod(0o646, dsrc) if File.symlink?(one_vm.sysds_path) + cmd = "#{COMMANDS[:losetup]} -f --show #{dsrc}" rc, out, err = Command.execute(cmd, true)