Add middleware to force ssh disconnect

This commit is contained in:
Fabio Rehm 2013-03-19 02:38:31 -03:00
parent 1609e6bdcb
commit b5465ddab2
2 changed files with 16 additions and 0 deletions

View file

@ -6,6 +6,7 @@ require 'vagrant-lxc/action/check_running'
require 'vagrant-lxc/action/create' require 'vagrant-lxc/action/create'
require 'vagrant-lxc/action/created' require 'vagrant-lxc/action/created'
require 'vagrant-lxc/action/destroy' require 'vagrant-lxc/action/destroy'
require 'vagrant-lxc/action/disconnect'
require 'vagrant-lxc/action/forced_halt' require 'vagrant-lxc/action/forced_halt'
require 'vagrant-lxc/action/handle_box_metadata' require 'vagrant-lxc/action/handle_box_metadata'
require 'vagrant-lxc/action/is_running' require 'vagrant-lxc/action/is_running'
@ -123,6 +124,7 @@ module Vagrant
# b.use CheckLXC # b.use CheckLXC
b.use Vagrant::Action::Builtin::Call, Created do |env, b2| b.use Vagrant::Action::Builtin::Call, Created do |env, b2|
if env[:result] if env[:result]
b2.use Disconnect
b2.use Vagrant::Action::Builtin::Call, Vagrant::Action::Builtin::GracefulHalt, :stopped, :running do |env2, b3| b2.use Vagrant::Action::Builtin::Call, Vagrant::Action::Builtin::GracefulHalt, :stopped, :running do |env2, b3|
if !env2[:result] && env2[:machine].provider.state.running? if !env2[:result] && env2[:machine].provider.state.running?
b3.use ForcedHalt b3.use ForcedHalt

View 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