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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 911987b6727c2c821c643fbd857f82d7022c7f48
4
- data.tar.gz: 31433e632ad1fafdedeb1a83c735b64825cc20b3
3
+ metadata.gz: b84e9354ef528f4b70fd544bd1c5a83c791db119
4
+ data.tar.gz: 1c11dfe1f8bcae0c9285e66053c64ce01bfec15e
5
5
  SHA512:
6
- metadata.gz: 18b372c6454cad0ee1ad976d5d920b90e6f201955c6464cf2a304eedf3d9171c8665e9ca195b2a688388ea0c88041b5950e983ae40b53e5b669f75bae1cdff7f
7
- data.tar.gz: a0ae80e01bbc30ed5299828007e51022e9a1b521eac72565e414bf02fd097919a8a744848823ce5ff627f12c9a1fad0d2d9669a31620cc8726336a660dcd2762
6
+ metadata.gz: 974b740f5427008c0584d8f60c3cb664971ab9bd1e68b57f3844bb6381b29d6a8b240da8981d15a70883edb7aaacc011ec663159f50a3e772a84daacabbace4d
7
+ data.tar.gz: b862e19f37248b5a291ec4a64f69fffaa14e3cbc3e8c231b20150581a8c50009467b56f1f0ce33c3cb5ea1abf74d7d2924d0984dd897ca3caad2c6a6273a205c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # 0.0.5 (5 September 2014)
2
+
3
+ * Upload VHDs over https rather than http
4
+ * Suspend/Resume (Simon Beaumont)
5
+
1
6
  # 0.0.4 (10 July 2014)
2
7
 
3
8
  * Enable NFS synced folders
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
 
@@ -10,7 +10,7 @@ module VagrantPlugins
10
10
  class CloneDisk
11
11
  def initialize(app, env)
12
12
  @app = app
13
- @logger = Log4r::Logger.new("vagrant::xenserver::actions::upload_xva")
13
+ @logger = Log4r::Logger.new("vagrant::xenserver::actions::clone_disk")
14
14
  end
15
15
 
16
16
  def call(env)
@@ -7,7 +7,7 @@ module VagrantPlugins
7
7
  class HaltVM
8
8
  def initialize(app, env)
9
9
  @app = app
10
- @logger = Log4r::Logger.new("vagrant::xenserver::actions::start_vm")
10
+ @logger = Log4r::Logger.new("vagrant::xenserver::actions::halt_vm")
11
11
  end
12
12
 
13
13
  def call(env)
@@ -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::upload_xva")
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 = "http://#{hostname}/import?session_id=#{session}&task_id=#{task}"
34
+ url = "https://#{hostname}/import?session_id=#{session}&task_id=#{task}"
35
35
 
36
36
  uploader_options = {}
37
37
  uploader_options[:ui] = env[:ui]
@@ -6,7 +6,7 @@ module VagrantPlugins
6
6
  class ReadState
7
7
  def initialize(app, env)
8
8
  @app = app
9
- @logger = Log4r::Logger.new("vagrant::xenserver::actions::readstate")
9
+ @logger = Log4r::Logger.new("vagrant::xenserver::actions::read_state")
10
10
  end
11
11
 
12
12
  def call(env)
@@ -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
@@ -10,7 +10,7 @@ module VagrantPlugins
10
10
  class UploadVHD
11
11
  def initialize(app, env)
12
12
  @app = app
13
- @logger = Log4r::Logger.new("vagrant::xenserver::actions::upload_xva")
13
+ @logger = Log4r::Logger.new("vagrant::xenserver::actions::upload_vhd")
14
14
  end
15
15
 
16
16
  def call(env)
@@ -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')
@@ -1,6 +1,6 @@
1
1
  module VagrantPlugins
2
2
  module XenServer
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  end
6
6
 
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
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-07-10 00:00:00.000000000 Z
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