
    =	fVy                     0   d dl Z d dlZd dlZd dlZd dl ddl ddlmZm	Z	 ddl
mZ ej                  dej                        ZdZdZd	Zd
ZdZdZdZdZdZdZd Zd Zd Zd#dZd$dZd Zd Z d Z!d Z"d Z#d Z$d%dZ%d&dZ&d&dZ'd&dZ(d  Z)d'd!Z*d'd"Z+y)(    N)*   )deviceutils)to_bytes_utf8zHTTP/\d.\d\s(\d+)         i     z/IoMgmt/Adapters/a  <?xml version="1.0" encoding="UTF-8" ?><io:Adapter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:io="http://www.hp.com/schemas/imaging/con/ledm/iomgmt/2008/11/30" xmlns:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/" xmlns:wifi="http://www.hp.com/schemas/imaging/con/wifi/2009/06/26">  <io:HardwareConfig> <dd:Power>%s</dd:Power> </io:HardwareConfig> </io:Adapter>a#  <?xml version="1.0" encoding="UTF-8"?><io:Adapters xmlns:io="http://www.hp.com/schemas/imaging/con/ledm/iomgmt/2008/11/30" xmlns:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/"><io:Adapter><io:HardwareConfig><dd:Power>%s</dd:Power></io:HardwareConfig></io:Adapter></io:Adapters>a  <io:Profile xmlns:io="http://www.hp.com/schemas/imaging/con/ledm/iomgmt/2008/11/30" xmlns:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/" xmlns:wifi="http://www.hp.com/schemas/imaging/con/wifi/2009/06/26" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/ledm/iomgmt/2008/11/30 ../../schemas/IoMgmt.xsd http://www.hp.com/schemas/imaging/con/dictionaries/1.0/ ../../schemas/dd/DataDictionaryMasterLEDM.xsd"><io:AdapterProfile><io:WifiProfile><wifi:SSID>%s</wifi:SSID><wifi:CommunicationMode>%s</wifi:CommunicationMode><wifi:EncryptionType>%s</wifi:EncryptionType><wifi:AuthenticationMode>%s</wifi:AuthenticationMode></io:WifiProfile></io:AdapterProfile></io:Profile>z<io:KeyInfo><io:WpaPassPhraseInfo><wifi:RsnEncryption>AESOrTKIP</wifi:RsnEncryption><wifi:RsnAuthorization>autoWPA</wifi:RsnAuthorization><wifi:PassPhrase>%s</wifi:PassPhrase></io:WpaPassPhraseInfo></io:KeyInfo>c                 @   t        j                         }d}| j                         dk(  r| j                          | j	                         dk(  rJ| j                          	 | j                  d||      r	 | j                  d||      r| j                          y 	 | j                  | j                  ||       | j                          y 	 | j                  | j                  ||       | j                          y # t        $ r t        j                  d       Y w xY w# | j                          w xY w# t        $ r t        j                  d       Y w xY w# | j                          w xY w# t        $ r t        j                  d       Y w xY w# | j                          w xY w)Nr      "Unable to read Marvell_EWS ChannelUnable to read EWS_LEDM ChannelUnable to read LEDM Channel)ioBytesIOopenLEDM	closeLEDMopenEWS_LEDMopenMarvell_EWSreadMarvell_EWSErrorlogerrorcloseMarvell_EWSreadLEDMAllDatareadEWS_LEDMcloseEWS_LEDMreadLEDM)devresponsetimeouts      !/usr/share/hplip/base/LedmWifi.pyflushThePortr%   6   sW   zz|HG
||~#!'))$'B ))$'B
 $$&$##C$4$4hH !!#	h@ MMO#  @		>?@ $$&  =		;<= !!#  	5II34	5 MMOsl   'C5 D. E' 5DD DD D+.EE EE E$'FF FF Fc                    i i dt         f\  }}}}d}t        |        |t        k  rC|dz  }t        dt	        t              dz
   }t        | |dd      \  }}|t        k(  rn
|t        k  rC|t        k7  rt        j                  d|z         |S t	              |d<   t	        |      dk7  rBd}|D ];  }d|d|z  <   d|d	|z  <   	 |d
   |d|z  <   	 |d   |d|z  <   	 |d   |d|z  <   |dz   }= |S # t        $ r*}	t        j                  d|	z         d|d|z  <   Y d }	~	Od }	~	ww xY w# t        $ r*}	t        j                  d|	z         d|d|z  <   Y d }	~	yd }	~	ww xY w# t        $ r*}	t        j                  d|	z         d|d|z  <   Y d }	~	d }	~	ww xY w)Nr   r   z<io:Adaptersz<io:Adapter>$Request Failed With Response Code %dadaptorlistlength zadaptorpresence-%dzadaptorstate-%dz;io:adapter-map:resourcenode-map:resourcelink-dd:resourceurizadaptorid-%dMissing response key: %sz$io:adapter-io:hardwareconfig-dd:namezadaptorname-%dz:io:adapter-io:hardwareconfig-dd:deviceconnectivityporttypeadaptortype-%d)
HTTP_ERRORr%   MAX_RETRIESLEDM_WIFI_BASE_URIlenreadXmlTagDataFromURIHTTP_OKr   r   KeyErrordebug)
r!   retparamselementCountcode	max_triesURI
paramsListaes
             r$   getAdaptorListr=   S   s   "$R*"4 C|DI
k
!A	 3'9#:1#<=/CW
47? k
! w		8=>
":C
:!A$ 02(1,--/%)*/.45r.sC*+3067]0^C(1,-3067s0tC(1,-
 aC'( J   /II81<=,.C*+/
   3II81<=02C(1,-3
   3II81<=02C(1,-3sH    C,D"E,	D5 DD"	E+ EE	F! FFc           
         g }t        |       }	 |d   }t        |      D ]n  }	 |d|z     }|j                         dv sg d}g }|D ]4  }	 |dj	                  |dt        |      g         }	|j                  |	       6 |j                  |       p |S # t        $ r d}Y w xY w# t        $ r d}Y w xY w# t        $ r |dk(  rd	}	nd
}	Y _w xY w)Nr(   r   r+   r)   )wifiembeddedwifiaccessory)	adaptoridadaptornameadaptorstateadaptorpresence-rA   r   Unknown)r=   r2   rangelowerjoinstrappend)
r!   rValr4   num_adaptorsnnamer5   rpxs
             r$   getWifiAdaptorIDrS   |   s   D

C./ <  	'!+,D ::<<<TFA 	&BGGQSV$456A 	 KKN), K3    	D	   &K'%	&s4   B B#
 B4B B #B10B14C
	C
c           
         d}d}|D ]  }|d   }|d   }i ddt         f\  }}}}	t        |z   }t        |z  }t        | ||d      |d<   |d   t        k(  sH|d   t
        k(  s<t        j                  d|d   d|d	|d
       t        |z  }t        | ||d      |d<   |d   t        k(  s.|d   t
        k(  s"t        j                  d|d   d|d	|       t        j                  d|d	|       |||d   |d   fc S  y)Nr   r)   r   r   <   errorreturnz2Wifi Adapter turn ON request Failed. ResponseCode=z AdaptorId=z AdaptorName=z. Trying another interfacez3Wifi Adapter turn ON request is Success. AdaptorId=r      )r   r)   r)   r)   )
r,   r.   adapterPowerXml_payload1writeXmlDataToURIr1   HTTP_NOCONTENTr   r3   adapterPowerXml_payload2r   )
r!   adapterListpower_state
adaptor_idadaptorNamer;   r4   powerXmlr9   r7   s
             r$   setAdaptorPowerra      sM   JK 5aDzqT{!"R
2s8C+-s*[9x-c#hrBs=- G+s=/A^/S
))  DG  HU  DV  Wa  bm  n  o-<(0S"E#m
- G+s=/A^/S
))ilmzi{  }G  HS  T  U
))]ghst
u[!A$!4
4%5(     c                 X   i }|t         |z   dz   }nt         |z   dz   |z   }	 t        | |ddd      \  }}}|t        k(  r	 ||d<   |t        k7  rt        j                  d|z         |S ||dk(  r	 t        j                  t        |d	         j                  d
            j                  d
      }|st        d      |d<   n||d<   	 t        j                  t        |d         j                  d
            j                  d
      |d<   |d   |d<   |d   |d<   |d   |d<   |d   |d<   |d   |d<   |S t        |      D ]  }		 	 t        j                  t        |d|	z           j                  d
            j                  d
      }|st        d      |d|	z  <   n||d|	z  <   	 t        j                  t        |d|	z           j                  d
            j                  d
      |d|	z  <   |d|	z     |d|	z  <   |d |	z     |d!|	z  <   |d"|	z     |d#|	z  <   |d$|	z     |d%|	z  <   |d&|	z     |d'|	z  <   	 d(|d)<   d*|d+<    |S #  |d   |d<   Y CxY w# t        $ r#}t        j                  d|z         Y d }~|S d }~ww xY w# t        $ r |d|	z     }Y t        j                   $ r}
|d|	z     }Y d }
~
-d }
~
ww xY w#  |d|	z     |d|	z  <   Y xY w# t        $ r"}t        j                  d|z         Y d }~d }~ww xY w# t        $ r#}t        j                  d|z         Y d }~d }~ww xY w),Nz/WifiNetworks/WifiNetworks/SSID=<io:WifiNetworks<io:WifiNetwork>   numberofscanentriesr'   r   z(io:wifinetworks-io:wifinetwork-wifi:ssidutf-8z	(unknown)zssid-0z)io:wifinetworks-io:wifinetwork-wifi:bssidzbssid-0z+io:wifinetworks-io:wifinetwork-wifi:channelz	channel-0z5io:wifinetworks-io:wifinetwork-wifi:communicationmodezcommunicationmode-05io:wifinetworks-io:wifinetwork-io:signalinfo-wifi:dbmzdbm-0z2io:wifinetworks-io:wifinetwork-wifi:encryptiontypezencryptiontype-0@io:wifinetworks-io:wifinetwork-io:signalinfo-wifi:signalstrengthzsignalstrength-0r*   z+io:wifinetworks-io:wifinetwork-wifi:ssid-%dzssid-%dz,io:wifinetworks-io:wifinetwork-wifi:bssid-%dzbssid-%dz.io:wifinetworks-io:wifinetwork-wifi:channel-%dz
channel-%dz8io:wifinetworks-io:wifinetwork-wifi:communicationmode-%dzcommunicationmode-%dz8io:wifinetworks-io:wifinetwork-io:signalinfo-wifi:dbm-%dzdbm-%dz5io:wifinetworks-io:wifinetwork-wifi:encryptiontype-%dzencryptiontype-%dzCio:wifinetworks-io:wifinetwork-io:signalinfo-wifi:signalstrength-%dzsignalstrength-%d   signalstrengthmaxr   signalstrengthmin)r.   readXmlDataFromURIHTTP_ACCEPTEDr1   r   r   binascii	unhexlifyrJ   encodedecode
to_unicoder2   r3   rG   	TypeErrorr   )r!   adapterNamessidr4   r9   r5   r7   r6   r<   r;   errs              r$   performScanrz      sE   	C| ;.@ ;.1FFtK
#5c#>PRdeg#h tL= !-Cw		8=>
1:))#f5_.`*a*h*hip*qryy  {B  C$.{$;CM$(CMY%-%7%7FCn<o8p8w8wx  9A  &B  &I  &I  JQ  &RC	N $**W#XK -34k-l)*%&]^G*01e*f&'*01s*t&'F J? <( >>Y'11#f=jmn=n6o2p2w2wx  3A   B   I   I  JQ   R  -7-DIM*-1IM*i.6.@.@VLz}~L~E  BA  BH  BH  IP  BQ  /R  /Y  /Y  Za  /bJN+ -33cfg3g,hCq()6<=wz{={6|C.23(./ilm/m(nC1%39:qtu:u3vC+a/039:  CD  ;D  4EC+a/0>/0C+,/0C+,9>> JUY%+,W%XC	N  :		4q899B JE: % Y%&SVW&WX#>> Y%&SVW&WXYi.45cfg5g.hJN+   >II81<==>
   >II81<==>s   1AI AH? 	(I AI>K"AJ:*AK1
K=?
I	I 	I;I66I;>J7KJ7$J2,K2J77K:K
K	K:K55K:=	L)L$$L)c                 v   d\  }}}}}}}d}	t         |z   dz   }
i t        d}}}d}|t        k  r+|dz  }t        | |
dd      \  }}}|t        k(  rn
|t        k  r+|t        k7  r:d}d}
|t        k  r-|dz  }t        | |
dd	      \  }}}|t        k(  rd
}	n
|t        k  r-|t        k7  r!t
        j                  d|z         |||||||fS |	dk(  rd||t        k(  r	 |d   }|d   }|d   }d|d   v rd}n>d}|dk(  r7|d   }|d   }t        |      D ]  }|d|z     dk7  s|d|z     }|d|z     } n n;|9|t        k(  r0	 	 |d   }	 |d   }	 |d   }	 |d   }d|j                         v rd}nd}t
        j                  d!|d"|d#|d$|d%|d&|d'|       |||||||fS # t        $ r+}t
        j                  dt        |      z         Y d }~bd }~ww xY w#  |d   }Y xY w#  |d   }Y xY w#  |d   }Y xY w#  |d    }Y xY w# t        $ r+}t
        j                  dt        |      z         Y d }~d }~ww xY w)(N)0.0.0.0rF   rF   r|   r|   r|   r|   oldz
/Protocolsr   r   z<io:Protocolz/DevMgmt/IOConfigDyn.xmlz<iocfgdyn2:IOConfigDynz<dd3:IOAdaptorConfignewr'   zTio:protocols-io:protocol-io:addresses-io:ipv4addresses-io:ipv4address-dd:ipv4addresszSio:protocols-io:protocol-io:addresses-io:ipv4addresses-io:ipv4address-dd:subnetmaskzWio:protocols-io:protocol-io:addresses-io:ipv4addresses-io:ipv4address-dd:defaultgatewayDHCPzUio:protocols-io:protocol-io:addresses-io:ipv4addresses-io:ipv4address-dd:configmethoddhcpautoipz.io:protocols-io:protocol-dd:dnsserveripaddressz7io:protocols-io:protocol-dd:secondarydnsserveripaddressz1io:protocols-io:protocol-dd:dnsserveripaddress-%dz::z:io:protocols-io:protocol-dd:secondarydnsserveripaddress-%dr*   zpiocfgdyn2:ioconfigdyn-dd3:ioadaptorconfig-dd3:networkadaptorconfig-dd3:ipversionconfig-dd3:ipconfig-dd:ipaddresszriocfgdyn2:ioconfigdyn-dd3:ioadaptorconfig-dd3:networkadaptorconfig-dd3:ipversionconfig-dd3:ipconfig-dd:ipaddress-0zqiocfgdyn2:ioconfigdyn-dd3:ioadaptorconfig-dd3:networkadaptorconfig-dd3:ipversionconfig-dd3:ipconfig-dd:subnetmaskzsiocfgdyn2:ioconfigdyn-dd3:ioadaptorconfig-dd3:networkadaptorconfig-dd3:ipversionconfig-dd3:ipconfig-dd:subnetmask-0zuiocfgdyn2:ioconfigdyn-dd3:ioadaptorconfig-dd3:networkadaptorconfig-dd3:ipversionconfig-dd3:ipconfig-dd:defaultgatewayzwiocfgdyn2:ioconfigdyn-dd3:ioadaptorconfig-dd3:networkadaptorconfig-dd3:ipversionconfig-dd3:ipconfig-dd:defaultgateway-0zuiocfgdyn2:ioconfigdyn-dd3:ioadaptorconfig-dd3:networkadaptorconfig-dd3:ipversionconfig-dd3:ipconfig-dd:ipconfigmethodzwiocfgdyn2:ioconfigdyn-dd3:ioadaptorconfig-dd3:networkadaptorconfig-dd3:ipversionconfig-dd3:ipconfig-dd:ipconfigmethod-0zip=z, hostname=z, addressmode=z, subnetmask=z
, gateway=z	, pridns=z
, sec_dns=)r.   r,   r-   ro   r1   r   r   rG   r2   rJ   rH   r3   )r!   rw   iphostnameaddressmode
subnetmaskgatewaypridnssec_dnsprotocolr9   r5   r7   r6   r8   r;   r<   s                    r$   getIPConfigurationr      sQ   S DB+z7FGH
{
*\
9C!*Q4FI
k
!A	#5c#nn#] tL7?	 k
! w	(+%MI'9#cBZ\r's$F4w  +% w		8$>?8[*gvwNN5$'/?rs#$yz
 !z{V${||"(K"*K#a'!'(X!Y"()b"c!&|!4 &A%&Y[\&\]`dd)/0cef0f)g*01mop1p*q %	& $'/'?V  !S  TB
_!'  )\  "]J
`$  &]  ^G
d"(  *a  #bK [..00"(K"*K IIfhjrt  BL  NU  W]  _f  g  hxj'67JJ]  ?		4s1v=>>?V  !U  VB
_!'  )^  "_J
`$  &_  `G
d"(  *c  #dK  ?		4s1v=>>?s   AF F <G G  G, G8 H 	G&!GGGH  G)'H ,G53H 8H?H 	H8!H33H8c                 *   d\  }}}}}}i i t         t         df\  }}	}
}}t        |z   dz   }d}d}|t        k  rF|dz  }t        | |dd      \  }}
}t        | |dd      \  }	}}|
t        k(  r
|t        k(  rn
|t        k  rF|
t        k7  r,|t        k7  r#t
        j                  dt        z         |||||fS |!|		 |d	   }|d
   }|d   }|d   }|d   }|	d   }||||||fS # t        $ r+}t
        j                  dt        |      z         Y d }~7d }~ww xY w)N)r)   r)   r)   r)   r)   r)   r   /Profiles/Active/IoMgmt/IoConfig.xmlr   <io:Profile<io:IoConfigr'   z8io:profile-io:networkprofile-io:ipv4network-dd:ipaddressz9io:profile-io:networkprofile-io:ipv4network-dd:subnetmaskz=io:profile-io:networkprofile-io:ipv4network-dd:defaultgatewayzAio:profile-io:networkprofile-io:ipv4network-dd:dnsserveripaddresszJio:profile-io:networkprofile-io:ipv4network-dd:secondarydnsserveripaddressz[io:ioconfig-io:iodeviceprotocolconfig-io:ipv4domainname-dd:domainnameconfig-dd:configmethodr*   )r,   r.   r-   ro   r1   r   r   r7   r2   r3   rJ   )r!   rw   r   subnetr   pri_dnsr   modeparams1params2code1code2r6   URI1URI2r8   r<   s                    r$   getwifiotherdetailsr   c  sl   2H/B'424b*jQR2R0GWeUL+.@@D!DI
k
!A	'9#d=R_'`$'9#d>Sa'b$G 0 k
! w5G+		8$>?67GW44w2		;STBXYF]^GbcGjkGxyD vw$66  	;II03q69::	;s   8C 	D'!DDc                    d\  }}}i t         d}}}t        |z   dz   }d}	|	t        k  r+|	dz  }	t        | |dd      \  }}}|t        k(  rn
|	t        k  r+|t        k7  rt
        j                  d|z         |||fS |	 |d   }|d   }|d	   }|||fS # t        $ r+}
t
        j                  d
t        |
      z         Y d }
~
4d }
~
ww xY w)N)r)   r)   r)   r   r   r   r   r'   zBio:profile-io:adapterprofile-io:wifiprofile-wifi:communicationmodez?io:profile-io:adapterprofile-io:wifiprofile-wifi:encryptiontypez6io:profile-io:adapterprofile-io:wifiprofile-wifi:bssidr*   )
r,   r.   r-   ro   r1   r   r   r2   r3   rJ   )r!   rw   algr   secretidparmsr7   r6   r9   r8   r<   s              r$   getCryptoSuiter     s    $Cx
1|$E
{
*-?
?CI
k
!A	"4S]M"Zd<7?	 k
! g~		8$>?T8##	;]^DYZCUVH x  	;II03q69::	;s   <B 	C!B??Cc           
      d   i t         }}t        |z   dz   }|dk(  r;d}	t        t        j                  t        |            j                  d      |||	fz  }
n|}	t        j                  ddt        t                    }t        d | t        z   t        |d  z   t        j                  t        |            j                  d      |||	t        j                  t        |            j                  d      fz  }
t        | ||
d      }||d<   |t        k(  s!t        st        j                  d	|d   z         |S )
Nr   noneopenri   z</io:WifiProfile>r   rU   rV   r'   )r,   r.   passPhraseXmlrq   hexlifyr   rt   findr/   
keyInfoXmlrY   r1   rZ   r   r   )r!   rw   rx   communication_modeencryption_typekeyr4   r7   r9   authModeppXmlposs               r$   	associater     s;   *C
{
*-?
?C& x//d0CDKKGTVhix  zB  C  C"  !4Qs=7IJt$z1M#$4GG(JZJZ[him[nJoJvJvw~J  AS  Tc!!-"45<<WEJG G SU2.DC7?n		83};MMNJrb   c                 `   g i t         df\  }}}}d\  }}t        |z   dz   }d}	|	t        k  r,|	dz  }	t        | |ddd      \  }}}|t        k(  rn
|	t        k  r,|t        k7  rt
        j                  d|z         |S |	 |d   }	 |d
   }|j                  ||f       |S #  d	}Y !xY w#  d	}Y $xY w)Nr   )r)   r)   z/VsaCodes.xmlr   z<io:VsaCodes
   r'   z$io:vsacodes-wifi:vsacode-dd:severityr)   z(io:vsacodes-wifi:vsacode-wifi:rulenumber)r,   r.   r-   ro   r1   r   warnrK   )
r!   rw   r4   r5   r7   r6   severityruler9   r8   s
             r$   getVSACodesr     s    #%bA#5 CtLMHT
{
*_
<CI
k
!A	#5c#n^\^#_ tL7?	 k
! w7<=
	CDH	DED
 	

D(#$J	H
	Ds   >B B' B$'B-c                 2   d}d}d}|t         k  r+|dz  }t        | |dd      \  }}}|t        k(  rn
|t         k  r+t        k7  rt        j	                  d|z         |S 	 |d   }|S |S # t
        $ r#}t        j                  d|z         Y d }~|S d }~ww xY w)	Nr)   r   r   r   r   z9Request failed with Response code %d. HostName not found.z*io:ioconfig-io:iodeviceconfig-dd3:hostnamer*   )r-   ro   r1   r   r   r2   r3   )r!   hostNamer9   r8   r5   r7   r6   r<   s           r$   getHostnamer     s    H
 CI
k
!A	#5c#nn#] tL7?	 k
! wLTQR	6JKH H  	6II01455	6s   !A* *	B3BBc                    d\  }}}}i t         d}
}	}|t        |z   dz   |z   }n||||fS 	 t        | |ddd      \  }}	}
|	t        k(  rt        j                  d       3	 |	t        k7  rt        j                  d|	z         ||||fS ||
d	k(  r	 |d
   }|d   }||||fS # t        $ r"}t        j                  d|z         Y d }~,d }~ww xY w)N)rl   r   r   i8r   rd   re   rf   r   zCGot Response as HTTP_ACCEPTED, so retrying to get the actual resultr'   r   rj   rk   r*   )	r,   r.   ro   rp   r   infor1   r   r2   )r!   rw   rx   r^   ss_maxss_minss_valss_dbmr5   r7   r6   r9   r<   s                r$   getSignalStrengthr     s
   %2"FFFF!*Q4F ;.1FFtKvvv--
#5c#>PRdeg#h tL= HHZ[w		8=>vvv--1: WX bc FFF**  :		4q899:s   
B 	C&CCc                    g t         }}t        |dd      }t        j                  |       t	        j
                         }| j                         dk(  r| j                          | j                         dk(  rK| j                          | j                  |       	 | j                  d||      r	 | j                  d||      rn_| j                  |       	 | j!                  | j"                  ||       n/| j'                  |       	 | j!                  | j(                  ||       |j+                         j-                  d      }	|	t/        |	      }|t0        k(  rlt3        j4                  |	      }	|	j7                  |dt9        |	            }
|	|
d  j;                         }|j=                  d	d
      j=                  dd
      j=                  dd
      }|j?                  d      }	 t3        j@                         }|jC                  |      }djE                  d tG        d |      D              }|jI                  |      }|D ]  }|jK                         }|j=                  d	d
      j=                  dd
      j=                  dd
      }t3        jL                         jO                  tQ        |            }|jS                  |        	 ||fS t        j]                  d|z         ||fS # t        $ r) | j                          t        j                  d       Y w xY w# t        $ r) | j%                          t        j                  d       Y %w xY w# t        $ r) | j                          t        j                  d       Y Zw xY w# tT        jV                  jX                  jZ                  $ r%}t        j]                  d|z         Y d }~||fS d }~ww xY w)Nr   r)   r   r   r   r   r   ri    	
0c              3       K   | ]  }|  y wN ).0ls     r$   	<genexpr>z(readXmlTagDataFromURI.<locals>.<genexpr>6  s     (dq(ds   c                 
    | dvS )Nz<>r   )rR   s    r$   <lambda>z'readXmlTagDataFromURI.<locals>.<lambda>6  s
    Qd] rb   XML parser failed: %sz!HTTP Responce failed with %s code)/r,   format_http_getr   r   r   r   r   r   r   r   writeMarvell_EWSr   r   r   r   writeEWS_LEDMreadLEDMDatar   r   	writeLEDMr    getvaluert   get_error_coder1   r   extract_xml_chunkr   r/   stripreplacerstripextendedExpatParserI   filtergetElementsByTagNametoStringXMLToDictParserparseXMLr   rK   xmlparsersexpat
ExpatErrorr3   )r!   r9   xmlRootNodexmlReqDataNoder#   r:   r7   datar"   strRespr   repstrparser_objectroot_elementreqDataElementListnoder5   r<   s                     r$   r0   r0     sF   
tJ3q$DHHTNzz|H
||~#!  &@))$'B ))$'B d#=  !1!18WE
 	d	5S\\8W=
 !((1Gg&7?--g6G,,{1S\:CST]((*F^^D-55d3?GGSQF]]3'F7 % 3 3 5,226:!#(dF;RTb4c(d!d%1%F%F~%V". .D!]]_F#^^D5==d3GOOPTUXYF"224==mF>STF%%f-	. d? II9$>?d?U  @$$&		>?@  =!!#		;<=  	5MMOII34	50 ;;$$// 7		1A566 d?	7sO   'K L M CM= .LL.MM.M:9M:='O	$OO	c                 6   i t         d}}}t        |dd      }t        j                  |       t	        j
                         }	| j                         dk(  r| j                          | j                         dk(  rK| j                          | j                  |       	 | j                  d|	|      r	 | j                  d|	|      rn_| j                  |       	 | j!                  | j"                  |	|       n/| j'                  |       	 | j!                  | j(                  |	|       |	j+                         j-                  d      }
|
t/        |
      }|t0        k(  rt3        j4                  |
      }
|
j7                  |dt9        |
            }|
|d  j;                         }|j=                  d	d
      j=                  dd
      j=                  dd
      }|j?                  d      }|jA                  |      }	 t3        jB                         jE                  |      }nt        jO                  d|z         |||fS # t        $ r) | j                          t        j                  d       Y @w xY w# t        $ r) | j%                          t        j                  d       Y uw xY w# t        $ r) | j                          t        j                  d       Y w xY w# tF        jH                  jJ                  jL                  $ r"}t        jO                  d|z         Y d }~d }~ww xY w)Nr   r)   r   r   r   r   r   ri   r   r   r   r   r   r   z" HTTP Responce failed with %s code)(r,   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   rt   r   r1   r   r   r   r/   r   r   r   countr   r   r   r   r   r   r3   )r!   r9   r   xmlChildNoder#   r5   r7   r6   r   r"   r   r   r   r<   s                 r$   ro   ro   E  s    A4F3q$DHHTNzz|H
||~#!  &@))$'B ))$'B d#=  !1!18GD
 	d	5S\\8G<
 !((1Gg&7?--g6G,,{1S\:CST]((*F^^D-55d3?GGSQF]]3'F!<<5L7..099&A II:4?@$|##I  @$$&		>?@  =!!#		;<=  	5MMOII34	5" ;;$$// 7		1A5667sN   'H0 I% J /#K 0.I"!I"%.JJ.KK'L6LLc                    t         }t        |t        |      |      }t        j                         }| j                         dk(  r| j                         dk(  rK| j                          | j                  |       	 | j                  d||      r	 | j                  d||      rn_| j                  |       	 | j                  | j                   ||       n/| j%                  |       	 | j                  | j&                  ||       |j+                         j-                  d      }|t/        |      }|S # t        $ r( | j                          t        j                  d       Y ^w xY w# t        $ r( | j#                          t        j                  d       Y w xY w# t        $ r( | j)                          t        j                  d       Y w xY w)Nr   i  r   r   r   ri   )r,   format_http_putr/   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   rt   r   )r!   r9   r   r#   r7   r   r"   r   s           r$   rY   rY   {  s   D3s3x,Dzz|H
||~#!  &@((xA ((xA d#=  !1!18WE 	d	5S\\8G= !((1Gg&K/  @$$&		>?@  =!!#		;<=  	5MMOII34	5s6   9'D/ 4E# $F /.E E #.FF.GGc                     | st         S t        j                  |       }|t         S 	 t        |j	                  d            }|S # t
        t        f$ r
 t         }Y |S w xY w)Nr   )r,   http_result_patmatchintgroup
ValueErrorrv   )r4   r   r7   s      r$   r   r     sb    z!!!#&E}Z'5;;q>" K 	" Ks   A AAc                 0    d}t        j                  d      S )N	localhostz{GET $requst HTTP/1.1
Host: $host
User-Agent: hplip/3.0
Content-Type: $content_type
Content-Length: $ledmlen

$xmldatar   catrequstledmlenxmldatacontent_typehosts        r$   r   r         DII rb   c                 0    d}t        j                  d      S )Nr   z{PUT $requst HTTP/1.1
Host: $host
User-Agent: hplip/3.0
Content-Type: $content_type
Content-Length: $ledmlen

$xmldatar   r   s        r$   r   r     r   rb   )onr   )r   )rU   )ztext/xml; charset=utf-8),timer   rq   xml.parsers.expatr   stringgr)   r   r   sixextr   recompileIr   r1   rp   rZ   r,   r-   r.   r[   rX   r   r   r%   r=   rS   ra   rz   r   r   r   r   r   r   r   r0   ro   rY   r   r   r   r   rb   r$   <module>r     s   .  	      !**5rtt<

(  h  E  y g
:&RB2HT]KF7> 6*>.+@9z3$l$N		rb   