vagrant-multiprovider-snap 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/LICENSE +1 -1
- data/README.md +22 -10
- data/lib/vagrant-multiprovider-snap/command/rollback.rb +9 -2
- data/lib/vagrant-multiprovider-snap/command/take.rb +9 -2
- data/lib/vagrant-multiprovider-snap/providers/virtualbox/action/snapshot_rollback.rb +1 -1
- data/lib/vagrant-multiprovider-snap/providers/virtualbox/action/snapshot_take.rb +1 -1
- data/lib/vagrant-multiprovider-snap/providers/virtualbox/driver/base.rb +6 -6
- data/lib/vagrant-multiprovider-snap/providers/vmware_fusion/action/snapshot_rollback.rb +2 -2
- data/lib/vagrant-multiprovider-snap/providers/vmware_fusion/action/snapshot_take.rb +1 -1
- data/lib/vagrant-multiprovider-snap/providers/vmware_fusion/driver/base.rb +7 -7
- data/lib/vagrant-multiprovider-snap/providers/vmware_workstation/action/snapshot_rollback.rb +2 -2
- data/lib/vagrant-multiprovider-snap/providers/vmware_workstation/action/snapshot_take.rb +1 -1
- data/lib/vagrant-multiprovider-snap/providers/vmware_workstation/driver/base.rb +7 -7
- data/lib/vagrant-multiprovider-snap/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: 02da544bcb07fe508d365dc393528b7a7b656318
|
4
|
+
data.tar.gz: c9d8a12e14ab03ebe0423f53fe947501044f4f9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a21eed86cf3b8d3d3a3d487d9021d78f46d504694477ad37b56bec79d548c7e9b11d8039a23b1c67c752a169f4685f6b4f891e9c67f4b27e875ef303cf7eb4d
|
7
|
+
data.tar.gz: 42954d9edf17c022c715ff5013b06fdfe5af9e762e6a292a981c7fde93916d6315498546cc6a75086c66aeae1a907fa28167d462ca8eb5de212475e54dd9315f
|
data/CHANGELOG.md
CHANGED
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License
|
2
2
|
|
3
|
-
Copyright (c) 2010-
|
3
|
+
Copyright (c) 2010-2014 The Scale Factory Ltd
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -25,27 +25,34 @@ vagrant plugin install vagrant-multiprovider-snap
|
|
25
25
|
Usage
|
26
26
|
-----
|
27
27
|
|
28
|
-
|
28
|
+
Take a new snapshot:
|
29
29
|
|
30
|
-
|
31
|
-
```vagrant snap take [vm]```
|
30
|
+
vagrant snap take [vm]
|
32
31
|
|
33
|
-
|
34
|
-
```vagrant snap rollback [vm]```
|
32
|
+
Roll back to the last snapshot:
|
35
33
|
|
36
|
-
|
37
|
-
|
34
|
+
vagrant snap rollback [vm]
|
35
|
+
|
36
|
+
List snapshots:
|
37
|
+
|
38
|
+
vagrant snap list [vm]
|
39
|
+
|
40
|
+
Take a custom-named snapshot:
|
41
|
+
|
42
|
+
vagrant snap take [vm] --name=snap01
|
43
|
+
|
44
|
+
Roll back to a named snapshot:
|
45
|
+
|
46
|
+
vagrant snap rollback [vm] --name=snap01
|
38
47
|
|
39
48
|
Limitations
|
40
49
|
-----------
|
41
50
|
|
42
51
|
It's currently not possible to do any of the following:
|
43
52
|
|
44
|
-
* Give a custom snapshot name
|
45
|
-
* Roll back to a specific named snapshot
|
46
53
|
* Disable snapshotting
|
47
54
|
|
48
|
-
My own requirements don't include
|
55
|
+
My own requirements don't include this feature, but I could be tempted to
|
49
56
|
add them if anyone would find them useful.
|
50
57
|
|
51
58
|
|
@@ -80,8 +87,13 @@ vagrant-multiprovider-snap is licensed under the MIT license.
|
|
80
87
|
Thanks
|
81
88
|
------
|
82
89
|
|
90
|
+
vagrant-multiprovider-snap was written, and is maintained by Jon Topper of [The Scale Factory](http://www.scalefactory.com/)
|
91
|
+
|
83
92
|
Many thanks to the following people for contributing to vagrant-multiprovider-snap:
|
84
93
|
|
85
94
|
- Reid Vandewiele
|
86
95
|
- James Sweeny
|
87
96
|
- Steven De Coeyer
|
97
|
+
- Andrew Stangl
|
98
|
+
- Stefan Scherer
|
99
|
+
|
@@ -10,10 +10,17 @@ module VagrantSnap
|
|
10
10
|
def execute
|
11
11
|
|
12
12
|
options = {}
|
13
|
+
options[:snap_name] = nil
|
13
14
|
|
14
15
|
opts = OptionParser.new do |o|
|
15
|
-
|
16
|
+
|
17
|
+
o.banner = "Usage: vagrant snap rollback [vm-name] [--name=<snapname>]"
|
16
18
|
o.separator ""
|
19
|
+
|
20
|
+
o.on("--name SNAPNAME", "Roll back to the named snapshot (defaults to last taken)") do |n|
|
21
|
+
options[:snap_name] = n
|
22
|
+
end
|
23
|
+
|
17
24
|
end
|
18
25
|
|
19
26
|
argv = parse_options(opts)
|
@@ -21,7 +28,7 @@ module VagrantSnap
|
|
21
28
|
|
22
29
|
with_target_vms(argv) do |vm|
|
23
30
|
|
24
|
-
vm.action(:snapshot_rollback)
|
31
|
+
vm.action(:snapshot_rollback, :snap_name => options[:snap_name])
|
25
32
|
|
26
33
|
end
|
27
34
|
|
@@ -10,10 +10,17 @@ module VagrantSnap
|
|
10
10
|
def execute
|
11
11
|
|
12
12
|
options = {}
|
13
|
+
options[:snap_name] = nil
|
13
14
|
|
14
15
|
opts = OptionParser.new do |o|
|
15
|
-
|
16
|
+
|
17
|
+
o.banner = "Usage: vagrant snap take [vm-name] [--name=<snapname>]"
|
16
18
|
o.separator ""
|
19
|
+
|
20
|
+
o.on("--name SNAPNAME", "Use the given name for this snapshot") do |n|
|
21
|
+
options[:snap_name] = n
|
22
|
+
end
|
23
|
+
|
17
24
|
end
|
18
25
|
|
19
26
|
argv = parse_options(opts)
|
@@ -21,7 +28,7 @@ module VagrantSnap
|
|
21
28
|
|
22
29
|
with_target_vms(argv) do |vm|
|
23
30
|
|
24
|
-
vm.action(:snapshot_take)
|
31
|
+
vm.action(:snapshot_take, :snap_name => options[:snap_name])
|
25
32
|
|
26
33
|
end
|
27
34
|
|
@@ -18,7 +18,7 @@ module VagrantPlugins
|
|
18
18
|
# so we need to find the gui state
|
19
19
|
boot_mode = env[:machine].provider_config.gui ? "gui" : "headless"
|
20
20
|
|
21
|
-
env[:machine].provider.driver.snapshot_rollback(boot_mode)
|
21
|
+
env[:machine].provider.driver.snapshot_rollback(boot_mode,env[:snap_name])
|
22
22
|
|
23
23
|
@app.call(env)
|
24
24
|
|
@@ -6,17 +6,17 @@ module VagrantPlugins
|
|
6
6
|
|
7
7
|
class Base
|
8
8
|
|
9
|
-
def snapshot_take
|
10
|
-
execute("snapshot", @uuid, "take", "vagrant-snap-#{Time.now.to_i}", "--pause")
|
9
|
+
def snapshot_take(name)
|
10
|
+
execute("snapshot", @uuid, "take", name || "vagrant-snap-#{Time.now.to_i}", "--pause")
|
11
11
|
end
|
12
12
|
|
13
|
-
def snapshot_rollback(bootmode)
|
13
|
+
def snapshot_rollback(bootmode, name)
|
14
14
|
# don't try to power off if we're already off
|
15
15
|
unless [:poweroff, :aborted].include?(read_state)
|
16
16
|
halt
|
17
17
|
sleep 2 # race condition on locked VMs otherwise?
|
18
18
|
end
|
19
|
-
execute("snapshot", @uuid, "restore", snapshot_list.last)
|
19
|
+
execute("snapshot", @uuid, "restore", name || snapshot_list.last)
|
20
20
|
start(bootmode)
|
21
21
|
end
|
22
22
|
|
@@ -24,11 +24,11 @@ module VagrantPlugins
|
|
24
24
|
info = execute("showvminfo", @uuid, "--machinereadable")
|
25
25
|
snapshots = []
|
26
26
|
info.split("\n").each do |line|
|
27
|
-
if line =~ /^SnapshotName[^=]*="(
|
27
|
+
if line =~ /^SnapshotName[^=]*="(.+?)"$/
|
28
28
|
snapshots << $1.to_s
|
29
29
|
end
|
30
30
|
end
|
31
|
-
snapshots
|
31
|
+
snapshots
|
32
32
|
end
|
33
33
|
|
34
34
|
def has_snapshot?
|
@@ -16,9 +16,9 @@ module HashiCorp
|
|
16
16
|
|
17
17
|
# Snapshot rollback involves powering off and on the VM
|
18
18
|
# so we need to find the gui state
|
19
|
-
boot_mode = env[:machine].provider_config.gui ? "gui" : "
|
19
|
+
boot_mode = env[:machine].provider_config.gui ? "gui" : "nogui"
|
20
20
|
|
21
|
-
env[:machine].provider.driver.snapshot_rollback(boot_mode)
|
21
|
+
env[:machine].provider.driver.snapshot_rollback(boot_mode, env[:snap_name])
|
22
22
|
|
23
23
|
@app.call(env)
|
24
24
|
|
@@ -6,23 +6,23 @@ module HashiCorp
|
|
6
6
|
|
7
7
|
class Fusion
|
8
8
|
|
9
|
-
def snapshot_take
|
10
|
-
vmrun("snapshot", "#{vmx_path}", "vagrant-snap-#{Time.now.to_i}")
|
9
|
+
def snapshot_take(name)
|
10
|
+
vmrun("snapshot", "#{vmx_path}", name || "vagrant-snap-#{Time.now.to_i}")
|
11
11
|
end
|
12
12
|
|
13
|
-
def snapshot_rollback(bootmode)
|
14
|
-
|
15
|
-
|
13
|
+
def snapshot_rollback(bootmode, name)
|
14
|
+
vmrun("revertToSnapshot", "#{vmx_path}", name || snapshot_list.last)
|
15
|
+
start(bootmode)
|
16
16
|
end
|
17
17
|
|
18
18
|
def snapshot_list
|
19
19
|
snapshots = []
|
20
20
|
vmrun("listSnapshots", "#{vmx_path}").stdout.split("\n").each do |line|
|
21
|
-
if line
|
21
|
+
if line !~ /Total snapshot/
|
22
22
|
snapshots << line
|
23
23
|
end
|
24
24
|
end
|
25
|
-
snapshots
|
25
|
+
snapshots
|
26
26
|
end
|
27
27
|
|
28
28
|
def has_snapshot?
|
data/lib/vagrant-multiprovider-snap/providers/vmware_workstation/action/snapshot_rollback.rb
CHANGED
@@ -16,9 +16,9 @@ module HashiCorp
|
|
16
16
|
|
17
17
|
# Snapshot rollback involves powering off and on the VM
|
18
18
|
# so we need to find the gui state
|
19
|
-
boot_mode = env[:machine].provider_config.gui ? "gui" : "
|
19
|
+
boot_mode = env[:machine].provider_config.gui ? "gui" : "nogui"
|
20
20
|
|
21
|
-
env[:machine].provider.driver.snapshot_rollback(boot_mode)
|
21
|
+
env[:machine].provider.driver.snapshot_rollback(boot_mode,env[:snap_name])
|
22
22
|
|
23
23
|
@app.call(env)
|
24
24
|
|
@@ -6,23 +6,23 @@ module HashiCorp
|
|
6
6
|
|
7
7
|
class Base
|
8
8
|
|
9
|
-
def snapshot_take
|
10
|
-
vmrun("snapshot", "#{vmx_path}", "vagrant-snap-#{Time.now.to_i}")
|
9
|
+
def snapshot_take(name)
|
10
|
+
vmrun("snapshot", "#{vmx_path}", name || "vagrant-snap-#{Time.now.to_i}")
|
11
11
|
end
|
12
12
|
|
13
|
-
def snapshot_rollback(bootmode)
|
14
|
-
vmrun("revertToSnapshot", "#{vmx_path}", snapshot_list.last)
|
15
|
-
start
|
13
|
+
def snapshot_rollback(bootmode, name)
|
14
|
+
vmrun("revertToSnapshot", "#{vmx_path}", name || snapshot_list.last)
|
15
|
+
start(bootmode)
|
16
16
|
end
|
17
17
|
|
18
18
|
def snapshot_list
|
19
19
|
snapshots = []
|
20
20
|
vmrun("listSnapshots", "#{vmx_path}").stdout.split("\n").each do |line|
|
21
|
-
if line
|
21
|
+
if line !~ /Total snapshot/
|
22
22
|
snapshots << line
|
23
23
|
end
|
24
24
|
end
|
25
|
-
snapshots
|
25
|
+
snapshots
|
26
26
|
end
|
27
27
|
|
28
28
|
def has_snapshot?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-multiprovider-snap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Topper
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Multi-provider snapshots for Vagrant
|
14
14
|
email:
|