Exemplo n.º 1
0
def readXmlTagDataFromURI(dev,URI,xmlRootNode,xmlReqDataNode,timeout=5):
    paramsList,code =[],HTTP_ERROR
    
    data = format_http_get(URI,0,"")
    log.info(data)
    response = cStringIO.StringIO()
    if dev.openLEDM() == -1:
        dev.closeLEDM()
        if dev.openEWS_LEDM() == -1:
            
            dev.openMarvell_EWS()
            dev.writeMarvell_EWS(data)
            try:
                while dev.readMarvell_EWS(1024, response, timeout):
                    pass
            except Error:
                dev.closeMarvell_EWS()
                log.error("Unable to read Marvell_EWS Channel")
        else:
            dev.writeEWS_LEDM(data)
            try:
                while dev.readEWS_LEDM(1024, response, timeout):
                    pass
            except Error:
                dev.closeEWS_LEDM()
                log.error("Unable to read EWS_LEDM Channel")
    else:
        dev.writeLEDM(data)
        try:
            while dev.readLEDM(1024, response, timeout):
                pass
        except Error:
            dev.closeLEDM()
            log.error("Unable to read LEDM Channel") 

    #dev.closeEWS_LEDM()    
    strResp = str(response.getvalue())
    if strResp is not None:                         	
        code = get_error_code(strResp)
        if code == HTTP_OK:
            strResp = utils.unchunck_xml_data(strResp)

    	pos = strResp.find(xmlRootNode,0,len(strResp))    
    	repstr = strResp[pos:].strip()
        repstr = filter(lambda c: c not in "\r\t\n", repstr) # To remove formating characters from the received xml
        repstr = repstr.rstrip('0')   # To remove trailing zero from the received xml
        try:
            parser_object = utils.extendedExpat()
            root_element = parser_object.Parse(repstr)
            xmlReqDataNode = filter(lambda c: c not in "<>", xmlReqDataNode) # To remove '<' and '>' characters
            reqDataElementList = root_element.getElementsByTagName(xmlReqDataNode)
            for node in reqDataElementList:
                repstr = node.toString()
                repstr = filter(lambda c: c not in "\r\t\n", repstr) # To remove formating characters from the received xml
                params = utils.XMLToDictParser().parseXML(repstr)
                paramsList.append(params)
        except xml.parsers.expat.ExpatError, e:
            log.debug("XML parser failed: %s" % e)  #changed from error to debug 
Exemplo n.º 2
0
def readXmlDataFromURI(dev, URI, xmlRootNode, xmlChildNode, timeout=5):
    params, code, elementCount = {}, HTTP_ERROR, 0

    data = format_http_get(URI, 0, "")
    log.info(data)
    response = cStringIO.StringIO()
    if dev.openLEDM() == -1:
        dev.closeLEDM()
        if dev.openEWS_LEDM() == -1:

            dev.openMarvell_EWS()
            dev.writeMarvell_EWS(data)
            try:
                while dev.readMarvell_EWS(1024, response, timeout):
                    pass
            except Error:
                dev.closeMarvell_EWS()
                log.error("Unable to read Marvell_EWS Channel")
        else:
            dev.writeEWS_LEDM(data)
            try:
                while dev.readEWS_LEDM(1024, response, timeout):
                    pass
            except Error:
                dev.closeEWS_LEDM()
                log.error("Unable to read EWS_LEDM Channel")
    else:
        dev.writeLEDM(data)
        try:
            while dev.readLEDM(1024, response, timeout):
                pass
        except Error:
            dev.closeLEDM()
            log.error("Unable to read LEDM Channel")
    #dev.closeEWS_LEDM()
    strResp = str(response.getvalue())
    if strResp is not None:
        code = get_error_code(strResp)
        if code == HTTP_OK:
            strResp = utils.unchunck_xml_data(strResp)

        pos = strResp.find(xmlRootNode, 0, len(strResp))
        repstr = strResp[pos:].strip()
        repstr = filter(
            lambda c: c not in "\r\t\n",
            repstr)  # To remove formating characters from the received xml
        repstr = repstr.rstrip(
            '0')  # To remove trailing zero from the received xml
        elementCount = repstr.count(xmlChildNode)
        try:
            params = utils.XMLToDictParser().parseXML(repstr)
        except xml.parsers.expat.ExpatError, e:
            log.debug("XML parser failed: %s" %
                      e)  #changed from error to debug
Exemplo n.º 3
0
def readXmlDataFromURI(dev,URI,xmlRootNode,xmlChildNode,timeout=5):
    params,code,elementCount ={},HTTP_ERROR,0 
    
    data = format_http_get(URI,0,"")
    log.info(data)
    response = cStringIO.StringIO()
    if dev.openLEDM() == -1:
        dev.closeLEDM()
        if dev.openEWS_LEDM() == -1:
            
            dev.openMarvell_EWS()
            dev.writeMarvell_EWS(data)
            try:
                while dev.readMarvell_EWS(1024, response, timeout):
                    pass
            except Error:
                dev.closeMarvell_EWS()
                log.error("Unable to read Marvell_EWS Channel")
        else:
            dev.writeEWS_LEDM(data)
            try:
                while dev.readEWS_LEDM(1024, response, timeout):
                    pass
            except Error:
                dev.closeEWS_LEDM()
                log.error("Unable to read EWS_LEDM Channel")
    else:
        dev.writeLEDM(data)
        try:
            while dev.readLEDM(1024, response, timeout):
                pass
        except Error:
            dev.closeLEDM()
            log.error("Unable to read LEDM Channel") 
    #dev.closeEWS_LEDM()    
    strResp = str(response.getvalue())
    if strResp is not None:                         	
        code = get_error_code(strResp)        
        if code == HTTP_OK:
             strResp = utils.unchunck_xml_data(strResp)

    	pos = strResp.find(xmlRootNode,0,len(strResp))    
    	repstr = strResp[pos:].strip()
        repstr = filter(lambda c: c not in "\r\t\n", repstr) # To remove formating characters from the received xml
        repstr = repstr.rstrip('0')   # To remove trailing zero from the received xml
    	elementCount = repstr.count(xmlChildNode)          	    	
    	try:
            params = utils.XMLToDictParser().parseXML(repstr)            
        except xml.parsers.expat.ExpatError, e:
            log.debug("XML parser failed: %s" % e)  #changed from error to debug 
Exemplo n.º 4
0
def readXmlTagDataFromURI(dev, URI, xmlRootNode, xmlReqDataNode, timeout=5):
    paramsList, code = [], HTTP_ERROR

    data = format_http_get(URI, 0, "")
    log.info(data)
    response = cStringIO.StringIO()
    if dev.openLEDM() == -1:
        dev.closeLEDM()
        if dev.openEWS_LEDM() == -1:

            dev.openMarvell_EWS()
            dev.writeMarvell_EWS(data)
            try:
                while dev.readMarvell_EWS(1024, response, timeout):
                    pass
            except Error:
                dev.closeMarvell_EWS()
                log.error("Unable to read Marvell_EWS Channel")
        else:
            dev.writeEWS_LEDM(data)
            try:
                while dev.readEWS_LEDM(1024, response, timeout):
                    pass
            except Error:
                dev.closeEWS_LEDM()
                log.error("Unable to read EWS_LEDM Channel")
    else:
        dev.writeLEDM(data)
        try:
            while dev.readLEDM(1024, response, timeout):
                pass
        except Error:
            dev.closeLEDM()
            log.error("Unable to read LEDM Channel")

    #dev.closeEWS_LEDM()
    strResp = str(response.getvalue())
    if strResp is not None:
        code = get_error_code(strResp)
        if code == HTTP_OK:
            strResp = utils.unchunck_xml_data(strResp)

        pos = strResp.find(xmlRootNode, 0, len(strResp))
        repstr = strResp[pos:].strip()
        repstr = filter(
            lambda c: c not in "\r\t\n",
            repstr)  # To remove formating characters from the received xml
        repstr = repstr.rstrip(
            '0')  # To remove trailing zero from the received xml
        try:
            parser_object = utils.extendedExpat()
            root_element = parser_object.Parse(repstr)
            xmlReqDataNode = filter(
                lambda c: c not in "<>",
                xmlReqDataNode)  # To remove '<' and '>' characters
            reqDataElementList = root_element.getElementsByTagName(
                xmlReqDataNode)
            for node in reqDataElementList:
                repstr = node.toString()
                repstr = filter(
                    lambda c: c not in "\r\t\n", repstr
                )  # To remove formating characters from the received xml
                params = utils.XMLToDictParser().parseXML(repstr)
                paramsList.append(params)
        except xml.parsers.expat.ExpatError, e:
            log.debug("XML parser failed: %s" %
                      e)  #changed from error to debug