+
    ˜qgjt  ã                   óÆ   € ^ 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ˆŒ
Ø ˆÔÜ×Ñ×#Ñ# D°6Ö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ÐßÜ�I‰IÐ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  € ð
 ˆð	Ø!ŸZ™ZŸ^™^Ó-×4Ñ4ˆNØ(¨Õ0ˆKð ×,Ñ,Ø�_‰_Ð/Ó0Ð1ó
ˆŒð ”W×,Ñ,Ô,Ùà#Ÿ™¨¸Ó<×BÑBÀ3ÓGˆØ'ŸO™OÐ,AÀ2ÓFˆÔØ  MÔ1Ü )¨$×*;Ñ*;Ó <ˆDÔØ˜.×,Ñ,¨]¸BÓ?Ô?Ø"0°Õ"?ÀÕ"LˆDÔà&ŒØ)Ð*:Õ;ˆÔáøô- ô 	ô �I‰IÐ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]   € ô
 �8Š8Ð*¨D¯M©M¸&Õ,A×BÒBØ—-‘- Õ'¨Õ,‰Cà—-‘- Õ'×-Ñ-¨cÓ2°1Õ5ˆCÜ! # 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   € ô ×$Ò$ W¬kÓ:Ð: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   