#!/usr/bin/python
# -*- coding: latin-1 -*-
# INTEL CONFIDENTIAL
# Copyright 2007 Intel Corporation All Rights Reserved.
#
# The source code contained or described herein and all documents related to the
# source code (“Material”) are owned by Intel Corporation or its suppliers or
# licensors. Title to the Material remains with Intel Corporation or its
# suppliers and licensors. The Material may contain trade secrets and
# proprietary and confidential information of Intel Corporation and its
# suppliers and licensors, and is protected by worldwide copyright and trade
# secret laws and treaty provisions. No part of the Material may be used,
# copied, reproduced, modified, published, uploaded, posted, transmitted,
# distributed, or disclosed in any way without Intel’s prior express written
# permission. 
# No license under any patent, copyright, trade secret or other intellectual
# property right is granted to or conferred upon you by disclosure or delivery
# of the Materials, either expressly, by implication, inducement, estoppel or
# otherwise. Any license under such intellectual property rights must be express
# and approved by Intel in writing.
#
# Include any supplier copyright notices as supplier requires Intel to use.
#
# Include supplier trademarks or logos as supplier requires Intel to use, preceded
# by an asterisk. An asterisked footnote can be added as follows:
# *Third Party trademarks are the property of their respective owners.
#
# Unless otherwise agreed by Intel in writing, you may not remove or alter this
# notice or any other notice embedded in Materials by Intel or Intel’s suppliers
# or licensors in any way.

"""This module contains the methods to read FRU data

"""
__author__ = 'Todd C Davis'
__Product__ = 'Intel_PDK'

import sys, os, os.path, popen2
from systemMgr import openSysInfo, closeSysInfo, addProperty

unhandledRecords= ['AMT Interface Version']

def handleRecord(sInfo, record):
    attr = {}
    attr["info"] = 'Active Management Technology'
    #print "appending records for %s %s" % (t,i)
    for line in record:
        parts = line.split(':')
        if len(parts) != 2:
            continue
        n = parts[0].strip()
        v = parts[1].strip()
        if not n:
            continue
        if n in unhandledRecords:
            continue
        #print attr,
        #print "%s : %s" % (n,v)
        addProperty(sInfo,'AMT',n,v,attr)

def readAMTrecords():
    if sys.platform == 'win32':
        binfile = 'amtcfg'
    elif sys.platform == 'linux2':
        binfile = 'amtcfg'
    r, w, e = popen2.popen3('%s'%binfile,-1,'b')
    #elines = e.readlines()
    e.close()
    lines = r.readlines()
    r.close()
    w.close()
    #print "lines: %d" % len(lines)
    sInfo = openSysInfo()
    record = []
    for line in lines:
        l = line.strip()
        if l:
            record.append(l)
    if record:
        #print "t = %s ; i = %s" % (t,i)
        handleRecord(sInfo,record)
    closeSysInfo(sInfo)
    return 0

if __name__ == '__main__':
    sys.exit(readAMTrecords())

