diff --git a/install.sh b/install.sh index 1b84ebe73f..f2c4022b05 100755 --- a/install.sh +++ b/install.sh @@ -614,6 +614,7 @@ VMM_EXEC_VMWARE_SCRIPTS="src/vmm_mad/remotes/vmware/cancel \ src/vmm_mad/remotes/vmware/deploy \ src/vmm_mad/remotes/vmware/migrate \ src/vmm_mad/remotes/vmware/restore \ + src/vmm_mad/remotes/vmware/reboot \ src/vmm_mad/remotes/vmware/save \ src/vmm_mad/remotes/vmware/poll \ src/vmm_mad/remotes/vmware/checkpoint \ diff --git a/src/mad/ruby/vmwarelib.rb b/src/mad/ruby/vmwarelib.rb index 565cdf3d2d..908e5588f6 100644 --- a/src/mad/ruby/vmwarelib.rb +++ b/src/mad/ruby/vmwarelib.rb @@ -101,6 +101,19 @@ class VMwareDriver undefine_domain(deploy_id) end + # ------------------------------------------------------------------------ # + # Reboots a running VM # + # ------------------------------------------------------------------------ # + def reboot(deploy_id) + # Destroy the VM + rc, info = perform_action("virsh -c #{@uri} reboot #{deploy_id}") + + if rc == false + exit info + end + + OpenNebula.log_debug("Domain #{deploy_id} successfully rebooted.") + end # ------------------------------------------------------------------------ # # Migrate # # ------------------------------------------------------------------------ # diff --git a/src/vmm_mad/remotes/vmware/reboot b/src/vmm_mad/remotes/vmware/reboot new file mode 100755 index 0000000000..3d2c40b383 --- /dev/null +++ b/src/vmm_mad/remotes/vmware/reboot @@ -0,0 +1,37 @@ +#!/usr/bin/env ruby + +# ---------------------------------------------------------------------------- # +# Copyright 2010-2011, C12G Labs S.L # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# ---------------------------------------------------------------------------- # + +ONE_LOCATION=ENV["ONE_LOCATION"] if !defined?(ONE_LOCATION) + +if !ONE_LOCATION + RUBY_LIB_LOCATION="/usr/lib/one/ruby" if !defined?(RUBY_LIB_LOCATION) +else + RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby" if !defined?(RUBY_LIB_LOCATION) +end + +$: << RUBY_LIB_LOCATION +$: << File.dirname(__FILE__) + +require 'vmwarelib' + +deploy_id = ARGV[0] +host = ARGV[1] + +vmware_drv = VMwareDriver.new(host) + +vmware_drv.reboot(deploy_id)