rake-proxmox 0.2.0 → 0.2.1

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: a27b8d9fe5f2c43c1231814abd148e1e0dc29fce
4
- data.tar.gz: 3abb5c780b1f090c8535e6264d43ee02d2bc43f1
3
+ metadata.gz: ddc54a7d1025c0d1d4ef3485b11d91460127e0d5
4
+ data.tar.gz: b9e745a90f770bc202950f1cd5a88d1b44ace6c9
5
5
  SHA512:
6
- metadata.gz: ea997af60dd8df5a89b2b2e50eb3e7c580910cd209c7684759517c2faef8dde96f585ce1625850ae153b5e6f07e92780b9a47797e57d0854862b30c82e2d32d2
7
- data.tar.gz: 5b811e35a87df3463cfb6b92e66fd85f2058a1ae48ba132b39e1d058b109668cd8af641084f51d5bfe1e0aa51458406803324fd18135e1c1125fceff6c04ae9f
6
+ metadata.gz: 8924c943442197af05ab08d4fd5b634e8c4af9a0af9265dbc683332ebed796d120dbf90cee706216e6667c330d181b0790d325c57dd78c772c2e52d15b9d2a76
7
+ data.tar.gz: a017e780493c48b3fd852b4bf1cade426446e175333bde786f9cf6c2bec270ae0a5dc2dddb1062c7ca9ee417364a3eb4e03b8bfa0fe4e94606542ce64fffe1ee
data/lib/rake/proxmox.rb CHANGED
@@ -187,25 +187,39 @@ module Rake
187
187
  update_lxc_status
188
188
  namespace 'proxmox' do
189
189
  desc 'upload template to proxmox storage'
190
- task 'storage:upload:template', %i(filename node storage) \
191
- do |_t, args|
190
+ task 'storage:upload:template', %i[filename
191
+ node
192
+ storage
193
+ force] do |_t, args|
192
194
  args.with_defaults(storage: 'local')
193
195
  args.with_defaults(node: ENV['PROXMOX_NODE'])
196
+ args.with_defaults(force: 'false')
194
197
  # get upload filename
195
198
  upload_file_split = File.split(args.filename)
196
199
  upload_filename = upload_file_split[1]
200
+ upload_size_b = File.size?(args.filename)
197
201
  # validate file does not already exist
198
202
  should_i_upload = true
199
203
  proxmox.list_storage(args.node, args.storage).each do |c|
200
204
  (_c_storage, c_path) = c['volid'].split(':')
201
205
  (_c_content, c_name) = c_path.split('/')
202
206
  next unless c_name == upload_filename
203
- puts "Template #{upload_filename} already on server"
204
- should_i_upload = false
207
+ # check filesize
208
+ if c['size'].to_i >= upload_size_b.to_i
209
+ puts "Template #{upload_filename} already on server"\
210
+ " (#{c['size'].to_i / 1024 / 1024}MB)"
211
+ should_i_upload = false
212
+ else
213
+ puts 'Template on Proxmox node has wrong size.'\
214
+ " Local: #{upload_size_b.to_i / 1024 / 1024}MB"\
215
+ " Proxmox: #{c['size'].to_i / 1024 / 1024}MB"
216
+ end
217
+ # found image leave loop
205
218
  break
206
219
  end
207
- if should_i_upload
208
- puts "upload template: #{args.filename} to #{args.storage}@#{args.node}:\n"
220
+ if should_i_upload || args.force.to_s != 'false'
221
+ puts "upload template: #{args.filename} to "\
222
+ "#{args.storage}@#{args.node}:\n"
209
223
  r = proxmox.upload_template(args.filename, args.node,
210
224
  args.storage)
211
225
  puts "upload result: #{r}"
@@ -213,7 +227,7 @@ module Rake
213
227
  end
214
228
 
215
229
  desc 'list proxmox storage'
216
- task 'storage:list', %i(node storage) do |_t, args|
230
+ task 'storage:list', %i[node storage] do |_t, args|
217
231
  args.with_defaults(storage: 'local')
218
232
  args.with_defaults(node: ENV['PROXMOX_NODE'])
219
233
  print "list_storage: #{args.storage}@#{args.node}:\n"
@@ -223,7 +237,7 @@ module Rake
223
237
  end
224
238
 
225
239
  desc 'list all backup jobs'
226
- task 'cluster:backupjob:list', %i(json) do |_t, args|
240
+ task 'cluster:backupjob:list', %i[json] do |_t, args|
227
241
  # handle arguments
228
242
  args.with_defaults(json: 'false')
229
243
  print_json = /true|1|j|y/ =~ args.json ? true : false
@@ -243,7 +257,7 @@ module Rake
243
257
  end
244
258
 
245
259
  desc 'show details of backup job identified by id'
246
- task 'cluster:backupjob:show', %i(jobid json) do |_t, args|
260
+ task 'cluster:backupjob:show', %i[jobid json] do |_t, args|
247
261
  # handle arguments
248
262
  args.with_defaults(json: 'false')
249
263
  print_json = /true|1|j|y/ =~ args.json ? true : false
@@ -266,7 +280,7 @@ module Rake
266
280
  end
267
281
 
268
282
  desc 'exclude VM id ranges from all backup jobs'
269
- task 'cluster:backupjob:exclude_range', %i(range_min range_max) \
283
+ task 'cluster:backupjob:exclude_range', %i[range_min range_max] \
270
284
  do |_t, args|
271
285
  args.with_defaults(range_min: 900)
272
286
  args.with_defaults(range_max: 999)
@@ -311,7 +325,7 @@ module Rake
311
325
  end
312
326
 
313
327
  desc 'list proxmox backups'
314
- task 'backup:list', %i(vmid node storage) do |_t, args|
328
+ task 'backup:list', %i[vmid node storage] do |_t, args|
315
329
  args.with_defaults(storage: 'local')
316
330
  args.with_defaults(node: ENV['PROXMOX_NODE'])
317
331
  $stderr.puts "backup list vmid:#{args.vmid} #{args.storage}@"\
@@ -334,11 +348,11 @@ module Rake
334
348
  " :storage => 'local',"\
335
349
  " :backup_storage => 'local',"\
336
350
  ' :file]'
337
- task 'backup:restore', %i(vmid
351
+ task 'backup:restore', %i[vmid
338
352
  node
339
353
  storage
340
354
  backup_storage
341
- file) do |_t, args|
355
+ file] do |_t, args|
342
356
  print "restore args: #{args}\n"
343
357
  id = args.vmid.to_i
344
358
  args.with_defaults(storage: 'local')
@@ -352,7 +366,7 @@ module Rake
352
366
 
353
367
  desc 'destroy all but exclude_ids (defaulting to: 6002) separated by'\
354
368
  ' colon(:)'
355
- task 'destroy:all', %i(exclude_ids delete_low_ids) do |t, args|
369
+ task 'destroy:all', %i[exclude_ids delete_low_ids] do |t, args|
356
370
  args.with_defaults(exclude_ids: '6002')
357
371
  args.with_defaults(delete_low_ids: 'false')
358
372
  exclude_ids = args.exclude_ids.split(':').map(&:to_i)
@@ -383,7 +397,7 @@ module Rake
383
397
  # create snapshot of every container
384
398
  desc 'snapshot all but exclude_ids (defaulting to: 6002) separated'\
385
399
  ' by colon(:)'
386
- task 'snapshot:create:all', %i(exclude_ids name desc) do |_t, args|
400
+ task 'snapshot:create:all', %i[exclude_ids name desc] do |_t, args|
387
401
  args.with_defaults(exclude_ids: '6002')
388
402
  args.with_defaults(name: 'rakesnap1')
389
403
  args.with_defaults(desc: 'snapshot taken by rake task')
@@ -401,7 +415,7 @@ module Rake
401
415
  end
402
416
  # delete all snapshots with specific name
403
417
  desc 'delete all snapshots with :name'
404
- task 'snapshot:delete:all', %i(exclude_ids name) do |_t, args|
418
+ task 'snapshot:delete:all', %i[exclude_ids name] do |_t, args|
405
419
  args.with_defaults(exclude_ids: '6002')
406
420
  args.with_defaults(name: 'rakesnap1')
407
421
  exclude_ids = args.exclude_ids.split(':').map(&:to_i)
@@ -430,7 +444,7 @@ module Rake
430
444
  end
431
445
  desc "backup #{prop['name']} [:storage => 'local',"\
432
446
  " :mode => 'snapshot']"
433
- task "backup:create:#{prop['name']}", %i(storage mode) do |_t, args|
447
+ task "backup:create:#{prop['name']}", %i[storage mode] do |_t, args|
434
448
  args.with_defaults(storage: 'local')
435
449
  args.with_defaults(mode: 'snapshot')
436
450
  unless lxc_backup(id, args.storage, args.mode)
@@ -439,9 +453,9 @@ module Rake
439
453
  end
440
454
  desc "restore #{prop['name']} [:storage => 'local',"\
441
455
  ' :file]'
442
- task "backup:restore:#{prop['name']}", %i(storage
456
+ task "backup:restore:#{prop['name']}", %i[storage
443
457
  backup_storage
444
- file) do |_t, args|
458
+ file] do |_t, args|
445
459
  args.with_defaults(storage: 'local')
446
460
  args.with_defaults(backup_storage: 'local')
447
461
  unless lxc_restore(id, args.storage, args.backup_storage,
@@ -451,7 +465,7 @@ module Rake
451
465
  end
452
466
  end
453
467
  desc "snapshot #{prop['name']}"
454
- task "snapshot:create:#{prop['name']}", %i(name desc) do |_t, args|
468
+ task "snapshot:create:#{prop['name']}", %i[name desc] do |_t, args|
455
469
  args.with_defaults(name: 'rakesnap1')
456
470
  args.with_defaults(desc: 'snapshot taken by rake task')
457
471
  unless lxc_snapshot(id, args.name, args.desc)
@@ -1,5 +1,5 @@
1
1
  module Rake
2
2
  module Proxmox
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-proxmox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Lehn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-12-14 00:00:00.000000000 Z
11
+ date: 2018-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler