class CfnVpn::Actions::Sessions

Public Class Methods

source_root() click to toggle source
# File lib/cfnvpn/actions/sessions.rb, line 20
def self.source_root
  File.dirname(__FILE__)
end

Public Instance Methods

display_sessions() click to toggle source
# File lib/cfnvpn/actions/sessions.rb, line 53
def display_sessions
  sessions = @vpn.get_sessions(@endpoint_id)
  rows = sessions.collect do |s|
    [ s.common_name, s.connection_established_time, s.status.code, s.client_ip, s.connection_id, s.ingress_bytes, s.egress_bytes ]
  end
  table = Terminal::Table.new(
    :headings => ['Common Name', 'Connected (UTC)', 'Status', 'IP Address', 'Connection ID', 'Ingress Bytes', 'Egress Bytes'],
    :rows => rows)
  puts table
end
get_endpoint() click to toggle source
# File lib/cfnvpn/actions/sessions.rb, line 32
def get_endpoint
  @vpn = CfnVpn::ClientVpn.new(@name,@options['region'])
  @endpoint_id = @vpn.get_endpoint_id()
end
kill_session() click to toggle source
# File lib/cfnvpn/actions/sessions.rb, line 37
def kill_session
  if !@options['kill'].nil?
    sessions = @vpn.get_sessions(@endpoint_id)
    session = sessions.select { |s| s if s.connection_id  == @options['kill'] }.first
    if session.any? && session.status.code == "active"
      terminate = yes? "Terminate connection #{@options['kill']} for #{session.common_name}?", :yellow
      if terminate
        CfnVpn::Log.logger.info "Terminating connection #{@options['kill']} for #{session.common_name}"
        @vpn.kill_session(@endpoint_id,@options['kill'])
      end
    else
      CfnVpn::Log.logger.error "Connection id #{@options['kill']} doesn't exist or is not active"
    end
  end
end
set_directory() click to toggle source
# File lib/cfnvpn/actions/sessions.rb, line 28
def set_directory
  @build_dir = "#{CfnVpn.cfnvpn_path}/#{@name}"
end
set_loglevel() click to toggle source
# File lib/cfnvpn/actions/sessions.rb, line 24
def set_loglevel
  CfnVpn::Log.logger.level = Logger::DEBUG if @options['verbose']
end