+
    |w¼jí0  ã                  ó  € R t ^ RIHt ^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIHt ^ RIHt ^ RIHtHtHt  ! R R]4      t]! R	R
7       ! R R4      4       tRR/R R lltR^dRRRR/R R lltR R ltR R ltR# )zGC-DATA FD1601S-B1 Hardware Provisioning Executor with Host Key Pinning.)ÚannotationsN)Ú	dataclass)Údecrypt_secret)Ú_normalize_sha256_fingerprint)Únormalize_pon_portÚ_fingerprintÚ_readc                  ó   € ] tR t^tRtR# )ÚCDataExecutionError© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ú0/var/www/html/bestweb/app/core/cdata_executor.pyr
   r
      s   † Ûr   r
   T)Úfrozenc                  óX   € ] tR t^t$ R]R&   R]R&   R]R&   R]R&   R]R&   R	tR]R
&   RtR# )ÚCDataProvisionResultÚboolÚsuccessÚstrÚpon_portÚintÚonu_idÚserial_numberÚmessageÚ Úraw_transcriptr   N)r   r   r   r   Ú__annotations__r   r   r   r   r   r   r      s&   ‡ àƒMØƒMØƒKØÓØƒLØ€N�C×r   r   Úprofile_namec               ó@   € V ^8„  d   QhRRRRRRRRRRR	RR
RRRRRRR/
# )é   Úhostr   Úportr   ÚusernameÚencrypted_secretÚpinned_host_keyú
str | Noner   r   r   r!   Úreturnr   r   )Úformats   "r   Ú__annotate__r,      sz   € ÷ rñ rà
ðrð ðrð ð	rð
 ðrð  ðrð ðrð ðrð ðrð ðrð ñrr   c        	        ó  a€ \        V4      p	V	P                  R^4      ^,          p
^Tu;8:  d   ^€8:  g   M \        RV R24      hVP                  4       P	                  4       p\
        P                  ! RV4      '       g   \        RV R24      h\        V4      pVf   \        R4      hV '       d   ^Tu;8:  d   R	8:  g   M \        R
4      hRpRpRpRp ^ RIp\        P                  ! W3^
R7      pVP                  V4      p^
Vn        ^
Vn        VP                  ^
R7       \        P                   ! \#        VP%                  4       4      V4      '       g   \        R4      h\'        V4      p VP)                  VVRR7       RpVP+                  4       '       g   \        R4      hVP-                  ^
R7      pVP/                  R^ ^(R7       VP1                  4        \3        VR4       R$R%R&RV
 RV RV R2R3.pV F’  w  ppVP5                  VR,           4       \3        VV4      oVS,          p\6        ;QJ d    V3R lR' 4       F  '       g   K   RM	  RM! V3R lR' 4       4      '       g   Ku  \        RV RSP                  4        24      h	  VP5                  RV
 RV R24       \3        VR4      pVV,          p\9        RV	VVRV RV	 R V R!2VR"7      Ve    VP;                  4        Ve    VP;                  4        Ve    VP;                  4        # #   Rpi ; i  \<         d     L@i ; i  \<         d     L<i ; i  \<         d     # i ; i  \<         d,   p\?        T\        4      '       d   h \        R#T 24      ThRp?ii ; i  Te$    TP;                  4        M  \<         d     Mi ; iTe$    TP;                  4        M  \<         d     Mi ; iTe$    TP;                  4        i   \<         d     i i ; ii ; i)(zžExecute bounded, safe ONU registration on C-DATA FD1601S-B1 OLT.

Commands sent:
- enable
- config
- interface gpon 0/0
- ont add {pon} {onu_id} sn-auth {sn}
Ú/úONU ID z tidak valid (harus 1-128).ú[A-Z0-9_-]{8,64}zSerial number z tidak valid.Nz<Provisioning diblokir: fingerprint host key SSH belum dipin.iÿÿ  z;Provisioning diblokir: endpoint management OLT tidak valid.r   ©ÚtimeoutzQProvisioning diblokir: fingerprint server tidak cocok dengan host key yang dipin.F©Úfallbackz,Provisioning gagal: autentikasi SSH ditolak.Úvt100©ÚtermÚwidthÚheightç333333ó?zont add Ú z	 sn-auth z/ ont-lineprofile-name 2p ont-srvprofile-name 2pç      @Úc              3  óH   <"  € T F  qSP                  4       9   x € K  	  R # 5i©N)Úlower)Ú.0ÚerrÚouts   & €r   Ú	<genexpr>Ú&provision_cdata_onu.<locals>.<genexpr>m   s   øé € ÐÑ1~¨#˜#Ÿ)™)›+Ö%Ó1~ùs   ƒ"TzOLT CLI menolak command 'z': úshow ont info z berhasil didaftarkan di PON z (SN: z).©r   r   r   r   r   r   zKoneksi/eksekusi OLT gagal: ©Úenabler:   ©Úconfigr:   ©úinterface gpon 0/0r:   )zinvalid inputzincomplete commandúunknown commandÚerrorÚfailed) r   Úrsplitr
   ÚstripÚupperÚreÚ	fullmatchr   ÚparamikoÚsocketÚcreate_connectionÚ	TransportÚbanner_timeoutÚauth_timeoutÚstart_clientÚhmacÚcompare_digestr   Úget_remote_server_keyr   Úauth_passwordÚis_authenticatedÚopen_sessionÚget_ptyÚinvoke_shellr   ÚsendÚanyr   ÚcloseÚ	ExceptionÚ
isinstance)r$   r%   r&   r'   r(   r   r   r   r!   Únormalized_ponÚponÚclean_snÚexpectedÚ	transportÚchannelÚsockÚ
transcriptrV   ÚsecretÚcommandsÚcmdÚwaitÚ
verify_outÚexcrC   s   $$$$$$$$$               @r   Úprovision_cdata_onurx      s  ø€ ô( (¨Ó1€NØ
×
Ñ
  QÓ
'¨Õ
*€Cà�Ö˜3ÖÜ! G¨F¨8Ð3NÐ"OÓPÐPà×"Ñ"Ó$×*Ñ*Ó,€HÜ�<Š<Ð+¨X×6Ò6Ü! N°=°/ÀÐ"OÓPÐPä,¨_Ó=€HØÒÜ!Ð"`ÓaÐaß˜˜TÖ* UÖ*Ü!Ð"_Ó`Ð`à€IØ€GØ€DØ€JðJÛÜ×'Ò'¨¨¸bÔAˆØ×&Ñ& tÓ,ˆ	Ø#%ˆ	Ô Ø!#ˆ	ÔØ×Ñ rÐÔ*ä×"Ò"¤<°	×0OÑ0OÓ0QÓ#RÐT\×]Ò]Ü%Ð&yÓzÐzäÐ 0Ó1ˆð	Ø×#Ñ# H¨f¸uÐ#ÔEàˆFà×)Ñ)×+Ò+Ü%Ð&TÓUÐUà×(Ñ(°Ð(Ó4ˆØ�‰˜W¨C¸ˆÔ;Ø×ÑÔÜˆg�sÔð ØØ'Ø˜�u˜A˜f˜X Y¨x¨jÐ8gÐhÐjmÐnð	
ˆó "‰IˆC�Ø�L‰L˜˜t�Ô$Ü˜ Ó&ˆCØ˜#ÕˆJç‹sÔÑ1~Ó�s�sŠsÔÑ1~Ó×ÔÜ)Ð,EÀcÀUÈ#ÈcÏiÉiËkÈ]Ð*[Ó\Ð\ñ "ð 	�‰�~ c U¨!¨F¨8°2Ð6Ô7Ü˜7 CÓ(ˆ
Ø�jÕ ˆ
ä#ØØ#ØØ"Ø˜f˜XÐ%BÀ>ÐBRÐRXÐYaÐXbÐbdÐeØ%ô
ð ÒðØ—‘”ð Ò ðØ—‘Ô!ð ÒðØ—
‘
•ð øðo ‰Fûô` ô Ùðûô
 ô Ùðûô
 ô Ùðûô% ô QÜ�cÔ.×/Ò/ØÜ!Ð$@ÀÀÐ"FÓGÈSÐPûðQûð
 ÒðØ—‘•øÜô ÙðúàÒ ðØ—‘Õ!øÜô ÙðúàÒðØ—
‘
•øÜô Ùðúð úsó   ÃBM Å0L ÆM ÆB3M ÉM É2A(M ËL"Ë4L3Ì	MÌLÌM Ì"L0Ì/L0Ì3MÍ MÍMÍMÍNÍ &NÎNÎN ÎPÎN%Î$PÎ%N3Î0PÎ2N3Î3PÎ;OÏPÏOÏPÏOÏPÏ"O3Ï2PÏ3PÏ>PÐ PÐPÚvlanÚline_profile_namez	pppoe-100Úservice_profile_nameÚ2pc               óP   € V ^8„  d   QhRRRRRRRRRRR	RR
RRRRRRRRRRRRRRR/# )r#   r$   r   r%   r   r&   r'   r(   r)   r   r   r   Úpppoe_usernameÚpppoe_passwordry   rz   r{   r*   r   r   )r+   s   "r   r,   r,   ”   s¦   € ÷ Sñ Sà
ðSð ðSð ð	Sð
 ðSð  ðSð ðSð ðSð ðSð ðSð ðSð ðSð ðSð ðSð ñSr   c                óF  a€ \        V4      pVP                  R^4      ^,          pVP                  4       P                  4       p^Tu;8:  d   ^€8:  d!   M M\        P
                  ! RV4      '       g   \        R4      h\        P
                  ! RV4      '       g   \        R4      h^T
u;8:  d   R8:  g   M \        R4      h\        V4      pVf   \        R	4      hR;p;ppR
p ^ RIp\        P                  ! W3^
R7      pVP                  V4      p^
;Vn        Vn        VP                  ^
R7       \        P                   ! \#        VP%                  4       4      V4      '       g   \        R4      h\'        V4      p VP)                  VVRR7       R
pVP+                  4       '       g   \        R4      hVP-                  ^
R7      pVP/                  R^´^<R7       VP1                  4        \3        VR4       R,R-R.RV RV RV RV 2R3RV RV RV RV	 RV
 R2R3RV RV R2R3R/R0R.R V RV 2R!3.
pV F°  w  ppVP5                  VR",           4       \3        VV4      pVV,          pVP7                  4       o\8        ;QJ d    V3R# lR1 4       F  '       g   K   R$M	  RM! V3R# lR1 4       4      '       g   K…  R%S9  g   KŽ  \        R&VP;                  4       ^ ,           R'24      h	  \=        R$WÖVR(V R)V
 R*2V4      VVV3 F  p Ve   VP?                  4        K  K  	  #   R
pi ; i  \@         d     K4  i ; i  \         d    h \@         d   p\        R+T 24      ThRp?ii ; i  TTT3 F,  p Te   TP?                  4        K  K    \@         d     K*  i ; i	  i ; i)2zAApply the verified C-DATA WAN PPPoE sequence to one existing ONU.r.   r0   zData ONU tidak valid.z[A-Za-z0-9_.@_-]{1,64}zUsername PPPoE tidak valid.iþ  zVLAN tidak valid.Nz%Fingerprint host key SSH belum dipin.r   r1   z#Fingerprint server OLT tidak cocok.Fr3   zAutentikasi SSH OLT ditolak.r5   r6   ç      ð?zont modify r;   z ont-lineprofile-name z ont-srvprofile-name g       @zont ipconfig z ip-index 0 pppoe username z
 password z vlan z priority 1g      @z! ip-index 0 connection-type routeg      ø?zont reboot g      $@r=   c              3  ó,   <"  € T F	  qS9   x € K  	  R # 5ir?   r   )rA   rB   Úlows   & €r   rD   Ú(provision_cdata_pppoe.<locals>.<genexpr>Ø   s   øé € ÐhÑ)g #˜#–:Ó)gùs   ƒTzalready existszOLT menolak tahap Ú.zWAN PPPoE ONU z diterapkan pada VLAN z dan ONU direboot.zEksekusi WAN PPPoE OLT gagal: ©rI   r�   )Úconfr�   ©rM   r�   )Úexitr�   )Úsaver<   )rN   ÚinvalidrO   rP   Ú	incorrect)!r   rQ   rR   rS   rT   rU   r
   r   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r   r_   r   r`   ra   rb   rc   rd   r   re   r@   rf   Úsplitr   rg   rh   )r$   r%   r&   r'   r(   r   r   r   r~   r   ry   rz   r{   rj   rk   rl   rm   rn   ro   rp   rq   rV   rr   rs   rt   ru   rC   Úobjrw   rƒ   s   $$$$$$$$$$$$$                @r   Úprovision_cdata_pppoer�   ”   sî  ø€ ô" (¨Ó1€NØ
×
Ñ
  QÓ
'¨Õ
*€CØ×"Ñ"Ó$×*Ñ*Ó,€HØ�Ö˜3×¤r§|¢|Ð4GÈ×'RÒ'RÜ!Ð"9Ó:Ð:Ü�<Š<Ð1°>×BÒBÜ!Ð"?Ó@Ð@Ø�Ö˜ÖÜ!Ð"5Ó6Ð6Ü,¨_Ó=€HØÒÜ!Ð"IÓJÐJØ!%Ð%€IÐ%�˜$Ø€Jð4ÛÜ×'Ò'¨¨¸bÔAˆØ×&Ñ& tÓ,ˆ	Ø<>Ð>ˆ	Ô  9Ô#9Ø×Ñ rÐÔ*Ü×"Ò"¤<°	×0OÑ0OÓ0QÓ#RÐT\×]Ò]Ü%Ð&KÓLÐLÜÐ 0Ó1ˆð	Ø×#Ñ# H¨f¸uÐ#ÔEàˆFØ×)Ñ)×+Ò+Ü%Ð&DÓEÐEØ×(Ñ(°Ð(Ó4ˆØ�‰˜W¨C¸ˆÔ;Ø×ÑÔÜˆg�sÔàØØ'Ø˜3˜%˜q  Ð(>Ð?PÐ>QÐQfÐg{Ðf|Ð}ð  @Cð  Dà˜S˜E  6 (Ð*EÀnÐEUÐU_Ð`nÐ_oÐouÐvzÐu{ð  |Gð  Hð  JMð  NØ˜S˜E  6 (Ð*KÐLÈcÐRØØØ'Ø˜3˜%˜q  Ð)¨4Ð0ð
ˆó "‰IˆC�Ø�L‰L˜˜t�Ô$Ü˜ Ó&ˆCØ˜#ÕˆJØ—)‘)“+ˆCß‹sÔhÑ)gÓh�s�sŠsÔhÑ)gÓh×hÔhØ#¨3Ö.Ü-Ð0BÀ3Ç9Á9Ã;ÈqÅ>ÐBRÐRSÐ.TÓUÐUñ "ô $ D¨.À(Ø˜X˜JÐ&<¸T¸FÐBTÐUÐWaócð ˜Y¨Ó-ˆCðØ’?Ø—I‘I–Kñ #ò .øðG ‰FûôN ô Úðûô ô ØÜô SÜ!Ð$BÀ3À%Ð"HÓIÈsÐRûðSûð ˜Y¨Ó-ˆCðØ’?Ø—I‘I–Kñ #øäô Úðúò	 .ús’   Ã%BL< Å>L# ÆL< Æ*C.L< ÊL< Ê;L< Ë;L< ÌL*Ì#L'Ì'L< Ì*L9Ì8L9Ì<M&ÍM&ÍM!Í!M&Í&M) Í)	N Í3NÎN ÎN	ÎN ÎN	ÎN c               ó<   € V ^8„  d   QhRRRRRRRRRRR	RR
RRRRR/	# )r#   r$   r   r%   r   r&   r'   r(   r)   r   r   r   r*   r   r   )r+   s   "r   r,   r,   ê   sV   € ÷ *ñ *Øð*Øð*Ø'*ð*Ø>Að*àð*à+.ð*à8;ð*àLOð*ð 
ñ*r   c                ó¸  € \        V4      pVP                  R^4      ^,          p	\        V4      p
VP                  4       P	                  4       pV
e	   V'       g   \        R4      h^ RIp\        P                  ! W3^
R7      pVP                  V4      pRp VP                  ^
R7       \        P                  ! \        VP                  4       4      V
4      '       g   \        R4      h\        V4      p VP!                  VVRR7       RpVP#                  4       '       g   \        R	4      hVP%                  ^
R7      pVP'                  R
^´^<R7       VP)                  4        \+        VR4       RRRRV	 RV 2R33 F*  w  ppVP-                  VR,           4       \+        VV4      pK,  	  XP	                  4       p\/        \0        P2                  ! RV4      4      pVV9   ;'       d    T WþV3 F  p Ve   VP5                  4        K  K  	  #   Rpi ; i  \6         d     K4  i ; i  YþT3 F,  p Te   TP5                  4        K  K    \6         d     K*  i ; i	  i ; i)z@Read back one ONU and require the expected serial to be present.r.   Nz5Verifikasi ONU diblokir: host-key atau SN belum siap.r1   z3Fingerprint server OLT tidak cocok saat verifikasi.Fr3   r   z,Autentikasi SSH OLT ditolak saat verifikasi.r5   r6   r�   rF   r;   r<   r=   zRUN\s+STATE\s*:\s*ONLINEr†   )rK   r�   rˆ   )r   rQ   r   rR   rS   r
   rV   rW   rX   rY   r\   r]   r^   r   r_   r   r`   ra   rb   rc   rd   r   re   r   rT   Úsearchrg   rh   )r$   r%   r&   r'   r(   r   r   r   rj   rk   rm   rl   rV   rp   rn   ro   rr   Úcommandru   ÚoutputrS   ÚonlinerŽ   s   $$$$$$$$               r   Úverify_cdata_onur–   ê   sX  € ô
 (¨Ó1€NØ
×
Ñ
  QÓ
'¨Õ
*€CÜ,¨_Ó=€HØ×"Ñ"Ó$×*Ñ*Ó,€HØÒŸxÜ!Ð"YÓZÐZÛÜ×#Ò# T L¸"Ô=€DØ×"Ñ" 4Ó(€IØ€GðØ×Ñ rÐÔ*Ü×"Ò"¤<°	×0OÑ0OÓ0QÓ#RÐT\×]Ò]Ü%Ð&[Ó\Ð\ÜÐ 0Ó1ˆð	Ø×#Ñ# H¨f¸uÐ#ÔEàˆFØ×)Ñ)×+Ò+Ü%Ð&TÓUÐUØ×(Ñ(°Ð(Ó4ˆØ�‰˜W¨C¸ˆÔ;Ø×ÑÔÜˆg�sÔØ-¨Ð@[Ð`nÐorÐnsÐstÐu{Ðt|Ð^}ð  @Cð  ^Dó  E‰MˆG�TØ�L‰L˜ 4�Ô(Ü˜7 DÓ)ŠFñ Eð —‘“ˆÜ”b—i’iÐ ;¸UÓCÓDˆØ˜5Ñ ×+Ð+ VÐ+à¨Ó-ˆCðØ’?Ø—I‘I–Kñ #ò .øð ‰Fûô$ ô Úðûð	 ¨Ó-ˆCðØ’?Ø—I‘I–Kñ #øäô Úðúò	 .úsh   ÂAH# Ã3H
 ÄH# ÄCH# Ç$H# Ç/HÈ
HÈH# ÈH ÈH È#IÈ,IÉ IÉI	ÉIÉI	ÉIc               ó8   € V ^8„  d   QhRRRRRRRRRRR	RR
RRR/# )r#   r$   r   r%   r   r&   r'   r(   r)   r   r   r*   r   r   )r+   s   "r   r,   r,     sd   € ÷ Añ Aà
ðAð ðAð ð	Að
 ðAð  ðAð ðAð ðAð ñAr   c                ó¾  € \        V4      pVP                  R^4      ^,          p\        V4      p	V	f   \        R4      hRp
RpRpRp ^ RIp\
        P                  ! W3^
R7      pVP                  V4      p
V
P                  ^
R7       \        P                  ! \        V
P                  4       4      V	4      '       g   \        R4      h\        V4      p V
P                  W/RR7       RpV
P                  ^
R7      pVP!                  R	^ ^(R
7       VP#                  4        \%        VR4       RRRRV RV 2R3.pV F1  w  ppVP'                  VR,           4       V\%        VV4      ,          pK3  	  \)        RVVRRV RV R2VR7      V
e   V
P+                  4        # #   Rpi ; i  \,         d   p\        RT 24      ThRp?ii ; i  T
e   T
P+                  4        i i ; i)z+Safe rollback/deprovisioning on C-DATA OLT.r.   Nz8Rollback diblokir: fingerprint host key SSH belum dipin.r   r1   z2Rollback diblokir: fingerprint server tidak cocok.Fr3   r5   r6   r:   zont delete r;   r<   r=   Tr/   z
 pada PON z berhasil dihapus (rollback).rG   zRollback C-DATA gagal: rH   rJ   rL   )r   rQ   r   r
   rV   rW   rX   rY   r\   r]   r^   r   r_   r   r`   rb   rc   rd   r   re   r   rg   rh   )r$   r%   r&   r'   r(   r   r   rj   rk   rm   rn   ro   rp   rq   rV   rr   rs   rt   ru   rw   s   $$$$$$$             r   Údeprovision_cdata_onur™     s  € ô (¨Ó1€NØ
×
Ñ
  QÓ
'¨Õ
*€Cä,¨_Ó=€HØÒÜ!Ð"\Ó]Ð]à€IØ€GØ€DØ€Jð+ÛÜ×'Ò'¨¨¸bÔAˆØ×&Ñ& tÓ,ˆ	Ø×Ñ rÐÔ*ä×"Ò"¤<°	×0OÑ0OÓ0QÓ#RÐT\×]Ò]Ü%Ð&ZÓ[Ð[äÐ 0Ó1ˆð	Ø×#Ñ# H¸uÐ#ÔEàˆFà×(Ñ(°Ð(Ó4ˆØ�‰˜W¨C¸ˆÔ;Ø×ÑÔÜˆg�sÔð ØØ'Ø˜3˜%˜q  Ð)¨3Ð/ð	
ˆó "‰IˆC�Ø�L‰L˜˜t�Ô$Øœ% ¨Ó.Õ.ŠJñ "ô $ØØ#ØØØ˜f˜X Z°Ð/?Ð?\Ð]Ø%ô
ð Ò Ø�O‰OÕð !øð; ‰Fûô4 ô LÜ!Ð$;¸C¸5Ð"AÓBÈÐKûðLûð Ò Ø�O‰OÕð !ús>   ÁB
F# ÃF Ã&B F# ÆF Æ F# Æ#GÆ.F=Æ=GÇG ÇG)Ú__doc__Ú
__future__r   Úbase64Údataclassesr   Úhashlibr]   rT   rW   ÚtimeÚapp.core.device_credentialsr   Úapp.core.ssh_identityr   Ú app.core.cdata_fd1601s_discoveryr   r   r   ÚRuntimeErrorr
   r   rx   r�   r–   r™   r   r   r   Ú<module>r¤      sœ   ðÙ MÝ "ã Ý !Û Û Û 	Û Û å 6Ý ?ß TÑ Tô	˜,ô 	ñ �$Ô÷ð ó ððrð  $÷rðjSð ðSð )ðSð !%÷Sõl*÷ZAr   