Add middleware to force ssh disconnect
This commit is contained in:
parent
1609e6bdcb
commit
b5465ddab2
2 changed files with 16 additions and 0 deletions
|
@ -6,6 +6,7 @@ require 'vagrant-lxc/action/check_running'
|
|||
require 'vagrant-lxc/action/create'
|
||||
require 'vagrant-lxc/action/created'
|
||||
require 'vagrant-lxc/action/destroy'
|
||||
require 'vagrant-lxc/action/disconnect'
|
||||
require 'vagrant-lxc/action/forced_halt'
|
||||
require 'vagrant-lxc/action/handle_box_metadata'
|
||||
require 'vagrant-lxc/action/is_running'
|
||||
|
@ -123,6 +124,7 @@ module Vagrant
|
|||
# b.use CheckLXC
|
||||
b.use Vagrant::Action::Builtin::Call, Created do |env, b2|
|
||||
if env[:result]
|
||||
b2.use Disconnect
|
||||
b2.use Vagrant::Action::Builtin::Call, Vagrant::Action::Builtin::GracefulHalt, :stopped, :running do |env2, b3|
|
||||
if !env2[:result] && env2[:machine].provider.state.running?
|
||||
b3.use ForcedHalt
|
||||
|
|
14
lib/vagrant-lxc/action/disconnect.rb
Normal file
14
lib/vagrant-lxc/action/disconnect.rb
Normal file
|
@ -0,0 +1,14 @@
|
|||
module Vagrant
|
||||
module LXC
|
||||
module Action
|
||||
class Disconnect < BaseAction
|
||||
def call(env)
|
||||
@app.call env
|
||||
# FIXME: Vagrant >= 1.1.3 should not need this
|
||||
# https://github.com/mitchellh/vagrant/compare/715539eac30bc9ae62ddbb6337d13f036f7b774d...ec1bae0#L2R128
|
||||
env[:machine].instance_variable_set(:@communicator, nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue