hosts/bsd: check for exports file issues prior to exporting NFS
This commit is contained in:
parent
c1141dded3
commit
2bebf188d6
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
IMPROVEMENTS:
|
IMPROVEMENTS:
|
||||||
|
|
||||||
|
- hosts/bsd: check NFS exports file for issues prior to exporting
|
||||||
- provisioners/docker: Add support for using the provisioner with RedHat
|
- provisioners/docker: Add support for using the provisioner with RedHat
|
||||||
based guests [GH-2649]
|
based guests [GH-2649]
|
||||||
- provisioners/docker: Remove "Docker" prefix from Client and Installer
|
- provisioners/docker: Remove "Docker" prefix from Client and Installer
|
||||||
|
|
|
@ -364,6 +364,10 @@ module Vagrant
|
||||||
error_key(:not_found, "vagrant.actions.vm.host_only_network")
|
error_key(:not_found, "vagrant.actions.vm.host_only_network")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class NFSBadExports < VagrantError
|
||||||
|
error_key(:nfs_bad_exports)
|
||||||
|
end
|
||||||
|
|
||||||
class NFSCantReadExports < VagrantError
|
class NFSCantReadExports < VagrantError
|
||||||
error_key(:nfs_cant_read_exports)
|
error_key(:nfs_cant_read_exports)
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,6 +2,7 @@ require 'log4r'
|
||||||
|
|
||||||
require "vagrant"
|
require "vagrant"
|
||||||
require 'vagrant/util/platform'
|
require 'vagrant/util/platform'
|
||||||
|
require "vagrant/util/subprocess"
|
||||||
|
|
||||||
module VagrantPlugins
|
module VagrantPlugins
|
||||||
module HostBSD
|
module HostBSD
|
||||||
|
@ -35,6 +36,8 @@ module VagrantPlugins
|
||||||
end
|
end
|
||||||
|
|
||||||
def nfs_export(id, ips, folders)
|
def nfs_export(id, ips, folders)
|
||||||
|
nfs_checkexports!
|
||||||
|
|
||||||
# We need to build up mapping of directories that are enclosed
|
# We need to build up mapping of directories that are enclosed
|
||||||
# within each other because the exports file has to have subdirectories
|
# within each other because the exports file has to have subdirectories
|
||||||
# of an exported directory on the same line. e.g.:
|
# of an exported directory on the same line. e.g.:
|
||||||
|
@ -162,6 +165,13 @@ module VagrantPlugins
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def nfs_checkexports!
|
||||||
|
r = Subprocess.execute("nfsd", "checkexports")
|
||||||
|
if r.exit_code != 0
|
||||||
|
raise Vagrant::Errors::NFSBadExports, output: r.stderr
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def nfs_cleanup(id)
|
def nfs_cleanup(id)
|
||||||
return if !File.exist?("/etc/exports")
|
return if !File.exist?("/etc/exports")
|
||||||
|
|
||||||
|
|
|
@ -429,6 +429,12 @@ en:
|
||||||
A multi-vm environment is required for name specification to this command.
|
A multi-vm environment is required for name specification to this command.
|
||||||
multi_vm_target_required: |-
|
multi_vm_target_required: |-
|
||||||
This command requires a specific VM name to target in a multi-VM environment.
|
This command requires a specific VM name to target in a multi-VM environment.
|
||||||
|
nfs_bad_exports: |-
|
||||||
|
NFS is reporting that your exports file is invalid. Vagrant does
|
||||||
|
this check before making any changes to the file. Please correct
|
||||||
|
the issues below and execute "vagrant reload":
|
||||||
|
|
||||||
|
%{output}
|
||||||
nfs_cant_read_exports: |-
|
nfs_cant_read_exports: |-
|
||||||
Vagrant can't read your current NFS exports! The exports file should be
|
Vagrant can't read your current NFS exports! The exports file should be
|
||||||
readable by any user. This is usually caused by invalid permissions
|
readable by any user. This is usually caused by invalid permissions
|
||||||
|
|
Loading…
Reference in New Issue