alpine: Convert nfs_client capability to seperate commands

The workaround for the broken repository should be safe to be removed,
since the last affected Alpine version (<=3.3) EOL'd in November of 2017.

The remaining important commands can be split out into seperate calls
of sudo(), which removes the need for manual exit-code checking
(since it aborts by itself when a command fails) and makes the code
easier to handle in general.
This commit is contained in:
Tim Schumacher 2019-07-22 16:05:48 +02:00
parent 77616b22b3
commit a7f09f010c
2 changed files with 9 additions and 73 deletions

View File

@ -3,42 +3,10 @@ module VagrantPlugins
module Cap
class NFSClient
def self.nfs_client_install(machine)
comm = machine.communicate
comm.sudo <<-EOS.gsub(/^\s+\|\s?/, '')
| # work around defunct repository in configuration
| # box: maier/apline-3.3
| repo_file="/etc/apk/repositories"
| if [ $(grep -c "repos.dfw.lax-noc.com" $repo_file) -ne 0 ]; then
| repo_file_bak="${repo_file}.orig"
| echo "updating repositories"
| cp $repo_file $repo_file_bak
| sed -e 's/repos.dfw.lax-noc.com/dl-cdn.alpinelinux.org/' $repo_file_bak > $repo_file
| fi
|
| echo "updating repository indices"
| apk update
| if [ $? -ne 0 ]; then
| exit 1
| fi
|
| echo "installing nfs-utils"
| apk add --upgrade nfs-utils
| if [ $? -ne 0 ]; then
| exit 1
| fi
|
| echo "installing rpc.statd"
| rc-update add rpc.statd
| if [ $? -ne 0 ]; then
| exit 1
| fi
|
| echo "starting rpc.statd service"
| rc-service rpc.statd start
| if [ $? -ne 0 ]; then
| exit 1
| fi
EOS
machine.communicate.sudo('apk update')
machine.communicate.sudo('apk add --upgrade nfs-utils')
machine.communicate.sudo('rc-update add rpc.statd')
machine.communicate.sudo('rc-service rpc.statd start')
end
end
end

View File

@ -17,43 +17,11 @@ describe 'VagrantPlugins::GuestAlpine::Cap::NFSClient' do
end
it 'should install nfs client' do
x = <<-EOS.gsub(/^\s+\|\s?/, '')
| # work around defunct repository in configuration
| # box: maier/apline-3.3
| repo_file="/etc/apk/repositories"
| if [ $(grep -c "repos.dfw.lax-noc.com" $repo_file) -ne 0 ]; then
| repo_file_bak="${repo_file}.orig"
| echo "updating repositories"
| cp $repo_file $repo_file_bak
| sed -e 's/repos.dfw.lax-noc.com/dl-cdn.alpinelinux.org/' $repo_file_bak > $repo_file
| fi
|
| echo "updating repository indices"
| apk update
| if [ $? -ne 0 ]; then
| exit 1
| fi
|
| echo "installing nfs-utils"
| apk add --upgrade nfs-utils
| if [ $? -ne 0 ]; then
| exit 1
| fi
|
| echo "installing rpc.statd"
| rc-update add rpc.statd
| if [ $? -ne 0 ]; then
| exit 1
| fi
|
| echo "starting rpc.statd service"
| rc-service rpc.statd start
| if [ $? -ne 0 ]; then
| exit 1
| fi
EOS
expect(communicator).to receive(:sudo).with(x)
allow_message_expectations_on_nil
described_class.nfs_client_install(machine)
expect(communicator.received_commands[0]).to match(/apk update/)
expect(communicator.received_commands[1]).to match(/apk add --upgrade nfs-utils/)
expect(communicator.received_commands[2]).to match(/rc-update add rpc.statd/)
expect(communicator.received_commands[3]).to match(/rc-service rpc.statd start/)
end
end