vagrant-persistent-storage 0.0.48 → 0.0.49

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
  SHA256:
3
- metadata.gz: 9b2fdbe71f4317552272c4a3763d1e8bd5f98dd38bd54c28eea188dc3cfa6eb5
4
- data.tar.gz: 6e8b86f309aa085be92810b37e85d3578480935a34d8c843d396fdd8fd085cd1
3
+ metadata.gz: 6c747645f753d9dcc3692e127df6c78c5b05cfc037853adcb39bf45d3c6d0376
4
+ data.tar.gz: df800f9b0f6c6a16fd8be1838a3c767e350af8c83f7744570b4177baa413836d
5
5
  SHA512:
6
- metadata.gz: 4bf0725cb73422ac9fdbd0042b2b6898c75e41d7aaa2bae9831f40d10a14cf778664fb2e32c7765b1965f1961a24d7e306effa9503fd9d8711fe2369e47cbf11
7
- data.tar.gz: 569058fb3a18680ab9bf6d7573a0b768c94c278abc101d149e81c164ae9b244338e8231a9abf936367e39dd0bd8e276308e838883e9932520c29e38972fae7f9
6
+ metadata.gz: 2e1324f22d8ba5bbf67c30ae7b526fd7602db17bf2abed14443f82087739d2715802eb86593a9a07b0d267c794d4fa99cd764f4eede20340451a7f9165f525da
7
+ data.tar.gz: 1679290b6c4993d87df4064f41908032d5bf8da4a0d10a3545293cdd1231398b41e950015ba71d318831fa6838894b715d9d28d9c70339d75b088675fb16e65d
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A Vagrant plugin that creates a persistent storage and attaches it to guest machine.
4
4
 
5
- Requires Virtualbox 5
5
+ Requires Virtualbox 5/6
6
6
 
7
7
  ## Installation
8
8
 
@@ -24,7 +24,7 @@ config.persistent_storage.mountpoint = '/var/lib/mysql'
24
24
  config.persistent_storage.volgroupname = 'myvolgroup'
25
25
  ```
26
26
 
27
- With `config.persistent_storage.mountoptions` you can change the mount options (default: defaults).
27
+ With `config.persistent_storage.mountoptions` you can change the mount options (default: defaults).
28
28
  An example which sets `prjquota` option with xfs.
29
29
  ```ruby
30
30
  config.persistent_storage.mountname = 'xfs'
@@ -48,17 +48,26 @@ When you expect a lot of writes in the disk (the case for `/home` mountpoints) i
48
48
  config.persistent_storage.variant = 'Fixed'
49
49
  ```
50
50
 
51
+ If you want to pass a list of options to the underlying `VboxManage
52
+ storageattach` call, you can use the `config.persistent_storage.attachoptions`
53
+ option. For instance, if you want to enable TRIM support:
54
+
55
+ ```ruby
56
+ config.persistent_storage.mountoptions = ['defaults', 'discard']
57
+ config.persistent_storage.attachoptions = ['--discard', 'on']
58
+ ```
59
+
51
60
  Every `vagrant up` will attach this file as hard disk to the guest machine.
52
61
  A `vagrant destroy` will detach the storage to avoid deletion of the storage by vagrant.
53
62
  A `vagrant destroy` generally destroys all attached drives. See [VBoxManage unregistervm --delete option][vboxmanage_delete].
54
63
 
55
- The disk is initialized and added to it's own volume group as specfied in the config;
64
+ The disk is initialized and added to it's own volume group as specfied in the config;
56
65
  this defaults to 'vagrant'. An ext4 filesystem is created and the disk mounted appropriately,
57
66
  with entries added to fstab ... subsequent runs will mount this disk with the options specified.
58
67
 
59
68
  ## Windows Guests
60
69
 
61
- Windows Guests must use the WinRM communicator by setting `vm.communicator = 'winrm'`. An additional option is provided to
70
+ Windows Guests must use the WinRM communicator by setting `vm.communicator = 'winrm'`. An additional option is provided to
62
71
  allow you to set the drive letter using:
63
72
 
64
73
  ```ruby
@@ -115,6 +124,7 @@ If your box is not using LVM you must set `config.persistent_storage.use_lvm = f
115
124
  * [Francesco](https://github.com/cisco87)
116
125
  * [Dimitris Aragiorgis](https://github.com/dimara)
117
126
  * [Symaxion](https://github.com/Symaxion)
127
+ * [Alex Pyrgiotis](https://github.com/apyrgio)
118
128
 
119
129
  ## TODO
120
130
 
@@ -24,7 +24,8 @@ module VagrantPlugins
24
24
 
25
25
  env[:ui].info I18n.t("vagrant_persistent_storage.action.attach_storage")
26
26
  location = env[:machine].config.persistent_storage.location
27
- env[:machine].provider.driver.attach_storage(location)
27
+ attachoptions = env[:machine].config.persistent_storage.attachoptions
28
+ env[:machine].provider.driver.attach_storage(location, attachoptions)
28
29
 
29
30
  @app.call(env)
30
31
 
@@ -17,6 +17,7 @@ module VagrantPlugins
17
17
  attr_accessor :mountname
18
18
  attr_accessor :mountpoint
19
19
  attr_accessor :mountoptions
20
+ attr_accessor :attachoptions
20
21
  attr_accessor :partition
21
22
  attr_accessor :diskdevice
22
23
  attr_accessor :filesystem
@@ -46,6 +47,7 @@ module VagrantPlugins
46
47
  @mountname = UNSET_VALUE
47
48
  @mountpoint = UNSET_VALUE
48
49
  @mountoptions = UNSET_VALUE
50
+ @attachoptions = UNSET_VALUE
49
51
  @diskdevice = UNSET_VALUE
50
52
  @filesystem = UNSET_VALUE
51
53
  @volgroupname = UNSET_VALUE
@@ -68,6 +70,7 @@ module VagrantPlugins
68
70
  @mountname = "" if @mountname == UNSET_VALUE
69
71
  @mountpoint = "" if @mountpoint == UNSET_VALUE
70
72
  @mountoptions = [] if @mountoptions == UNSET_VALUE
73
+ @attachoptions = [] if @attachoptions == UNSET_VALUE
71
74
  @diskdevice = "" if @diskdevice == UNSET_VALUE
72
75
  @filesystem = "" if @filesystem == UNSET_VALUE
73
76
  @volgroupname = "" if @volgroupname == UNSET_VALUE
@@ -15,7 +15,7 @@ module VagrantPlugins
15
15
  execute("storagectl", @uuid, "--name", controller_name, "--" + (self.remove_prefix(@version) ? "" : "sata") + "portcount", "2")
16
16
  end
17
17
  end
18
-
18
+
19
19
  def remove_prefix(vbox_version)
20
20
  return vbox_version.start_with?("4.3") || vbox_version.start_with?("5.") || vbox_version.start_with?("6.")
21
21
  end
@@ -24,7 +24,7 @@ module VagrantPlugins
24
24
  execute("createhd", "--filename", File.expand_path(location), "--size", "#{size}", "--variant", "#{variant}")
25
25
  end
26
26
 
27
- def attach_storage(location)
27
+ def attach_storage(location, attachoptions)
28
28
  controller_name = get_controller_name
29
29
  if controller_name.nil?
30
30
  controller_name = "SATA Controller"
@@ -32,15 +32,15 @@ module VagrantPlugins
32
32
 
33
33
  location_realpath = File.expand_path(location)
34
34
 
35
+ base_cmd = ["storageattach", @uuid, "--storagectl", get_controller_name, "--type", "hdd", "--medium", "#{location_realpath}"]
35
36
  if controller_name.start_with?("IDE")
36
- execute("storageattach", @uuid, "--storagectl", get_controller_name, "--port", "1", "--device", "0", "--type", "hdd", "--medium", "#{location_realpath}")
37
+ ctrl_args = ["--port", "1", "--device", "0"]
37
38
  elsif controller_name.start_with?("SCSI")
38
- execute("storageattach", @uuid, "--storagectl", get_controller_name, "--port", "15", "--device", "0", "--type", "hdd", "--medium", "#{location_realpath}")
39
+ ctrl_args = ["--port", "15", "--device", "0"]
39
40
  else
40
- execute("storageattach", @uuid, "--storagectl", get_controller_name, "--port", "4", "--device", "0", "--type", "hdd", "--medium", "#{location_realpath}", "--hotpluggable", "on")
41
+ ctrl_args = ["--port", "4", "--device", "0", "--hotpluggable", "on"]
41
42
  end
42
-
43
-
43
+ execute(*(base_cmd + ctrl_args + attachoptions))
44
44
  end
45
45
 
46
46
  def detach_storage(location)
@@ -122,4 +122,3 @@ module VagrantPlugins
122
122
  end
123
123
  end
124
124
  end
125
-
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module PersistentStorage
3
- VERSION = "0.0.48"
3
+ VERSION = "0.0.49"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-persistent-storage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.48
4
+ version: 0.0.49
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Kusnier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-31 00:00:00.000000000 Z
11
+ date: 2020-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake