vagrant-xenserver 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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