vagrant-proxmox 0.0.8 → 0.0.9

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: 50fcfd510ddb0e1f43e6a95d0247c236ea42fdec
4
- data.tar.gz: 9b92370c07abe2d0d97d8fec096e375ec30ef29b
3
+ metadata.gz: 4565859e642abb0c27f2447e318af6947fa1c1a1
4
+ data.tar.gz: 2d1c4fbf9d77a08728d95a83d2acf818e422b82d
5
5
  SHA512:
6
- metadata.gz: d40ea752d5c8bf0e8ef6b9386c9a17805e48d84b8118654fd601dc6c64768fdbeceda58014f9eca43fc87282d87a1b9591e2d4fdaa9794a5ad79d174e01936b5
7
- data.tar.gz: 95c7d2f1e2d4c429f75389500962d6a3640f91ea351dc6b47aafac3f9401105f8193abd8bd4ec16a62177ec8f8ff4b83725d73a2f5d0dd7b0e79571797ec9518
6
+ metadata.gz: b8e544f6029a57e4c13d2a6b9cf56269879defcce1d8fa34b2f45bbf64bb13d7baad5777f8be94c4b0d5a40fd69cfba29c8d55b2f62ca8cee28db1fd1dfbd2a1
7
+ data.tar.gz: a9f4ef692d5f8eeaa0d11292e1804bda3f3dbad3bc62c3d1c97af5365f0cb4c07761f23e65f1417c36119580e3a2e1d8f31cde880098c625a1a500e08a1c1f75
@@ -9,7 +9,7 @@ module VagrantPlugins
9
9
  end
10
10
 
11
11
  def call env
12
- env[:ui].info I18n.t('vagrant_proxmox.errors.upload_server_error')
12
+ env[:ui].info I18n.t('vagrant_proxmox.errors.server_upload_error')
13
13
  next_action env
14
14
  end
15
15
 
@@ -14,16 +14,16 @@ module VagrantPlugins
14
14
  env[:result] = :ok
15
15
  config = env[:machine].provider_config
16
16
  if config.qemu_iso_file
17
- env[:result] = upload_file env, config.qemu_iso_file
17
+ env[:result] = upload_file env, config.qemu_iso_file, config.replace_qemu_iso_file
18
18
  end
19
19
  next_action env
20
20
  end
21
21
 
22
22
  private
23
- def upload_file env, filename
23
+ def upload_file env, filename, replace
24
24
  if File.exist? filename
25
25
  begin
26
- connection(env).upload_file(filename, content_type: 'iso', node: env[:proxmox_selected_node], storage: 'local')
26
+ connection(env).upload_file(filename, content_type: 'iso', node: env[:proxmox_selected_node], storage: 'local', replace: replace)
27
27
  :ok
28
28
  rescue
29
29
  :server_upload_error
@@ -14,16 +14,16 @@ module VagrantPlugins
14
14
  env[:result] = :ok
15
15
  config = env[:machine].provider_config
16
16
  if config.openvz_template_file
17
- env[:result] = upload_file env, config.openvz_template_file
17
+ env[:result] = upload_file env, config.openvz_template_file, config.replace_openvz_template_file
18
18
  end
19
19
  next_action env
20
20
  end
21
21
 
22
22
  private
23
- def upload_file env, filename
23
+ def upload_file env, filename, replace
24
24
  if File.exist? filename
25
25
  begin
26
- connection(env).upload_file(filename, content_type: 'vztmpl', node: env[:proxmox_selected_node], storage: 'local')
26
+ connection(env).upload_file(filename, content_type: 'vztmpl', node: env[:proxmox_selected_node], storage: 'local', replace: replace)
27
27
  :ok
28
28
  rescue
29
29
  :server_upload_error
@@ -37,6 +37,11 @@ module VagrantPlugins
37
37
  # @return [String]
38
38
  attr_accessor :openvz_template_file
39
39
 
40
+ # Should the openvz os template be replaced (deleted before upload)?
41
+ #
42
+ # @return [Boolean]
43
+ attr_accessor :replace_openvz_template_file
44
+
40
45
  # The id range to use for the virtual machines
41
46
  #
42
47
  # @return [Range]
@@ -102,6 +107,11 @@ module VagrantPlugins
102
107
  # @return [String]
103
108
  attr_accessor :qemu_iso_file
104
109
 
110
+ # Should the qemu iso file replaced (deleted before upload)?
111
+ #
112
+ # @return [Boolean]
113
+ attr_accessor :replace_qemu_iso_file
114
+
105
115
  # The qemu disk size to use for the virtual machine, e.g. '30G'
106
116
  #
107
117
  # @return [String]
@@ -133,6 +143,7 @@ module VagrantPlugins
133
143
  @vm_type = UNSET_VALUE
134
144
  @openvz_os_template = UNSET_VALUE
135
145
  @openvz_template_file = UNSET_VALUE
146
+ @replace_openvz_template_file = false
136
147
  @vm_id_range = 900..999
137
148
  @vm_name_prefix = 'vagrant_'
138
149
  @vm_memory = 512
@@ -146,6 +157,7 @@ module VagrantPlugins
146
157
  @qemu_sockets = 1
147
158
  @qemu_iso = UNSET_VALUE
148
159
  @qemu_iso_file = UNSET_VALUE
160
+ @replace_qemu_iso_file = false
149
161
  @qemu_disk_size = UNSET_VALUE
150
162
  @qemu_storage = 'raid'
151
163
  @qemu_nic_model = 'e1000'
@@ -126,7 +126,8 @@ module VagrantPlugins
126
126
  free_vm_ids.empty? ? raise(VagrantPlugins::Proxmox::Errors::NoVmIdAvailable) : free_vm_ids.first
127
127
  end
128
128
 
129
- def upload_file file, content_type: required('content_type'), node: required('node'), storage: required('storage')
129
+ def upload_file file, content_type: required('content_type'), node: required('node'), storage: required('storage'), replace: false
130
+ delete_file(filename: file, content_type: content_type, node: node, storage: storage) if replace
130
131
  unless is_file_in_storage? filename: file, node: node, storage: storage
131
132
  res = post "/nodes/#{node}/storage/#{storage}/upload", content: content_type,
132
133
  filename: File.new(file, 'rb'), node: node, storage: storage
@@ -134,6 +135,10 @@ module VagrantPlugins
134
135
  end
135
136
  end
136
137
 
138
+ def delete_file filename: required('filename'), content_type: required('content_type'), node: required('node'), storage: required('storage')
139
+ delete "/nodes/#{node}/storage/#{storage}/content/#{content_type}/#{File.basename filename}"
140
+ end
141
+
137
142
  def list_storage_files node: required('node'), storage: required('storage')
138
143
  res = get "/nodes/#{node}/storage/#{storage}/content"
139
144
  res[:data].map { |e| e[:volid] }
@@ -146,9 +151,9 @@ module VagrantPlugins
146
151
  def get_vm_info vm_id
147
152
  response = get '/cluster/resources?type=vm'
148
153
  response[:data]
149
- .select { |m| m[:id] =~ /^[a-z]*\/#{vm_id}$/ }
150
- .map { |m| {id: vm_id, type: /^(.*)\/(.*)$/.match(m[:id])[1], node: m[:node]} }
151
- .first
154
+ .select { |m| m[:id] =~ /^[a-z]*\/#{vm_id}$/ }
155
+ .map { |m| {id: vm_id, type: /^(.*)\/(.*)$/.match(m[:id])[1], node: m[:node]} }
156
+ .first
152
157
  end
153
158
 
154
159
  private
@@ -175,7 +180,7 @@ module VagrantPlugins
175
180
  end
176
181
 
177
182
  private
178
- def delete path
183
+ def delete path, params = {}
179
184
  begin
180
185
  response = RestClient.delete "#{api_url}#{path}", headers
181
186
  JSON.parse response.to_s, symbolize_names: true
@@ -1,7 +1,7 @@
1
1
  module VagrantPlugins
2
2
  module Proxmox
3
3
 
4
- VERSION = '0.0.8'
4
+ VERSION = '0.0.9'
5
5
 
6
6
  end
7
7
  end
data/locales/en.yml CHANGED
@@ -40,6 +40,8 @@ en:
40
40
  stop_vm_timeout: |-
41
41
  Stopping the vm on the proxmox server timed out.
42
42
  timeout: 'Timeout error'
43
+ upload_timeout: |-
44
+ Uploading a file to the proxmox server timed out.
43
45
  vm_create_error: |-
44
46
  Unable to create the virtual machine!
45
47
 
@@ -64,7 +66,7 @@ en:
64
66
  VM must be running to execute this command. Run `vagrant up`
65
67
  to start the virtual machine.
66
68
  file_not_found: "File for upload not found"
67
- upload_server_error: "Error during upload"
69
+ server_upload_error: "Error during upload"
68
70
  ssh_error: Unable to establish an ssh connection to the virtual machine...
69
71
  no_vm_type_specified: "No vm_type specified"
70
72
  no_qemu_iso_or_qemu_iso_file_specified_for_vm_type_openvz: "No qemu_iso or qemu_iso_file specified for vm_type=:qemu"
@@ -11,29 +11,41 @@ module VagrantPlugins::Proxmox
11
11
  proxmox_connection: connection, proxmox_selected_node: node} }
12
12
  let(:iso_file) { 'some_iso.iso' }
13
13
  let(:iso_file_exists) { true }
14
+ let(:replace_iso_file) { false }
14
15
  let(:node) { 'node1' }
15
16
 
16
17
  subject(:action) { described_class.new(-> (_) {}, environment) }
17
18
 
18
19
  before do
19
20
  env[:machine].provider_config.qemu_iso_file = iso_file
21
+ env[:machine].provider_config.replace_qemu_iso_file = replace_iso_file
20
22
  allow(File).to receive(:exist?).with(iso_file).and_return(iso_file_exists)
21
23
  end
22
24
 
23
25
  context 'with a specified iso file' do
24
26
 
25
27
  it 'should upload the iso file into the local storage of the selected node' do
26
- expect(connection).to receive(:upload_file).with(iso_file, content_type: 'iso', node: node, storage: 'local')
28
+ expect(connection).to receive(:upload_file).with(iso_file, content_type: 'iso', node: node, storage: 'local', replace: replace_iso_file)
27
29
  action.call env
28
30
  end
29
31
  end
30
32
 
31
33
  it 'should return :ok after a successful upload' do
32
- allow(connection).to receive(:upload_file).with(iso_file, content_type: 'iso', node: node, storage: 'local')
34
+ allow(connection).to receive(:upload_file).with(iso_file, content_type: 'iso', node: node, storage: 'local', replace: replace_iso_file)
33
35
  action.call env
34
36
  expect(env[:result]).to eq(:ok)
35
37
  end
36
38
 
39
+ context 'The iso file should be replaced' do
40
+
41
+ let(:replace_iso_file) { true }
42
+
43
+ it 'should delete the iso file on the server' do
44
+ expect(connection).to receive(:delete_file).with(filename: iso_file, content_type: 'iso', node: node, storage: 'local')
45
+ action.call env
46
+ end
47
+ end
48
+
37
49
  context 'when a server error occurs' do
38
50
 
39
51
  before do
@@ -67,4 +79,4 @@ module VagrantPlugins::Proxmox
67
79
  end
68
80
  end
69
81
  end
70
- end
82
+ end
@@ -11,29 +11,41 @@ module VagrantPlugins::Proxmox
11
11
  proxmox_connection: connection, proxmox_selected_node: node} }
12
12
  let(:template_file) { 'template.tar.gz' }
13
13
  let(:template_file_exists) { true }
14
+ let(:replace_template_file) { false }
14
15
  let(:node) { 'node1' }
15
16
 
16
17
  subject(:action) { described_class.new(-> (_) {}, environment) }
17
18
 
18
19
  before do
19
20
  env[:machine].provider_config.openvz_template_file = template_file
21
+ env[:machine].provider_config.replace_openvz_template_file = replace_template_file
20
22
  allow(File).to receive(:exist?).with(template_file).and_return(template_file_exists)
21
23
  end
22
24
 
23
25
  context 'with a specified template file' do
24
26
 
25
27
  it 'should upload the template file into the local storage of the selected node' do
26
- expect(connection).to receive(:upload_file).with(template_file, content_type: 'vztmpl', node: node, storage: 'local')
28
+ expect(connection).to receive(:upload_file).with(template_file, content_type: 'vztmpl', node: node, storage: 'local', replace: replace_template_file)
27
29
  action.call env
28
30
  end
29
31
  end
30
32
 
31
33
  it 'should return :ok after a successful upload' do
32
- allow(connection).to receive(:upload_file).with(template_file, content_type: 'vztmpl', node: node, storage: 'local')
34
+ allow(connection).to receive(:upload_file).with(template_file, content_type: 'vztmpl', node: node, storage: 'local', replace: replace_template_file)
33
35
  action.call env
34
36
  expect(env[:result]).to eq(:ok)
35
37
  end
36
38
 
39
+ context 'the template file should be replaced' do
40
+
41
+ let(:replace_template_file) { true }
42
+
43
+ it 'should delete the template file on the server' do
44
+ expect(connection).to receive(:delete_file).with(filename: template_file, content_type: 'vztmpl', node: node, storage: 'local')
45
+ action.call env
46
+ end
47
+ end
48
+
37
49
  context 'when a server error occurs' do
38
50
 
39
51
  before do
@@ -67,4 +79,4 @@ module VagrantPlugins::Proxmox
67
79
  end
68
80
  end
69
81
  end
70
- end
82
+ end
data/spec/config_spec.rb CHANGED
@@ -36,6 +36,11 @@ describe VagrantPlugins::Proxmox::Config do
36
36
  it { is_expected.to be_nil }
37
37
  end
38
38
 
39
+ describe '#replace_openvz_template_file' do
40
+ subject { super().replace_openvz_template_file }
41
+ it { is_expected.to eq(false) }
42
+ end
43
+
39
44
  describe '#vm_id_range' do
40
45
  subject { super().vm_id_range }
41
46
  it { is_expected.to eq(900..999) }
@@ -91,6 +96,11 @@ describe VagrantPlugins::Proxmox::Config do
91
96
  it { is_expected.to be_nil }
92
97
  end
93
98
 
99
+ describe '#replace_qemu_iso_file' do
100
+ subject { super().replace_qemu_iso_file }
101
+ it { is_expected.to eq(false) }
102
+ end
103
+
94
104
  describe '#qemu_disk_size' do
95
105
  subject { super().qemu_disk_size }
96
106
  it { is_expected.to be_nil }
@@ -103,8 +113,10 @@ describe VagrantPlugins::Proxmox::Config do
103
113
  let(:proxmox_qemu_iso) { '' }
104
114
  let(:proxmox_openvz_os_template) { "proxmox.openvz_os_template = 'local:vztmpl/template.tar.gz'" }
105
115
  let(:proxmox_openvz_template_file) { '' }
116
+ let(:proxmox_replace_openvz_template_file) { '' }
106
117
  let(:proxmox_vm_type) { 'proxmox.vm_type = :openvz' }
107
118
  let(:proxmox_qemu_iso_file) { '' }
119
+ let(:proxmox_replace_qemu_iso_file) { '' }
108
120
  let(:proxmox_qemu_disk_size) { '' }
109
121
  let(:vagrantfile_content) { "
110
122
  Vagrant.configure('2') do |config|
@@ -115,8 +127,10 @@ Vagrant.configure('2') do |config|
115
127
  #{proxmox_vm_type}
116
128
  #{proxmox_openvz_os_template}
117
129
  #{proxmox_openvz_template_file}
130
+ #{proxmox_replace_openvz_template_file}
118
131
  #{proxmox_qemu_iso}
119
132
  #{proxmox_qemu_iso_file}
133
+ #{proxmox_replace_qemu_iso_file}
120
134
  #{proxmox_qemu_disk_size}
121
135
  proxmox.vm_id_range = 900..910
122
136
  proxmox.vm_name_prefix = 'vagrant_test_'
@@ -183,6 +197,17 @@ end
183
197
  end
184
198
  end
185
199
 
200
+ context 'with a new template file to be overwritten' do
201
+ let(:proxmox_replace_openvz_template_file) { 'proxmox.replace_openvz_template_file = true' }
202
+
203
+ describe '#openvz_template_file' do
204
+ before do
205
+ end
206
+ subject { super().replace_openvz_template_file }
207
+ it { is_expected.to eq(true) }
208
+ end
209
+ end
210
+
186
211
  describe '#vm_id_range' do
187
212
  subject { super().vm_id_range }
188
213
  it { is_expected.to eq(900..910) }
@@ -338,7 +363,7 @@ end
338
363
 
339
364
  context 'when the disk size contains a unit' do
340
365
 
341
- let (:proxmox_qemu_disk_size) {"proxmox.qemu_disk_size = '15G' "}
366
+ let (:proxmox_qemu_disk_size) { "proxmox.qemu_disk_size = '15G' " }
342
367
 
343
368
  it 'should be converted into gigabytes' do
344
369
  expect(config.qemu_disk_size).to eq('15')
@@ -611,6 +611,7 @@ module VagrantPlugins::Proxmox
611
611
  describe '#upload_file' do
612
612
 
613
613
  let (:file) { '/my/dir/template.tar.gz' }
614
+ let (:replace_openvz_template_file) { false }
614
615
  let (:storage_file_list) { [] }
615
616
 
616
617
  before do
@@ -640,11 +641,57 @@ module VagrantPlugins::Proxmox
640
641
 
641
642
  let (:storage_file_list) { [{volid: 'local:vztmpl/template.tar.gz'}] }
642
643
 
643
- it 'should not upload the file' do
644
- expect(connection).not_to receive(:post).with('/nodes/localhost/storage/local/upload', anything())
645
- connection.upload_file file, content_type: 'vztmpl', node: 'localhost', storage: 'local'
644
+ context 'when the file is not set to be replaced' do
645
+
646
+ it 'should not upload the file' do
647
+ expect(connection).not_to receive(:post).with('/nodes/localhost/storage/local/upload', anything())
648
+ connection.upload_file file, content_type: 'vztmpl', node: 'localhost', storage: 'local'
649
+ end
650
+ end
651
+
652
+ context 'when the file is set to be replaced' do
653
+
654
+ let (:replace_openvz_template_file) { true }
655
+
656
+ it 'should delete the file before upload' do
657
+ expect(connection).to receive(:delete_file).with(filename: file, content_type: 'vztmpl', node: 'localhost', storage: 'local')
658
+ connection.upload_file file, content_type: 'vztmpl', node: 'localhost', storage: 'local', replace: true
659
+ end
660
+ end
661
+ end
662
+ end
663
+
664
+ describe '#delete_file' do
665
+
666
+ let (:file) { '/my/dir/template.tar.gz' }
667
+ let (:replace_openvz_template_file) { true }
668
+ let (:storage_file_list) { [] }
669
+
670
+ before do
671
+ allow(connection).to receive_messages :post => {data: 'task_id'}.to_json
672
+ allow(connection).to receive_messages :wait_for_completion => 'OK'
673
+ allow(connection).to receive_messages :get_vm_info => vm_info
674
+ end
675
+
676
+ it 'waits for completion of the server task' do
677
+ expect(connection).to receive(:wait_for_completion)
678
+ connection.stop_vm '100'
679
+ end
680
+
681
+ it 'should return the task exit status' do
682
+ expect(connection.stop_vm('100')).to eq('OK')
683
+ end
684
+
685
+ context 'the file exists in the storage' do
686
+
687
+ let (:storage_file_list) { [{volid: 'local:vztmpl/template.tar.gz'}] }
688
+
689
+ it 'should delete the file from the storage' do
690
+ expect(connection).to receive(:delete).with("/nodes/localhost/storage/local/content/iso/template.tar.gz")
691
+ connection.delete_file filename: file, content_type: 'iso', node: 'localhost', storage: 'local'
646
692
  end
647
693
  end
694
+
648
695
  end
649
696
 
650
697
  describe '#list_storage_files' do
@@ -659,4 +706,4 @@ module VagrantPlugins::Proxmox
659
706
  end
660
707
  end
661
708
  end
662
- end
709
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-proxmox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dirk Grappendorf
@@ -10,118 +10,118 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-05-26 00:00:00.000000000 Z
13
+ date: 2015-06-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-client
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ~>
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
21
  version: 1.6.7
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ~>
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
28
  version: 1.6.7
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: retryable
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ~>
33
+ - - "~>"
34
34
  - !ruby/object:Gem::Version
35
35
  version: 1.3.3
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ~>
40
+ - - "~>"
41
41
  - !ruby/object:Gem::Version
42
42
  version: 1.3.3
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: activesupport
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ~>
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
49
  version: 4.0.0
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - ~>
54
+ - - "~>"
55
55
  - !ruby/object:Gem::Version
56
56
  version: 4.0.0
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: rake
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - '>='
61
+ - - ">="
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - '>='
68
+ - - ">="
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rspec
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - ~>
75
+ - - "~>"
76
76
  - !ruby/object:Gem::Version
77
77
  version: 3.0.0
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ~>
82
+ - - "~>"
83
83
  - !ruby/object:Gem::Version
84
84
  version: 3.0.0
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: simplecov
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ~>
89
+ - - "~>"
90
90
  - !ruby/object:Gem::Version
91
91
  version: 0.9.0
92
92
  type: :development
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - ~>
96
+ - - "~>"
97
97
  - !ruby/object:Gem::Version
98
98
  version: 0.9.0
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: simplecov-rcov
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
- - - ~>
103
+ - - "~>"
104
104
  - !ruby/object:Gem::Version
105
105
  version: 0.2.3
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - ~>
110
+ - - "~>"
111
111
  - !ruby/object:Gem::Version
112
112
  version: 0.2.3
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: geminabox
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ~>
117
+ - - "~>"
118
118
  - !ruby/object:Gem::Version
119
119
  version: 0.11.1
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - ~>
124
+ - - "~>"
125
125
  - !ruby/object:Gem::Version
126
126
  version: 0.11.1
127
127
  - !ruby/object:Gem::Dependency
@@ -142,70 +142,70 @@ dependencies:
142
142
  name: libnotify
143
143
  requirement: !ruby/object:Gem::Requirement
144
144
  requirements:
145
- - - ~>
145
+ - - "~>"
146
146
  - !ruby/object:Gem::Version
147
147
  version: 0.8.3
148
148
  type: :development
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
- - - ~>
152
+ - - "~>"
153
153
  - !ruby/object:Gem::Version
154
154
  version: 0.8.3
155
155
  - !ruby/object:Gem::Dependency
156
156
  name: timecop
157
157
  requirement: !ruby/object:Gem::Requirement
158
158
  requirements:
159
- - - ~>
159
+ - - "~>"
160
160
  - !ruby/object:Gem::Version
161
161
  version: 0.7.1
162
162
  type: :development
163
163
  prerelease: false
164
164
  version_requirements: !ruby/object:Gem::Requirement
165
165
  requirements:
166
- - - ~>
166
+ - - "~>"
167
167
  - !ruby/object:Gem::Version
168
168
  version: 0.7.1
169
169
  - !ruby/object:Gem::Dependency
170
170
  name: cucumber
171
171
  requirement: !ruby/object:Gem::Requirement
172
172
  requirements:
173
- - - ~>
173
+ - - "~>"
174
174
  - !ruby/object:Gem::Version
175
175
  version: 1.3.15
176
176
  type: :development
177
177
  prerelease: false
178
178
  version_requirements: !ruby/object:Gem::Requirement
179
179
  requirements:
180
- - - ~>
180
+ - - "~>"
181
181
  - !ruby/object:Gem::Version
182
182
  version: 1.3.15
183
183
  - !ruby/object:Gem::Dependency
184
184
  name: webmock
185
185
  requirement: !ruby/object:Gem::Requirement
186
186
  requirements:
187
- - - ~>
187
+ - - "~>"
188
188
  - !ruby/object:Gem::Version
189
189
  version: 1.18.0
190
190
  type: :development
191
191
  prerelease: false
192
192
  version_requirements: !ruby/object:Gem::Requirement
193
193
  requirements:
194
- - - ~>
194
+ - - "~>"
195
195
  - !ruby/object:Gem::Version
196
196
  version: 1.18.0
197
197
  - !ruby/object:Gem::Dependency
198
198
  name: awesome_print
199
199
  requirement: !ruby/object:Gem::Requirement
200
200
  requirements:
201
- - - ~>
201
+ - - "~>"
202
202
  - !ruby/object:Gem::Version
203
203
  version: 1.2.0
204
204
  type: :development
205
205
  prerelease: false
206
206
  version_requirements: !ruby/object:Gem::Requirement
207
207
  requirements:
208
- - - ~>
208
+ - - "~>"
209
209
  - !ruby/object:Gem::Version
210
210
  version: 1.2.0
211
211
  description: Enables Vagrant to manage virtual machines on a Proxmox server.
@@ -302,17 +302,17 @@ require_paths:
302
302
  - lib
303
303
  required_ruby_version: !ruby/object:Gem::Requirement
304
304
  requirements:
305
- - - '>='
305
+ - - ">="
306
306
  - !ruby/object:Gem::Version
307
307
  version: '2'
308
308
  required_rubygems_version: !ruby/object:Gem::Requirement
309
309
  requirements:
310
- - - '>='
310
+ - - ">="
311
311
  - !ruby/object:Gem::Version
312
312
  version: '0'
313
313
  requirements: []
314
314
  rubyforge_project:
315
- rubygems_version: 2.2.2
315
+ rubygems_version: 2.4.6
316
316
  signing_key:
317
317
  specification_version: 4
318
318
  summary: Enables Vagrant to manage virtual machines on a Proxmox server.