vagrant-xenserver 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +1 -2
- data/lib/vagrant-xenserver/action/clone_disk.rb +1 -1
- data/lib/vagrant-xenserver/action/halt_vm.rb +1 -1
- data/lib/vagrant-xenserver/action/is_suspended.rb +20 -0
- data/lib/vagrant-xenserver/action/maybe_upload_disk.rb +2 -2
- data/lib/vagrant-xenserver/action/read_state.rb +1 -1
- data/lib/vagrant-xenserver/action/resume_vm.rb +30 -0
- data/lib/vagrant-xenserver/action/suspend_vm.rb +30 -0
- data/lib/vagrant-xenserver/action/upload_vhd.rb +1 -1
- data/lib/vagrant-xenserver/action.rb +43 -0
- data/lib/vagrant-xenserver/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b84e9354ef528f4b70fd544bd1c5a83c791db119
|
4
|
+
data.tar.gz: 1c11dfe1f8bcae0c9285e66053c64ce01bfec15e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 974b740f5427008c0584d8f60c3cb664971ab9bd1e68b57f3844bb6381b29d6a8b240da8981d15a70883edb7aaacc011ec663159f50a3e772a84daacabbace4d
|
7
|
+
data.tar.gz: b862e19f37248b5a291ec4a64f69fffaa14e3cbc3e8c231b20150581a8c50009467b56f1f0ce33c3cb5ea1abf74d7d2924d0984dd897ca3caad2c6a6273a205c
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -25,8 +25,7 @@ echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
25
25
|
/sbin/iptables -t nat -A POSTROUTING -o xenbr0 -j MASQUERADE
|
26
26
|
/sbin/iptables -A INPUT -i xenbr0 -p tcp -m tcp --dport 53 -j ACCEPT
|
27
27
|
/sbin/iptables -A INPUT -i xenbr0 -p udp -m udp --dport 53 -j ACCEPT
|
28
|
-
/sbin/iptables -A FORWARD -i xenbr0 -o xenapi -m state --state
|
29
|
-
RELATED,ESTABLISHED -j ACCEPT
|
28
|
+
/sbin/iptables -A FORWARD -i xenbr0 -o xenapi -m state --state RELATED,ESTABLISHED -j ACCEPT
|
30
29
|
/sbin/iptables -A FORWARD -i xenapi -o xenbr0 -j ACCEPT
|
31
30
|
```
|
32
31
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'log4r'
|
2
|
+
|
3
|
+
module VagrantPlugins
|
4
|
+
module XenServer
|
5
|
+
module Action
|
6
|
+
class IsSuspended
|
7
|
+
def initialize(app, env)
|
8
|
+
@app = app
|
9
|
+
@logger = Log4r::Logger.new('vagrant_xenserver::action::is_suspended')
|
10
|
+
end
|
11
|
+
|
12
|
+
def call(env)
|
13
|
+
@logger.info("env[:machine].state.id="+env[:machine].state.id.to_s)
|
14
|
+
env[:result] = env[:machine].state.id == 'Suspended'
|
15
|
+
@app.call(env)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -9,7 +9,7 @@ module VagrantPlugins
|
|
9
9
|
class UploadXVA
|
10
10
|
def initialize(app, env)
|
11
11
|
@app = app
|
12
|
-
@logger = Log4r::Logger.new("vagrant::xenserver::actions::
|
12
|
+
@logger = Log4r::Logger.new("vagrant::xenserver::actions::maybe_upload_disk")
|
13
13
|
end
|
14
14
|
|
15
15
|
def call(env)
|
@@ -31,7 +31,7 @@ module VagrantPlugins
|
|
31
31
|
|
32
32
|
task = task_result["Value"]
|
33
33
|
|
34
|
-
url = "
|
34
|
+
url = "https://#{hostname}/import?session_id=#{session}&task_id=#{task}"
|
35
35
|
|
36
36
|
uploader_options = {}
|
37
37
|
uploader_options[:ui] = env[:ui]
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "log4r"
|
2
|
+
require "xmlrpc/client"
|
3
|
+
|
4
|
+
module VagrantPlugins
|
5
|
+
module XenServer
|
6
|
+
module Action
|
7
|
+
class ResumeVM
|
8
|
+
def initialize(app, env)
|
9
|
+
@app = app
|
10
|
+
@logger = Log4r::Logger.new("vagrant::xenserver::actions::resume_vm")
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(env)
|
14
|
+
myvm = env[:machine].id
|
15
|
+
|
16
|
+
resume_task = env[:xc].call("Async.VM.resume",env[:session],myvm,false,false)['Value']
|
17
|
+
while env[:xc].call("task.get_status",env[:session],resume_task)['Value'] == 'pending' do
|
18
|
+
sleep 1
|
19
|
+
end
|
20
|
+
resume_result = env[:xc].call("task.get_status",env[:session],resume_task)['Value']
|
21
|
+
if resume_result != "success"
|
22
|
+
raise Errors::APIError
|
23
|
+
end
|
24
|
+
|
25
|
+
@app.call env
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "log4r"
|
2
|
+
require "xmlrpc/client"
|
3
|
+
|
4
|
+
module VagrantPlugins
|
5
|
+
module XenServer
|
6
|
+
module Action
|
7
|
+
class SuspendVM
|
8
|
+
def initialize(app, env)
|
9
|
+
@app = app
|
10
|
+
@logger = Log4r::Logger.new("vagrant::xenserver::actions::suspend_vm")
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(env)
|
14
|
+
myvm = env[:machine].id
|
15
|
+
|
16
|
+
suspend_task = env[:xc].call("Async.VM.suspend",env[:session],myvm)['Value']
|
17
|
+
while env[:xc].call("task.get_status",env[:session],suspend_task)['Value'] == 'pending' do
|
18
|
+
sleep 1
|
19
|
+
end
|
20
|
+
suspend_result = env[:xc].call("task.get_status",env[:session],suspend_task)['Value']
|
21
|
+
if suspend_result != "success"
|
22
|
+
raise Errors::APIError
|
23
|
+
end
|
24
|
+
|
25
|
+
@app.call env
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -56,6 +56,46 @@ module VagrantPlugins
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
+
def self.action_suspend
|
60
|
+
Vagrant::Action::Builder.new.tap do |b|
|
61
|
+
b.use ConfigValidate
|
62
|
+
b.use Call, IsCreated do |env, b2|
|
63
|
+
if !env[:result]
|
64
|
+
@logger.info "MessageNotCreated"
|
65
|
+
next
|
66
|
+
end
|
67
|
+
b2.use ConnectXS
|
68
|
+
b2.use Call, IsRunning do |env, b3|
|
69
|
+
if !env[:result]
|
70
|
+
@logger.info "Not running"
|
71
|
+
next
|
72
|
+
end
|
73
|
+
b3.use SuspendVM
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def self.action_resume
|
80
|
+
Vagrant::Action::Builder.new.tap do |b|
|
81
|
+
b.use ConfigValidate
|
82
|
+
b.use Call, IsCreated do |env, b2|
|
83
|
+
if !env[:result]
|
84
|
+
@logger.info "MessageNotCreated"
|
85
|
+
next
|
86
|
+
end
|
87
|
+
b2.use ConnectXS
|
88
|
+
b2.use Call, IsSuspended do |env, b3|
|
89
|
+
if !env[:result]
|
90
|
+
@logger.info "Not suspended"
|
91
|
+
next
|
92
|
+
end
|
93
|
+
b3.use ResumeVM
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
59
99
|
def self.action_destroy
|
60
100
|
Vagrant::Action::Builder.new.tap do |b|
|
61
101
|
b.use ConfigValidate
|
@@ -167,6 +207,7 @@ module VagrantPlugins
|
|
167
207
|
autoload :ReadState, action_root.join('read_state')
|
168
208
|
autoload :IsCreated, action_root.join('is_created')
|
169
209
|
autoload :IsRunning, action_root.join('is_running')
|
210
|
+
autoload :IsSuspended, action_root.join('is_suspended')
|
170
211
|
autoload :UploadXVA, action_root.join('upload_xva')
|
171
212
|
autoload :UploadVHD, action_root.join('upload_vhd')
|
172
213
|
autoload :CloneDisk, action_root.join('clone_disk')
|
@@ -174,6 +215,8 @@ module VagrantPlugins
|
|
174
215
|
autoload :DestroyVM, action_root.join('destroy_vm')
|
175
216
|
autoload :StartVM, action_root.join('start_vm')
|
176
217
|
autoload :HaltVM, action_root.join('halt_vm')
|
218
|
+
autoload :SuspendVM, action_root.join('suspend_vm')
|
219
|
+
autoload :ResumeVM, action_root.join('resume_vm')
|
177
220
|
autoload :ReadSSHInfo, action_root.join('read_ssh_info')
|
178
221
|
autoload :PrepareNFSSettings, action_root.join('prepare_nfs_settings')
|
179
222
|
autoload :PrepareNFSValidIds, action_root.join('prepare_nfs_valid_ids')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-xenserver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Ludlam
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -46,12 +46,15 @@ files:
|
|
46
46
|
- lib/vagrant-xenserver/action/halt_vm.rb
|
47
47
|
- lib/vagrant-xenserver/action/is_created.rb
|
48
48
|
- lib/vagrant-xenserver/action/is_running.rb
|
49
|
+
- lib/vagrant-xenserver/action/is_suspended.rb
|
49
50
|
- lib/vagrant-xenserver/action/maybe_upload_disk.rb
|
50
51
|
- lib/vagrant-xenserver/action/prepare_nfs_settings.rb
|
51
52
|
- lib/vagrant-xenserver/action/prepare_nfs_valid_ids.rb
|
52
53
|
- lib/vagrant-xenserver/action/read_ssh_info.rb
|
53
54
|
- lib/vagrant-xenserver/action/read_state.rb
|
55
|
+
- lib/vagrant-xenserver/action/resume_vm.rb
|
54
56
|
- lib/vagrant-xenserver/action/start_vm.rb
|
57
|
+
- lib/vagrant-xenserver/action/suspend_vm.rb
|
55
58
|
- lib/vagrant-xenserver/action/upload_vhd.rb
|
56
59
|
- lib/vagrant-xenserver/action/upload_xva.rb
|
57
60
|
- lib/vagrant-xenserver/config.rb
|