gj$ddlZddlZddlZddlZddlZddlZddlZddlmZm Z ddl Z ddl m Z dZdZdZejeZdZejedZejed Zejed Zd Zd Zd ZdZeddedddZdZGddZeZ de!fdZ"de!de#fdZ$dZ%dZ&dZ'dZ(dZ)dZ*d Z+dS)!N)errorrequest) mod_makedirsz/usr/sbin/rhn_checkz/usr/sbin/rhnreg_ksz/var/lve/lveinfo.verz/etc/sysconfig/rhnsystemidz jwt.tokenjwt_last_update_tsii@8z1/usr/share/cloudlinux/no_valid_license_screen.txtz3/usr/share/cloudlinux/license_out_of_date_email.txtz3Error: License out of date, email template missing.) template_file error_msgz3Error: No valid license found, template is missing.)EmailNoValidz http://cloudlinux.com/showip.phpcNeZdZdZdZdZedZdZdZ dZ dZ dZ dS) LicenseDatacjtjtrtjtsdSt tjt}|t tjtz krdStt}||krdSdStjtrGtjt}|tj|kSdS)a Update license when: in case JWT token present: - if no timestamp file with jwt token last update time - if jwt token was not updated during last 4 hours - if jwt token was updated later than our timestamp in file in case JWT token is not present, but systemid exists (fallback for licensing w/o token) - update license only if systemid was changed after last timestamp update when no jwt and no systemid - re-update license TF) ospathexists JWT_TOKENJWT_TOKEN_TIMESTAMP_FILEintgetmtimetimeJWT_UPDATE_INTERVALread_time_from_file RHN_SYSTEMID)license_timestamp_file rhn_updatedjwt_last_update_timestamps py/cllicenselib.py_is_license_needs_updatez$LicenseData._is_license_needs_updateKs 7>>) $ $ 7>>":;; tbg..y99::KS--0CCCCt(;>, ' ' J'**<88K!1!12H!I!II ItcZ t||_ttj|jz tkrG||rt Stj tSdS#ttj f$rYdSwxYw)z Checks license: 1. Reads cache file with timestamp 2. Ensures license must be re-checked: - if timestamp in cache file > CACHE_TIME -> check if we need to re-update licensing TF)r_license_last_timestamprr CACHE_TIMErupdate_license_timestamp_filerrrrIOErrorstructr)selfrs r check_licensezLicenseData.check_licensejs +>?U+V+VD (DIKK  4#??:MM001GHH;8:::w~~i0004&   55 sA'B*#BB*)B*c|js tjt5}|d|_ddddS#1swxYwYdS#tj$r>}tdt|ztj dYd}~dSd}~wwxYwdS)Nutf-8zError: Get server IP. ) _server_iprurlopen SHOW_IP_LINKreaddecodestriprURLErrorprintstrsysexit)r'responsees rget_ipzLicenseData.get_ips  _\22Nh&.mmoo&<&   .Q7888     s:A;?A.! A;.A22A;5A26A;;C 3CCcptj|j|S)N)datetime fromtimestampr"strftime)r'formats r date_formatzLicenseData.date_formats+ ..t/KLLUUV\]]]r c& t|dd5}||_ddddS#1swxYwYdS#t$r>}t dt |zt jdYd}~dSd}~wwxYw)Nrr*)encodingz%Error: Failed to open template file. r+)openr/_letter_templater%r3r4r5r6)r'templatefr8s ropen_letter_templatez LicenseData.open_letter_templates hg666 1!()% 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1    9CFFB C C C HQKKKKKKKKK s4A; A?A?A B3B  BcFtj}|sdS||jsm|jddd|jdtjd|S|jdd| dzd|jdtjd|S)Nz %LIC_DATE%rz%IP%z %HOSTNAME%z%FROM%z since %b %d, %y) detectgetCPAdminEmailr9r"rDreplacer,socket gethostnamer?)r' admin_emails r format_letterzLicenseData.format_letters,..  4 + %--lB??11v'9';';<<;//    ! ) ), DDTDTU`DaDa8a b b WVT_ - - W\6#5#7#7 8 8 WX{ + +  r N) __name__ __module__ __qualname__r"r,rD staticmethodrr(r9r?rGrPr rr r Fs J\<,^^^     r r filect|d5}tjd|dcdddS#1swxYwYdS)Nrbir)rCr&unpackr/)rVrFs rrrs dD  /Q}S!&&((++A.//////////////////s-A  AA timestampct|d5}|tjd|ddddS#1swxYwYdS)NwbrY)rCwriter&pack)rVr[rFs rwrite_time_to_filer`s dD  -Q  C++,,,------------------s)AA A c  tjtst tdt jtgt jt j 5}| |j dkrttttjtjt"rDtt$ttjt" ddddS ddddS#1swxYwYdS#t(t*f$rYdSwxYw)NstdoutstderrrTF)rrisdirLICENSE_TIMESTAMP_DIRr subprocessPopenRHN_CHECK_FILEPIPESTDOUT communicate returncoder`LICENSE_TIMESTAMP_FILErrrrrrOSErrorr%)procs rr$r$sw}}233 7 . 6 6 6    ?$         !##"#93ty{{;K;KLLL7>>),,c&'?RWEUEUV_E`E`AaAabbb                           W uusCA*E,B>),,c&'?RWEUEUV_E`E`AaAabbbd          #))++                      W  IJJJuusCA/F1CE;? F "E;. F;E??FE?F F,+F,c8tjtrttStjts$tjtrtSdS)NF) rrisfileroLicenser(rrrr$rUr rr(r(sl w~~,--=$$%;<<< w~~i  /BGNN<$@$@/,... 5r c|rdStjtrdtdzSdS)Nrsz5No valid license found, last successful check was on rIzNo valid license found.)rrrzror{r?)is_valids rlast_license_checkr~sGt w~~,--jFI\I\]hIiIiii $ $r c6ttdS)Nr get_template_to_display TEMPLATESrUr rget_email_templaters "9W#5 6 66r c6ttdS)Nr rrUr rget_novalid_templaters "9Y#7 8 88r ctj|ds|dSts9t|dtSdS)Nrr )rrrzr(r{rGrP)rEs rrr sf 7>>(?3 4 4% $$ ??'$$Xo%>???$$&&& 4r ),r;rrMr&rhr5rurllibrr cldetectlibrJclcommon.utilsrrjrtrordirnamerg RHN_DIRECTORYjoinrrrr#rNO_VALID_LICENSE_FOUND_TEMPLATE"LICENSE_OUT_OF_DATE_EMAIL_TEMPLATErr.r r{r4rrr`r$rxr(r~rrrrUr rrs(8  !!!!!!!!''''''&*/(>??$ w||M:66 GLL 4 4 7<<(=?STT  "U%Z"<J 9J   2 d d d d d d d d P +--/c//// -S-S---- *6%%%777999     r