VC IVddlZddlZddlZddlZddlZddlmZGddeZdS)N) setup_loggingcNeZdZdZdZdZdZdefdZdefdZ d ede fd Z d Z d S) CloudlinuxWposReqScannerz0 Class for run clwposcron functionality iQz/var/log/clwpos/req_cron.logcnd|_d|_tdtj|j|_dS)Nz&/var/lve/clwpos/cl_wpos_scan_req_forcez(/var/lve/clwpos/cl_wpos_scan_req_last_tsclwpos_req_cron) caller_name file_level logfile_path)_file_flag_force_check_scan_req_scan_last_tsrloggingINFO_CRON_LOG_FILE_logger)selfs py/clwpos/wpos_req_scanner.py__init__z!CloudlinuxWposReqScanner.__init__s<&N#&P#$)|,     returnc t|jd5}|}dddn #1swxYwYt|}n#tt t f$rd}YnwxYw|S)zg Get last time start time from file :return: Last start time as UNIX timestamp rN)openr readfloatOSErrorIOError ValueError)rf s_last_tslast_tss r_get_last_start_timez-CloudlinuxWposReqScanner._get_last_start_time(s  d1377 %1FFHH  % % % % % % % % % % % % % % %I&&GG*-   GGG s-A8 A<A<AA/.A/ last_timect|jd5}|t|ddddS#1swxYwYdS)ze Save last time to file :param last_time: Last time (UNIX timestamp) to save wN)rr writestr)rr#rs r_save_last_start_timez.CloudlinuxWposReqScanner._save_last_start_time5s $-s 3 3 $q GGC NN # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s#AA  A ts_nowcZ|}|dkr||z |jkrdSdS)z Check is 24h interval passed :param ts_now: 'now' UNIX timestamp :return: True - passed, False - not passed rFT)r"TIMEOUT_24H_SECONDS)rr)r!s r_is_24h_passedz'CloudlinuxWposReqScanner._is_24h_passed=s: ++-- c>>fw.1III5trc|jd tj|js\t j}||}|s|jddS||np|j d tj |jn;#ttf$r'|j |jddYnwxYw tjgdd tjtjd }|\}}|jdkr"|jd |j||t)j|}|d d kr7|j d||jdnD#ttt(jt.f$r|j ddYnwxYwn##|j ddYnxYwdS)z$ Run command action z'CL AWP requirements cron script startedz 24 hours not passed - do nothingrz Force startz remove errorT)exc_info)z/usr/bin/clwpos-adminzgenerate-reportz--allF)shellstdoutstderrtextzS/usr/bin/clwpos-admin generate-report start error: retcode=%d stdout: %s stderr: %sresultsuccessz./usr/bin/clwpos-admin generate-report result: z+/usr/bin/clwpos-admin generate-report errorz5/usr/bin/clwpos-admin generate-report start exceptionz-CL AWP requirements cron script general error)rdebugospathexistsr timer,r(inforemoverr exception subprocessPopenPIPE communicate returncodewarningjsonloadsJSONDecodeErrorKeyError)rr) is_24h_passedprocr0r1 result_dicts rrunzCloudlinuxWposReqScanner.runIsz DEEE# c7>>$"=>> i $ 3 3F ; ; $L&&'IJJJ1**62222 !!-000iId9::::)iiiL**d.I+X+X+Xcg*hhhhhi o!'(](](].3/9z]accc"&!1!1!3!3?a''L((*BCG?TZ\bddd"j00 x(I55L%%&_W]&_&_```L(()VWWWWd&:HE o o o &&'^im&nnnnn o c L " "#R]a " b b b b bqs[A(H0H7CH5D HD  H C GH>HHHHH=N) __name__ __module__ __qualname____doc__r+rrrr"r(boolr,rJrrrrs$3N     e    $u$$$$ U t    )))))rr) r6r9r=r rCclwpos.logsetuprobjectrrPrrrSs  ))))))\\\\\v\\\\\r