vagrant-multiprovider-snap 0.0.11 → 0.0.12

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: cc2a043450ab4350c0d45503dfc522de033e2141
4
- data.tar.gz: 61872d1d00b817b1625abe20d37f5174f2c9dfba
3
+ metadata.gz: 02da544bcb07fe508d365dc393528b7a7b656318
4
+ data.tar.gz: c9d8a12e14ab03ebe0423f53fe947501044f4f9f
5
5
  SHA512:
6
- metadata.gz: 361ed7cc56cf1f7b4332c6d21308204387c48af1052f8b1af95673eac991e6a996ccb83a492eed9a2c727cdf650c1456eb5b21ee418a141b8809328b01b11a93
7
- data.tar.gz: 88020e159880b6f1207ea52ae609ce3639cb39d5022bd86adebf6aa34e73fcf465511618dcaac153364950120b56a7986f74f52afb820922046a8a2bb93d9a1d
6
+ metadata.gz: 2a21eed86cf3b8d3d3a3d487d9021d78f46d504694477ad37b56bec79d548c7e9b11d8039a23b1c67c752a169f4685f6b4f891e9c67f4b27e875ef303cf7eb4d
7
+ data.tar.gz: 42954d9edf17c022c715ff5013b06fdfe5af9e762e6a292a981c7fde93916d6315498546cc6a75086c66aeae1a907fa28167d462ca8eb5de212475e54dd9315f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.0.12 (August 10, 2014)
2
+
3
+ - Support named snapshots and arbitrary rollback
4
+ - Ensure GUI-enabled VMWare VMs roll back with the GUI active
5
+
1
6
  ## 0.0.11 (April 28, 2014)
2
7
 
3
8
  - Wait for SSH readiness on rolled-back VMWare VMs
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License
2
2
 
3
- Copyright (c) 2010-2013 The Scale Factory Ltd
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
- Typical usage:
28
+ Take a new snapshot:
29
29
 
30
- * Take a new snapshot
31
- ```vagrant snap take [vm]```
30
+ vagrant snap take [vm]
32
31
 
33
- * Roll back to the last snapshot
34
- ```vagrant snap rollback [vm]```
32
+ Roll back to the last snapshot:
35
33
 
36
- * List snapshots
37
- ```vagrant snap list [vm]```
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 these features, but I could be tempted to
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
- o.banner = "Usage: vagrant snap rollback [vm-name]"
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
- o.banner = "Usage: vagrant snap take [vm-name]"
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
 
@@ -13,7 +13,7 @@ module VagrantPlugins
13
13
  def call(env)
14
14
 
15
15
  env[:ui].info I18n.t("vagrant_snap.actions.vm.snapshot_take.taking")
16
- env[:machine].provider.driver.snapshot_take
16
+ env[:machine].provider.driver.snapshot_take(env[:snap_name])
17
17
 
18
18
  @app.call(env)
19
19
 
@@ -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[^=]*="(vagrant-snap-.+?)"$/
27
+ if line =~ /^SnapshotName[^=]*="(.+?)"$/
28
28
  snapshots << $1.to_s
29
29
  end
30
30
  end
31
- snapshots.sort
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" : "headless"
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
 
@@ -13,7 +13,7 @@ module HashiCorp
13
13
  def call(env)
14
14
 
15
15
  env[:ui].info I18n.t("vagrant_snap.actions.vm.snapshot_take.taking")
16
- env[:machine].provider.driver.snapshot_take
16
+ env[:machine].provider.driver.snapshot_take(env[:snap_name])
17
17
 
18
18
  @app.call(env)
19
19
 
@@ -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
- 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 =~ /^vagrant-snap-/
21
+ if line !~ /Total snapshot/
22
22
  snapshots << line
23
23
  end
24
24
  end
25
- snapshots.sort
25
+ snapshots
26
26
  end
27
27
 
28
28
  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" : "headless"
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
 
@@ -13,7 +13,7 @@ module HashiCorp
13
13
  def call(env)
14
14
 
15
15
  env[:ui].info I18n.t("vagrant_snap.actions.vm.snapshot_take.taking")
16
- env[:machine].provider.driver.snapshot_take
16
+ env[:machine].provider.driver.snapshot_take(env[:snap_name])
17
17
 
18
18
  @app.call(env)
19
19
 
@@ -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 =~ /^vagrant-snap-/
21
+ if line !~ /Total snapshot/
22
22
  snapshots << line
23
23
  end
24
24
  end
25
- snapshots.sort
25
+ snapshots
26
26
  end
27
27
 
28
28
  def has_snapshot?
@@ -1,5 +1,5 @@
1
1
  module Vagrant
2
2
  module Snap
3
- VERSION = "0.0.11"
3
+ VERSION = "0.0.12"
4
4
  end
5
5
  end
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.11
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-04-28 00:00:00.000000000 Z
11
+ date: 2014-08-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Multi-provider snapshots for Vagrant
14
14
  email: