From 75fa0d3f5d29a0b1dab756dd173aac49cd927e90 Mon Sep 17 00:00:00 2001 From: Daniel Clavijo Coca Date: Mon, 14 Jan 2019 09:25:32 -0600 Subject: [PATCH] F #1684: Fix ext4 resize error handling (#2800) --- src/vmm_mad/remotes/lib/lxd/container.rb | 12 ++++++------ src/vmm_mad/remotes/lib/lxd/mapper/mapper.rb | 9 +++++---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/vmm_mad/remotes/lib/lxd/container.rb b/src/vmm_mad/remotes/lib/lxd/container.rb index 18b6a132cc..2d3db23168 100644 --- a/src/vmm_mad/remotes/lib/lxd/container.rb +++ b/src/vmm_mad/remotes/lib/lxd/container.rb @@ -165,14 +165,14 @@ class Container cmd = "#{LXC_COMMAND} exec #{@one.vm_name} -- #{command}" rc, o, e = Command.execute(cmd, true) - # TODO this should be removed when Snap bug is fixed - # Snap patch - rc, o, e = Command.execute("sudo #{cmd}", true) if e.include?('cannot create user data directory:') - + # TODO: this should be removed when Snap bug is fixed + err = 'cannot create user data directory:' + rc, o, e = Command.execute("sudo #{cmd}", true) if e.include?(err) + return [rc, o, e] unless rc != 0 - + OpenNebula.log_error("#{__method__}: Failed to run command #{cmd}: #{e}") - + [rc, o, e] end diff --git a/src/vmm_mad/remotes/lib/lxd/mapper/mapper.rb b/src/vmm_mad/remotes/lib/lxd/mapper/mapper.rb index 4d66bb37b1..04be9633a4 100644 --- a/src/vmm_mad/remotes/lib/lxd/mapper/mapper.rb +++ b/src/vmm_mad/remotes/lib/lxd/mapper/mapper.rb @@ -163,12 +163,13 @@ class Mapper Command.execute("#{COMMANDS[:xfs_growfs]} -d #{directory}", false) when /ext/ - rc, _o, e = Command.execute("#{COMMANDS[:e2fsck]} -f -y #{device}", false) + _rc, o, e = Command.execute("#{COMMANDS[:e2fsck]} -f -y #{device}", false) - if rc.zero? - Command.execute("#{COMMANDS[:resize2fs]} #{device}", false) + if o.empty? + err = "#{__method__}: failed to resize #{device}\n#{e}" + OpenNebula.log_error err else - OpenNebula.log_error "#{__method__}: failed to resize #{device}\n#{e}" + Command.execute("#{COMMANDS[:resize2fs]} #{device}", false) end rc = mount_dev(device, directory)