vagrant-persistent-storage 0.0.27 → 0.0.28

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