vagrant-persistent-storage 0.0.27 → 0.0.28

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: 6c5cb664b3afdb9c69f0edbac2f802170c976a53
4
- data.tar.gz: 0b638147e494cf69fbd22e3be9cee7115f2d7b69
3
+ metadata.gz: 89484b1d3b1d0cde5c9319e9568fc11896e66447
4
+ data.tar.gz: 7885463a19746bed8a3099c3e02cce77504d73e0
5
5
  SHA512:
6
- metadata.gz: 29768973693d388e28076d0e4553201843085a44c957225d2e4b46049fecc5a009b11a11284aea1fa27b85bb592f7af42c09e68cbeb6d65412bae41c719ea021
7
- data.tar.gz: 789a035b9d325f30b0b0eb79a88cc2d2307af0e90c0353ff00d6b0a9b0a28759d50724b8f57ada8425501aafa38d50281bdf5f7555932bacf450ebba4cf27968
6
+ metadata.gz: 065bf8c177fe0f7d9c60491eed349bbd3b8d9b7d01f91d738be5e9c47d938ad4371fe50cbb83b702da87dec1fcc25f84e6da9d359047dd023b200a194ef1fa03
7
+ data.tar.gz: 6f3b881af71d080f1565c30e66687b6ddede068648643396baed7f611a11062cba36662a467204a7b2ee7293a8d4ff6407e1e8ab14f86595375655731ab86e75
data/README.md CHANGED
@@ -34,40 +34,29 @@ config.persistent_storage.mountoptions = ['defaults', 'prjquota']
34
34
  ```
35
35
 
36
36
  Device defaults to `/dev/sdb`. For boxes with multiple disks, make sure you increment the drive:
37
- ```ruby
38
- config.persistent_storage.diskdevice = '/dev/sdc'
39
37
  ```
40
-
41
- If you are using LVM and you would prefer to use the disk rather than a partition, you can set the following configuration:
42
- ```ruby
43
- config.persistent_storage.partition = false
38
+ config.persistent_storage.diskdevice = '/dev/sdc'
44
39
  ```
45
40
 
46
41
  Every `vagrant up` will attach this file as hard disk to the guest machine.
47
- A `vagrant destroy` will detach the storage to avoid deletion of the storage by vagrant.
42
+ An `vagrant destroy` will detach the storage to avoid deletion of the storage by vagrant.
48
43
  A `vagrant destroy` generally destroys all attached drives. See [VBoxMange unregistervm --delete option][vboxmanage_delete].
49
44
 
50
45
  The disk is initialized and added to it's own volume group as specfied in the config;
51
46
  this defaults to 'vagrant'. An ext4 filesystem is created and the disk mounted appropriately,
52
- with entries added to fstab ... subsequent runs will mount this disk with the options specified.
47
+ with entries added to fstab ... subsequent runs will mount this disk with the options specified
53
48
 
54
49
  ## Windows Guests
55
50
 
56
51
  Windows Guests must use the WinRM communicator by setting `vm.communicator = 'winrm'`. An additional option is provided to
57
52
  allow you to set the drive letter using:
58
53
 
59
- ```ruby
54
+ ```
60
55
  config.persistent_storage.drive_letter = 'Z'
61
56
  ```
62
57
 
63
58
  Options that are irrelevent to Windows are ignored, such as `mountname`, `filesystem`, `mountpoint` and `volgroupname`.
64
59
 
65
- ## How Is The Storage Created?
66
-
67
- Based on the configuration provided, during a `vagrant up` a bash script is generated and uploaded to `/tmp/disk_operations_#{mnt_name}.sh` (Linux) or `disk_operations_#{mnt_name}.ps1` (Windows). If the box has not been previously provisioned the script is executed on a `vagrant up`. To force the scrip to be executed again you can run `vagrant provision` or if you have halted the box, `vagrant up --provision`.
68
-
69
- The outcome of the script being run is placed in the home drive of the vagrant user in a file called `disk_operation_log.txt`.
70
-
71
60
  ## Optional settings
72
61
 
73
62
  ```ruby
@@ -15,7 +15,6 @@ module VagrantPlugins
15
15
  attr_accessor :mountname
16
16
  attr_accessor :mountpoint
17
17
  attr_accessor :mountoptions
18
- attr_accessor :partition
19
18
  attr_accessor :diskdevice
20
19
  attr_accessor :filesystem
21
20
  attr_accessor :volgroupname
@@ -27,7 +26,6 @@ module VagrantPlugins
27
26
  alias_method :manage?, :manage
28
27
  alias_method :format?, :format
29
28
  alias_method :use_lvm?, :use_lvm
30
- alias_method :partition?, :partition
31
29
  alias_method :enabled?, :enabled
32
30
 
33
31
  def initialize
@@ -38,7 +36,6 @@ module VagrantPlugins
38
36
  @format = true
39
37
  @use_lvm = true
40
38
  @enabled = false
41
- @partition = true
42
39
  @location = UNSET_VALUE
43
40
  @mountname = UNSET_VALUE
44
41
  @mountpoint = UNSET_VALUE
@@ -57,33 +54,31 @@ module VagrantPlugins
57
54
  @manage = true if @manage == UNSET_VALUE
58
55
  @format = true if @format == UNSET_VALUE
59
56
  @use_lvm = true if @use_lvm == UNSET_VALUE
60
- @partition = true if @partition == UNSET_VALUE
61
57
  @enabled = false if @enabled == UNSET_VALUE
62
- @location = "" if @location == UNSET_VALUE
63
- @mountname = "" if @mountname == UNSET_VALUE
64
- @mountpoint = "" if @mountpoint == UNSET_VALUE
65
- @mountoptions = [] if @mountoptions == UNSET_VALUE
66
- @diskdevice = "" if @diskdevice == UNSET_VALUE
67
- @filesystem = "" if @filesystem == UNSET_VALUE
68
- @volgroupname = "" if @volgroupname == UNSET_VALUE
69
- @drive_letter = 0 if @drive_letter == UNSET_VALUE
58
+ @location = 0 if @location == UNSET_VALUE
59
+ @mountname = 0 if @mountname == UNSET_VALUE
60
+ @mountpoint = 0 if @mountpoint == UNSET_VALUE
61
+ @mountoptions = 0 if @mountoptions == UNSET_VALUE
62
+ @diskdevice = 0 if @diskdevice == UNSET_VALUE
63
+ @filesystem = 0 if @filesystem == UNSET_VALUE
64
+ @volgroupname = 0 if @volgroupname == UNSET_VALUE
65
+ @drive_letter = 0 if @drive_letter == UNSET_VALUE
70
66
  @part_type_code = "8e" if @part_type_code == UNSET_VALUE
71
67
  end
72
68
 
73
69
  def validate(machine)
74
- errors = _detected_errors
70
+ errors = []
75
71
 
76
72
  errors << validate_bool('persistent_storage.create', @create)
77
73
  errors << validate_bool('persistent_storage.mount', @mount)
78
- errors << validate_bool('persistent_storage.manage', @manage)
79
- errors << validate_bool('persistent_storage.format', @format)
80
- errors << validate_bool('persistent_storage.use_lvm', @use_lvm)
81
- errors << validate_bool('persistent_storage.enabled', @enabled)
82
- errors << validate_bool('persistent_storage.partition', @partition)
74
+ errors << validate_bool('persistent_storage.mount', @manage)
75
+ errors << validate_bool('persistent_storage.mount', @format)
76
+ errors << validate_bool('persistent_storage.mount', @use_lvm)
77
+ errors << validate_bool('persistent_storage.mount', @enabled)
83
78
  errors.compact!
84
79
 
85
- if !machine.config.persistent_storage.size.kind_of?(Fixnum)
86
- errors << I18n.t('vagrant_persistent_storage.config.not_a_number', {
80
+ if !machine.config.persistent_storage.size.kind_of?(String)
81
+ errors << I18n.t('vagrant_persistent_storage.config.not_a_string', {
87
82
  :config_key => 'persistent_storage.size',
88
83
  :is_class => size.class.to_s,
89
84
  })
@@ -132,21 +127,19 @@ module VagrantPlugins
132
127
  end
133
128
 
134
129
  mount_point_path = Pathname.new("#{machine.config.persistent_storage.location}")
135
- if ! (mount_point_path.absolute? || mount_point_path.relative?)
130
+ if ! mount_point_path.absolute?
136
131
  errors << I18n.t('vagrant_persistent_storage.config.not_a_path', {
137
132
  :config_key => 'persistent_storage.location',
138
133
  :is_path => location.class.to_s,
139
134
  })
140
135
  end
141
136
 
137
+ { 'Persistent Storage configuration' => errors }
138
+
142
139
  if ! File.exists?@location.to_s and ! @create == "true"
143
- errors << I18n.t('vagrant_persistent_storage.config.no_create_and_missing', {
144
- :config_key => 'persistent_storage.create',
145
- :is_path => location.class.to_s,
146
- })
140
+ return { "location" => ["file doesn't exist, and create set to false"] }
147
141
  end
148
-
149
- { 'Persistent Storage configuration' => errors }
142
+ {}
150
143
  end
151
144
 
152
145
  private
@@ -14,7 +14,6 @@ module VagrantPlugins
14
14
  fs_type = m.config.persistent_storage.filesystem
15
15
  manage = m.config.persistent_storage.manage
16
16
  use_lvm = m.config.persistent_storage.use_lvm
17
- partition = m.config.persistent_storage.partition
18
17
  mount = m.config.persistent_storage.mount
19
18
  format = m.config.persistent_storage.format
20
19
  part_type_code = m.config.persistent_storage.part_type_code
@@ -47,7 +46,6 @@ module VagrantPlugins
47
46
  if os == "windows"
48
47
  ## shell script for windows to create NTFS partition and assign drive letter
49
48
  disk_operations_template = ERB.new <<-EOF
50
- <% if partition == true %>
51
49
  <% if format == true %>
52
50
  foreach ($disk in get-wmiobject Win32_DiskDrive -Filter "Partitions = 0"){
53
51
  $disk.DeviceID
@@ -55,13 +53,11 @@ module VagrantPlugins
55
53
  "select disk "+$disk.Index+"`r clean`r create partition primary`r format fs=ntfs unit=65536 quick`r active`r assign #{drive_letter}" | diskpart >> disk_operation_log.txt
56
54
  }
57
55
  <% end %>
58
- <% end %>
59
56
  EOF
60
57
  else
61
58
  ## shell script to format disk, create/manage LVM, mount disk
62
59
  disk_operations_template = ERB.new <<-EOF
63
60
  #!/bin/bash
64
- <% if partition == true %>
65
61
  # fdisk the disk if it's not a block device already:
66
62
  re='[0-9][.][0-9.]*[0-9.]*'; [[ $(sfdisk --version) =~ $re ]] && version="${BASH_REMATCH}"
67
63
  if ! awk -v ver="$version" 'BEGIN { if (ver < 2.26 ) exit 1; }'; then
@@ -70,15 +66,13 @@ else
70
66
  [ -b #{disk_dev}1 ] || echo ,,#{part_type_code} | sfdisk #{disk_dev}
71
67
  fi
72
68
  echo "fdisk returned: $?" >> disk_operation_log.txt
73
- disk_dev=#{disk_dev}1
74
- <% end %>
75
69
 
76
70
  <% if use_lvm == true %>
77
71
  # Create the physical volume if it doesn't already exist:
78
- [[ `pvs #{disk_dev}` ]] || pvcreate #{disk_dev}
72
+ [[ `pvs #{disk_dev}1` ]] || pvcreate #{disk_dev}1
79
73
  echo "pvcreate returned: $?" >> disk_operation_log.txt
80
74
  # Create the volume group if it doesn't already exist:
81
- [[ `vgs #{vg_name}` ]] || vgcreate #{vg_name} #{disk_dev}
75
+ [[ `vgs #{vg_name}` ]] || vgcreate #{vg_name} #{disk_dev}1
82
76
  echo "vgcreate returned: $?" >> disk_operation_log.txt
83
77
  # Create the logical volume if it doesn't already exist:
84
78
  [[ `lvs #{vg_name} | grep #{mnt_name}` ]] || lvcreate -l 100%FREE -n #{mnt_name} #{vg_name}
@@ -90,7 +84,7 @@ echo "vg activation returned: $?" >> disk_operation_log.txt
90
84
 
91
85
  <% if format == true %>
92
86
  # Create the filesytem if it doesn't already exist
93
- MNT_NAME=#{vg_name}-#{mnt_name}
87
+ MNT_NAME=#{mnt_name}
94
88
  [[ `blkid | grep ${MNT_NAME:0:16} | grep #{fs_type}` ]] || mkfs.#{fs_type} -L #{mnt_name} #{device}
95
89
  echo "#{fs_type} creation return: $?" >> disk_operation_log.txt
96
90
  <% if mount == true %>
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module PersistentStorage
3
- VERSION = "0.0.27"
3
+ VERSION = "0.0.28"
4
4
  end
5
5
  end
data/locales/en.yml CHANGED
@@ -9,7 +9,4 @@ en:
9
9
  manage_storage: "** Managing persistent storage **"
10
10
  config:
11
11
  not_a_bool: "A value for %{config_key} can only be true or false, not type '%{value}'"
12
- not_an_array_or_string: "A value for %{config_key} must be an Array or String, not type '%{value}'"
13
- not_a_string: "A value for %{config_key} must be a String, not type '%{value}'"
14
- not_a_path: "A value for %{config_key} must be resolveable as a path"
15
- not_a_number: "A value for %{config_key} must be a number, not type '%{value}'"
12
+ not_an_array_or_string: "A value for %{config_key} must be an Array or String, not type '%{is_class}'"
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.27
4
+ version: 0.0.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Kusnier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-19 00:00:00.000000000 Z
11
+ date: 2017-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake