class Vagrant::LXC::Action::ClearForwardedPorts
Public Class Methods
new(app, env)
click to toggle source
# File lib/vagrant-lxc/action/clear_forwarded_ports.rb, line 5 def initialize(app, env) @app = app @logger = Log4r::Logger.new("vagrant::lxc::action::clear_forwarded_ports") end
Public Instance Methods
call(env)
click to toggle source
# File lib/vagrant-lxc/action/clear_forwarded_ports.rb, line 10 def call(env) @env = env if redir_pids.any? env[:ui].info I18n.t("vagrant.actions.vm.clear_forward_ports.deleting") redir_pids.each do |pid| next unless is_redir_pid?(pid[0]) @logger.debug "Killing pid #{pid[0]}" if pid[1] system "sudo pkill -TERM -P #{pid[0]}" else system "pkill -TERM -P #{pid[0]}" end end @logger.info "Removing redir pids files" remove_redir_pids else @logger.info "No redir pids found" end @app.call env end
Protected Instance Methods
is_redir_pid?(pid)
click to toggle source
# File lib/vagrant-lxc/action/clear_forwarded_ports.rb, line 43 def is_redir_pid?(pid) @logger.debug "Checking if #{pid} is a redir process with `ps -o cmd= #{pid}`" %xps -o cmd= #{pid}`.strip.chomp =~ /redir/ end
redir_pids()
click to toggle source
# File lib/vagrant-lxc/action/clear_forwarded_ports.rb, line 36 def redir_pids @redir_pids = Dir[@env[:machine].data_dir.join('pids').to_s + "/redir_*.pid"].map do |file| port_number = File.basename(file).split(/[^\d]/).join [ File.read(file).strip.chomp , Integer(port_number) <= 1024 ] end end
remove_redir_pids()
click to toggle source
# File lib/vagrant-lxc/action/clear_forwarded_ports.rb, line 48 def remove_redir_pids Dir[@env[:machine].data_dir.join('pids').to_s + "/redir_*.pid"].each do |file| File.delete file end end