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