+
    it                         ^ RI t ^ RIt^ RIHt ^ RIHtHt ^ RIHt ^ RI	H
t
Ht ] P                  ! ]4      t ! R R]P                  4      t]t]]P$                  33.tR tR# )	    N)	b64decode)dmisources)DataSourceHostname)SERIAL_PORTCepkoc                   `   a  ] tR t^t o RtRtR t]R 4       tR t	R t
RR ltR tR	 tR
tV tR# )DataSourceCloudSigmaz
Uses cepko in order to gather the server context from the VM.

For more information about CloudSigma's Server Context:
http://cloudsigma-docs.readthedocs.org/en/latest/server_context.html

CloudSigmac                r    \        4       V n        R V n        \        P                  P                  WW#4       R# ) N)r   cepkossh_public_keyr   
DataSource__init__)selfsys_cfgdistropathss   &&&&H/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceCloudSigma.pyr   DataSourceCloudSigma.__init__   s)    W
 ##D6A    c                     \         P                  R4       \        P                  ! R4      p V '       g   \         P                  R4       R# \         P                  RV 4       RV P	                  4       9   # )zg
Uses dmi data to detect if this instance of cloud-init is running
in the CloudSigma's infrastructure.
z0determining hypervisor product name via dmi datazsystem-product-namez-system-product-name not available in dmi dataFzdetected hypervisor as %s
cloudsigma)LOGdebugr   read_dmi_datalower)sys_product_names    r   	ds_detectDataSourceCloudSigma.ds_detect!   s[     			DE,,-BCIIEF		-/?@/55777r   c                `   Rp V P                   P                  4       P                  pVR,          pT P                  TP                  R4      .4      T n        T\        P                  8X  d   R# TP                  RR4      P                  R4      pTP                  R	R4      T n        R	T9   d   \        T P                  4      T n        R
TP                  R/ 4      9   d   TR,          R
,          T n        Y n        TR,          T n        R#   \         d    \        P                  R4        R# i ; i)zR
Metadata is the whole server context and /meta/cloud-config is used
as userdata.
Nmetaz+CloudSigma: Unable to read from serial portFzcloudinit-dsmodebase64_fieldsr   ,zcloudinit-user-data	cloudinitvendor_datar   T)r   allresult	Exceptionr   r   _determine_dsmodegetdsmoder   DSMODE_DISABLEDsplituserdata_rawr   vendordata_rawmetadatar   )r   r-   server_contextserver_metar$   s   &    r   	_get_dataDataSourceCloudSigma._get_data0   s   
 	!ZZ^^-44N(0K ,,__/01
 W,,,#<BB3G'OO,A2F M1 )$*;*; <D.,,]B??"0"?"LD&)*:;-  	 IICD		s   -D	 	 D-,D-c                    R\         ,          # )z/Return the subplatform metadata source details.z
cepko (%s))r   r   s   &r   _get_subplatform%DataSourceCloudSigma._get_subplatformR   s    k))r   c                    \         P                  ! RV P                  R,          4      '       d   V P                  R,          R,          pM)V P                  R,          P                  R4      ^ ,          p\	        VR4      # )zn
Cleans up and uses the server's name if the latter is set. Otherwise
the first part from uuid is being used.
z^[A-Za-z0-9 -_\.]+$name:N=   Nuuid-F)rematchr2   r/   r   )r   fqdn
resolve_ipmetadata_onlyrets   &&&& r   get_hostname!DataSourceCloudSigma.get_hostnameV   s]    
 88*DMM&,ABB--',C--'--c215C!#u--r   c                    V P                   .# )N)r   r8   s   &r   get_public_ssh_keys(DataSourceCloudSigma.get_public_ssh_keysa   s    ##$$r   c                (    V P                   R ,          # )r>   )r2   r8   s   &r   get_instance_id$DataSourceCloudSigma.get_instance_idd   s    }}V$$r   )r   r-   r2   r   r0   r1   N)FFF)__name__
__module____qualname____firstlineno____doc__dsnamer   staticmethodr    r5   r9   rF   rI   rL   __static_attributes____classdictcell__)__classdict__s   @r   r
   r
      sJ      FB
 8 8 D*	.%% %r   r
   c                8    \         P                  ! V \        4      # )zC
Return a list of data sources that match this set of dependencies
)r   list_from_dependsdatasources)dependss   &r   get_datasource_listr\   r   s     $$Wk::r   )loggingr@   base64r   r&   r   r   cloudinit.sourcesr   $cloudinit.sources.helpers.cloudsigmar   r   	getLoggerrN   r   r   r
   DataSourceCloudSigmaNetDEP_FILESYSTEMrZ   r\    r   r   <module>re      se     	  " 0 C!S%7-- S%n / 
 G2245
;r   