#!/usr/bin/python
# Copyright (c) 2020 Arista Networks, Inc.  All rights reserved.
# Arista Networks, Inc. Confidential and Proprietary.

from Agent import AgentContainer
import Dot1xWebAgentLib as WebAgentLib
from Dot1xWebL2ForwarderLib import setupWebauthNs
import Tac
import os
import Arnet.NsLib
import Tracing
import QuickTrace

__defaultTraceHandle__ = Tracing.Handle( 'Dot1xWeb' )
warn = QuickTrace.trace0
trace = QuickTrace.trace1
bv = QuickTrace.Var
AGENT_INIT_TIME = 1

def runCmd( cmd, ns=None ):
   try:
      Arnet.NsLib.runMaybeInNetNs( ns, cmd.split( ' ' ) )
      return True
   except Tac.SystemCommandError:
      return False

def main():
   agentName = WebAgentLib.name()
   qtfile = "%s%s.qt" % ( agentName, "-%d" if "QUICKTRACEDIR"
                          not in os.environ else "" )
   QuickTrace.initialize( qtfile, "1024,1024,1,1,1,1,1,1,1,1" )
   setupWebauthNs()
   container = AgentContainer( [ WebAgentLib.Dot1xWeb ], passiveMount=True )
   # Process name and syslog name equals agent class name. This makes it
   # inconsistent with another agent name used in mount profile, log filename,
   # etc. DO NOT COPY THIS. See AID/8010 Appendix G for more info.
   container.useLegacyName_DO_NOT_COPY_THIS()
   container.runAgents()
   trace( 'Exiting from main' )

if __name__ == "__main__":
   main()
