#!/usr/bin/python

#-------------------------------------------------------------------------------
#
# Copyright 2014 Cumulus Networks, inc  all rights reserved
#
#-------------------------------------------------------------------------------

#
#   Import the necessary modules
#
try:
    import subprocess
    import re
    import json
except ImportError, e:
    raise ImportError (str(e) + "- required module not found")
except KeyboardInterrupt:
    exit(-1)

# Note: Currently we only use the clag-id info from the rendered
# ifquery output.
def clagGetIdConfig():
    clagIdCfg = {}
    try:
        ifaceout = subprocess.check_output(['/sbin/ifquery', '-a'])
    except subprocess.CalledProcessError, e:
        return clagIdCfg

    ifPat = re.compile('^[ \t]*iface (?P<ifn>\S+)')
    clagIdPat = re.compile('^[ \t]*clag-id (?P<cid>\d+)')
    ifName = None
    for line in ifaceout.splitlines():
        obj = ifPat.search(line)
        if obj:
            ifName = obj.group('ifn')
        obj = clagIdPat.search(line)
        if obj:
            clagId = obj.group('cid')
            if ifName:
                clagIdInfo = {}
                clagIdInfo['clagId'] = int(clagId)
                clagIdCfg[ifName] = clagIdInfo
            ifName = None

    return clagIdCfg

clagCfg = {}
clagIdCfg = clagGetIdConfig()
clagCfg['clagIntfs'] = clagIdCfg
print json.dumps(clagCfg)
