
    d
                     b    d dl mZ d dlmc mZ 	  G d de      Z G d de      Zd Z	d Z
d	 Zy)
    )ProtocolErrorNc                       e Zd Zy)DataContractN)__name__
__module____qualname__     E/usr/lib/python3/dist-packages/azurelinuxagent/common/datacontract.pyr   r      s    r
   r   c                       e Zd Zd Zy)DataContractListc                     || _         y N)item_cls)selfr   s     r   __init__zDataContractList.__init__#   s	     r
   N)r   r   r   r   r	   r
   r   r   r   "   s    !r
   r   c           	          |t        dj                  |             t        ||      s%t        dj                  | |t        |                  y )Nz{0} is Nonez{0} type should be {1} not {2})r   format
isinstancetype)namevalexpected_types      r   validate_paramr   '   sR    
{M00677c=)  !'mT#Y!GI 	I *r
   c                 $   t        |t              rst        dj                  |       |t               |j                         D ]>  \  }}dj                  | |      }	 t        ||      }t        |||      }t        |||       @ |S t        |t              rWt        dj                  |       |t               |D ]0  }|j                         }t        | ||      }|j                  |       2 |S |S # t        $ r t        j                  d|       Y w xY w)NzProperty '{0}'z{0}.{1}zUnknown property: {0}z
List '{0}')r   r   r   r   dictitemsgetattrAttributeErrorloggerwarnset_propertiessetattrr   listr   append)	r   objdata	prob_nameprob_valprob_full_nameprob	item_dataitems	            r   r"   r"   /   s	   #|$'..t4dDA#'::< 	*Ix&--dI>NsI. ".$ADCD)	* 
	C)	*|**40$= 	I<<>D!$i8DJJt	 
 " 3^Ds   C--DDc                    t        | t              r>i }t        |       }t        |j	                               D ]  \  }}t        |      ||<    |S t        | t              r'g }| D ]  }t        |      }|j                  |         |S | S r   )r   r   varsr$   r   get_propertiesr   r%   )r&   r'   propsr(   r+   r-   r,   s          r   r0   r0   G   s    #|$S	#EKKM2 	3OIt,T2DO	3	C)	* 	#D&t,IKK	"	# 
r
   ) azurelinuxagent.common.exceptionr   azurelinuxagent.common.loggercommonr    objectr   r$   r   r   r"   r0   r	   r
   r   <module>r6      s=   ( ; . .	6 	!t !
I0r
   