diff --git a/src/vmm_mad/remotes/lib/lxd/container.rb b/src/vmm_mad/remotes/lib/lxd/container.rb index e13b9889b0..933717a1f9 100644 --- a/src/vmm_mad/remotes/lib/lxd/container.rb +++ b/src/vmm_mad/remotes/lib/lxd/container.rb @@ -227,7 +227,7 @@ class Container begin stop(:force => force) - rescue => e + rescue StandardError => e OpenNebula.log_error "LXD Error: #{e}" real_status = 'Unknown' @@ -243,7 +243,7 @@ class Container begin stop(:force => true) if real_status == 'Running' - rescue => e + rescue StandardError => e error = "LXD Error: Cannot shut down container #{e}" OpenNebula.log_error error @@ -491,6 +491,15 @@ class Container @lxc['config']['user.one_status'] == '0' end + # Intended to save the container xml + def save_xml(one_xml) + require 'base64' + + container_key = 'user.xml' # TODO: lxdrc ? + + @lxc['config'].update(container_key => Base64.encode64(one_xml)) + end + private def idmaps_file diff --git a/src/vmm_mad/remotes/lxd/deploy b/src/vmm_mad/remotes/lxd/deploy index 88a3ba972d..8b1c5f2df1 100755 --- a/src/vmm_mad/remotes/lxd/deploy +++ b/src/vmm_mad/remotes/lxd/deploy @@ -83,7 +83,7 @@ end #------------------------------------------------------------------------------- # Updates container configuration with the OpenNebulaVM description # ------------------------------------------------------------------------------ -container.config.update('user.xml' => xml) +container.save_xml(xml) container.transition_end unless container.wild? container.update diff --git a/src/vmm_mad/remotes/lxd/reboot b/src/vmm_mad/remotes/lxd/reboot index 1ac8363569..4033e82dbc 100755 --- a/src/vmm_mad/remotes/lxd/reboot +++ b/src/vmm_mad/remotes/lxd/reboot @@ -19,6 +19,7 @@ $LOAD_PATH.unshift File.dirname(__FILE__) require 'container' +require 'base64' require_relative '../../scripts_common' @@ -29,7 +30,9 @@ vm_name = ARGV[0] client = LXDClient.new container = Container.get(vm_name, nil, client) -container = Container.get(vm_name, container.config['user.xml'], client) + +xml = Base64.decode64(container.config['user.xml']) +container = Container.get(vm_name, xml, client) force = false force = true if ARGV[-1] == '-f'