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

# pylint: disable=bad-indentation

import optparse, os # pylint: disable=deprecated-module
import EntityManager
import Tac
import AleFibCliDiffUtilLib

def parseArgs():
    parser = optparse.OptionParser()
    parser.usage = "%prog [ options ]"
    parser.add_option( "-s", "--sysname", action="store",
                       default=os.environ.get( "SYSNAME", "ar" ),
                       help="system name( default: %default )" )
    parser.add_option( "--ipv4-diff", action="store_true", default=False,
                       help="display diff of ipv4 routes between smash and hardware")
    parser.add_option( "--ipv6-diff", action="store_true", default=False,
                       help="display diff of ipv6 routes between smash and hardware")
    return parser.parse_args()

if __name__ == '__main__':
   try:
      options, args = parseArgs()

      em = EntityManager.Sysdb( sysname=options.sysname )

      ( routeStatus, vrfMap, routeHwStatus, arpSmash, routing6HwRouteStatus,
        arpVrfMap ) = AleFibCliDiffUtilLib.mountEntities( em )
      AleFibCliDiffUtilLib.runCmd( em, routeStatus, vrfMap, routeHwStatus, arpSmash,
                                   routing6HwRouteStatus, arpVrfMap )
         
   except KeyboardInterrupt:
      print( 'Command aborted' )
   
