rake-proxmox 0.2.0 → 0.2.1

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: 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