I would like to execute a custom ruby code after doing vagrant destroy.
That's the code:
class OnDestroyMiddleware def initialize(app, env) @app = app end def call(env) env["config"].vm.provisioners.each do |provisioner| env.ui.info "Attempting to remove client #{provisioner.config.node_name}" `knife client show #{provisioner.config.node_name}` if $?.to_i == 0 env.ui.info "Removing client #{provisioner.config.node_name}" `knife client delete #{provisioner.config.node_name} -y` end env.ui.info "Attempting to remove node #{provisioner.config.node_name}" `knife node show #{provisioner.config.node_name}` if $?.to_i == 0 env.ui.info "Removing node #{provisioner.config.node_name}" `knife node delete #{provisioner.config.node_name} -y` end end @app.call(env) end end I'm trying this but isn't working:
Vagrant::Action[:destroy].use(OnDestroyMiddleware) All of this code is from https://gist.github.com/skippy/1010660
I've got this error on Vagrant::Action[:destroy]
Message: NoMethodError: undefined method `[]' for Vagrant::Action:Module