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 +4 -4
- data/lib/rake/proxmox.rb +34 -20
- data/lib/rake/proxmox/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ddc54a7d1025c0d1d4ef3485b11d91460127e0d5
|
4
|
+
data.tar.gz: b9e745a90f770bc202950f1cd5a88d1b44ace6c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
191
|
-
|
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
|
-
|
204
|
-
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
351
|
+
task 'backup:restore', %i[vmid
|
338
352
|
node
|
339
353
|
storage
|
340
354
|
backup_storage
|
341
|
-
file
|
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
|
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
|
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
|
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
|
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
|
456
|
+
task "backup:restore:#{prop['name']}", %i[storage
|
443
457
|
backup_storage
|
444
|
-
file
|
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
|
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)
|
data/lib/rake/proxmox/version.rb
CHANGED
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.
|
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:
|
11
|
+
date: 2018-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|