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