[DRE-commits] [vagrant-libvirt] 08/104: pause <-> resume
Antonio Terceiro
terceiro at moszumanska.debian.org
Sun Apr 24 13:55:39 UTC 2016
This is an automated email from the git hooks/post-receive script.
terceiro pushed a commit to annotated tag 0.0.11
in repository vagrant-libvirt.
commit 0a66fd2cffdff54563e5f42cafe5a8faae719f2d
Author: dima <pronix.service at gmail.com>
Date: Sat Mar 30 13:42:59 2013 +0100
pause <-> resume
---
lib/vagrant-libvirt/action.rb | 17 +++++++++++++++++
lib/vagrant-libvirt/action/destroy_domain.rb | 2 +-
lib/vagrant-libvirt/action/handle_box_image.rb | 4 ++--
lib/vagrant-libvirt/action/read_state.rb | 1 -
lib/vagrant-libvirt/action/start_domain.rb | 6 +++++-
.../action/{start_domain.rb => suspend.rb} | 16 +++++++---------
locales/en.yml | 4 ++++
7 files changed, 36 insertions(+), 14 deletions(-)
diff --git a/lib/vagrant-libvirt/action.rb b/lib/vagrant-libvirt/action.rb
index f1acc48..000f1ce 100644
--- a/lib/vagrant-libvirt/action.rb
+++ b/lib/vagrant-libvirt/action.rb
@@ -13,6 +13,12 @@ module VagrantPlugins
b.use ConnectLibvirt
b.use Call, IsCreated do |env, b2|
if env[:result]
+ b2.use Call, ReadState do |env2,b3|
+ if env2[:machine_state_id] == 'paused'
+ b3.use StartDomain
+ return true
+ end
+ end
b2.use MessageAlreadyCreated
next
end
@@ -70,7 +76,18 @@ module VagrantPlugins
end
end
+ # suspend
+ # save vm to file
+ def self.action_suspend
+ Vagrant::Action::Builder.new.tap do |b|
+ b.use ConfigValidate
+ b.use ConnectLibvirt
+ b.use Suspend
+ end
+ end
+
action_root = Pathname.new(File.expand_path("../action", __FILE__))
+ autoload :Suspend, action_root.join("suspend")
autoload :ConnectLibvirt, action_root.join("connect_libvirt")
autoload :IsCreated, action_root.join("is_created")
autoload :MessageAlreadyCreated, action_root.join("message_already_created")
diff --git a/lib/vagrant-libvirt/action/destroy_domain.rb b/lib/vagrant-libvirt/action/destroy_domain.rb
index e722d85..87f0396 100644
--- a/lib/vagrant-libvirt/action/destroy_domain.rb
+++ b/lib/vagrant-libvirt/action/destroy_domain.rb
@@ -12,7 +12,7 @@ module VagrantPlugins
def call(env)
- # Destroy the server and remove the tracking ID
+ # Destroy the server and remove the tracking ID
env[:ui].info(I18n.t("vagrant_libvirt.destroy_domain"))
domain = env[:libvirt_compute].servers.get(env[:machine].id.to_s)
diff --git a/lib/vagrant-libvirt/action/handle_box_image.rb b/lib/vagrant-libvirt/action/handle_box_image.rb
index a329560..2b621d7 100644
--- a/lib/vagrant-libvirt/action/handle_box_image.rb
+++ b/lib/vagrant-libvirt/action/handle_box_image.rb
@@ -12,7 +12,7 @@ module VagrantPlugins
def call(env)
# Verify box metadata for mandatory values.
- #
+ #
# Virtual size has to be set for allocating space in storage pool.
box_virtual_size = env[:machine].box.metadata['virtual_size']
if box_virtual_size == nil
@@ -103,7 +103,7 @@ module VagrantPlugins
sent = stream.send buff
progress += sent
yield progress
- end
+ end
end
rescue => e
raise Errors::ImageUploadError,
diff --git a/lib/vagrant-libvirt/action/read_state.rb b/lib/vagrant-libvirt/action/read_state.rb
index f7543fa..0930205 100644
--- a/lib/vagrant-libvirt/action/read_state.rb
+++ b/lib/vagrant-libvirt/action/read_state.rb
@@ -13,7 +13,6 @@ module VagrantPlugins
def call(env)
env[:machine_state_id] = read_state(env[:libvirt_compute], env[:machine])
-
@app.call(env)
end
diff --git a/lib/vagrant-libvirt/action/start_domain.rb b/lib/vagrant-libvirt/action/start_domain.rb
index 5ea9332..1acfd2b 100644
--- a/lib/vagrant-libvirt/action/start_domain.rb
+++ b/lib/vagrant-libvirt/action/start_domain.rb
@@ -16,7 +16,11 @@ module VagrantPlugins
domain = env[:libvirt_compute].servers.get(env[:machine].id.to_s)
raise Errors::NoDomainError if domain == nil
- domain.start
+ if domain.state.to_s == 'paused'
+ domain.resume
+ else
+ domain.start
+ end
@app.call(env)
end
diff --git a/lib/vagrant-libvirt/action/start_domain.rb b/lib/vagrant-libvirt/action/suspend.rb
similarity index 50%
copy from lib/vagrant-libvirt/action/start_domain.rb
copy to lib/vagrant-libvirt/action/suspend.rb
index 5ea9332..4499acf 100644
--- a/lib/vagrant-libvirt/action/start_domain.rb
+++ b/lib/vagrant-libvirt/action/suspend.rb
@@ -4,20 +4,18 @@ module VagrantPlugins
module Libvirt
module Action
- # Just start the domain.
- class StartDomain
+ class Suspend
def initialize(app, env)
- @logger = Log4r::Logger.new("vagrant_libvirt::action::start_domain")
+ @logger = Log4r::Logger.new("vagrant_libvirt::action::create_domain")
@app = app
end
+ # make pause
def call(env)
- env[:ui].info(I18n.t("vagrant_libvirt.starting_domain"))
-
- domain = env[:libvirt_compute].servers.get(env[:machine].id.to_s)
- raise Errors::NoDomainError if domain == nil
- domain.start
-
+ vmid = env[:machine].id.to_s.chomp
+ domain = env[:libvirt_compute].servers.get(vmid)
+ domain.suspend
+ @logger.info("Machine #{vmid} is suspended ")
@app.call(env)
end
end
diff --git a/locales/en.yml b/locales/en.yml
index 9e999cd..94636e5 100644
--- a/locales/en.yml
+++ b/locales/en.yml
@@ -91,6 +91,10 @@ en:
Error while attaching new device to domain. %{error_message}
states:
+ short_paused: |-
+ pause
+ short_shutoff: |-
+ shutoff
short_not_created: |-
not created
long_not_created: |-
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/vagrant-libvirt.git
More information about the Pkg-ruby-extras-commits
mailing list