fj^ldZddlZddlZddlmZddlmZddlm Z dZ dd Z dd Z dd Z ddZdS)zR This module contains an argparse command line parser for cloudlinux-xray-manager N)gettext) read_sys_id)advice_action_sourcesc tS#t$r-}tjdt |Yd}~dSd}~wwxYw)Nz"Unable to get system_id, error: %s)r Exceptionloggingerrorstr)es X/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/console_utils/cmdline_parser.py get_system_idrsV}}  :CFFCCCrrrrrs  A"AAreturnargparse.ArgumentParserc ptjdd}|ddd}|dt d tj }|d d dt d |dddt d|dddt d|}|ddtt d|ddtt d|dt d}|d d dt d |d d!dt d"|d#t d$}|d d dt d |d d!dt d"|d%t d&}|d d dt d |d d!dt d"|d't d(}|d d dt d |d d!dt d"|d)t d*}|d d dt d |dddt d|d+d,dt d-|d.t d/} | d d dt d | dddt d|d0t d1} | d d dt d | dddt d|d2t d3} | d d dt d | dddt d|d4t d5} | d d dt d |d6t d7} | d d dt d |d8t d9}|d d dt d |d d!dt d"|d:t d;}|d d dt d |d d!dt d"|d?|d@t dA}|d d tt d |dBt dC}|d d tt d |dDt dE}|d d dt d |dFt dG}|d d tt d |dHt dI}|d d tt d |}|dJdKdLt dMN|dOdKdLt dPN|dQdKdLt dRN|dS}|d d tt d |dT}|d d tt d |S)Uzb Command line parser for X Ray Manager using built-in argparse module :return: parser zcloudlinux-xray-managerzUtility to manage X-Ray Clientprog descriptionCommandscommandTtitledestrequiredstart>Start monitoring of URL by IP for COUNT of minutes or requestshelpargument_defaultz --system_idSYS_IDzunique ID of CL+ systemmetavarrr--urlURLmonitoring URL --client_ipIP*"client IP to monitor requests fromr"defaultr--timeCOUNTnumber of minutes to monitorr"typer --request_qtynumber of requests to monitorstopStop monitoring of given TASKr--tracing_task_idTASKunique ID of tracing taskcontinue!Continue monitoring of given TASKcompleteComplete given TASKdeleteDelete given TASKzenable-continuousz(Schedule a URL for continuous monitoringz--emailEMAILze-mail address for reportingzdisable-continuousz.Schedule to stop continuous monitoring for URLzstart-continuousz&Include URL into continuous monitoringzstop-continuousz&Exclude URL from continuous monitoringzcontinuous-tracing-listz1Get list of scheduled continuous monitoring tasks tasks-listGet list of tasks requests-list#Get list of requests for given task request-data Get statistics for given request --request_idREQUESTunique ID of requestr"rr0rzenable-user-agentzEnable X-Ray User Agentzdisable-user-agentzDisable X-Ray User Agentuser-agent-statusGet status of X-Ray User Agentzautocomplete-tasksz/Completes all tasks run more than expected timezadvanced-metricszAdvanced metrics toolz--enable store_trueFzenable advanced metrics)actionrrz --disablezdisable advanced metricsz--statusz"get status (none|enabled|disabled)zenable-serverwide-modezdisable-serverwide-mode) argparseArgumentParseradd_subparsers add_parser_SUPPRESS add_argumentadd_mutually_exclusive_groupintr)parser subparsers start_parsercounters stop_parsercontinue_parsercomplete_parser delete_parser enable_parserdisable_parsercon_start_parsercon_stop_parser list_parsertask_list_parser req_parserreq_data_parserenable_user_agent_parserdisable_user_agent_parserstatus_user_agent_parserautocomplete_parseradvanced_metrics_parseradvanced_metrics_parser_groupenable_serverwide_mode_parserdisable_serverwide_mode_parsers r cmd_parser_managerros  $*C1QSSSF&&Zi04'66J((./0p.q.q:B:K)MMLmX#$%>#?#?AAAgut#$%5#6#6888mT3#$%I#J#JLLL88::H (G# !?@@BBB /7 !@AACCC''-./N-O-O(QQK]Ht"#$=">">@@@0&&*3N1O1OQQQ!++J123V1W1W,YYO  *.&'(A&B&B!DDD  !4f*.&'(C&D&D!FFF!++J123H1I1I,KKO  *.&'(A&B&B!DDD  !4f*.&'(C&D&D!FFF))(/01D/E/E*GGM}h(,$%&?$@$@BBB2F(,$%&A$B$BDDD))*=/01[/\/\*^^M}h(,$%&?$@$@BBBw$%&6$7$7999y'D$%&D$E$EGGG **+?012b0c0c+eeN x)-%&'@%A%A CCC%&'7%8%8 :::",,-?234\2]2]-__!!-+/'()B'C'C"EEE!!'54'()9':':"<<<!++,=123[1\1\,^^O  *.&'(A&B&B!DDD  %$&'(8&9&9!;;;''(A-./b-c-c(eeK]H&*"#$=">">@@@",,\234G2H2H-JJ!!-+/'()B'C'C"EEE&&,-.S,T,T'VVJM8%)!"#!?!?AAA!++N123U1V1V,XXO  *.&'(A&B&B!DDD  !4f*.&'(C&D&D!FFF  *.S&'(>&?&?!AAA *445H:;r@rArBrCrDrErFrGrHrIrJrK) rNrOrPrQrRrSrTrUrV) rWrXrYrZr[r\r]r^rerfs r cmd_parser_user_managerrrs*  $*K1_aaaF&&Zi04'66J((./0p.q.q:B:K)MMLgut#$%5#6#6888mT3#$%I#J#JLLL88::H (G# !?@@BBB /7 !@AACCC''-./N-O-O(QQK0&&*3N1O1OQQQ!++J123V1W1W,YYO  !4f*.&'(C&D&D!FFF!++J123H1I1I,KKO  !4f*.&'(C&D&D!FFF))(/01D/E/E*GGM2F(,$%&A$B$BDDD, !455777&&,-.S,T,T'VVJ/%)!"#>!?!?AAA!++N123U1V1V,XXO  !4f*.&'(C&D&D!FFF  *.S&'(>&?&?!AAA- !ABBDDD Mrpc Rtjdd}|dtddd|d d d }|d td}|dddtd|dtd}|dd td|dtd}|dd td|dddtd|ddd dtd!"|d#d$t td%&|d'ddtj|d(ttd)*|d+td,}|dd td-|ddd dtd."|d#d$t td/&|d0ttd1*|d(ttd)*|d2td3|d4td5}|dd td6|d7td8}|d9td:|d;td<}|d9td=|d>td?} | d9td@|dAtdB} | d9tdC|dDtdE} |dFtdG} |dHtdI|dJtdK} | d9tdL| dMtdN| dOtdPd Q| dRtdSd Q|dTtdU}|d9tdL|dMtdN|dOtdPd Q|dRtdSd Q|dVtdW}|d9tdL|dMtdN|dOtdPd Q|dRtdSd Q|dXtdY}|d9tdL|dMtdZ|d[td\}|dMtdN|d9tdL|d]td^}|dd td_|d`d da|dbtdc}|ddd tde|dftdg}|dhtdid Q|djtdkd Q|d#tdld Q|d9tdmd Q|dtdnf|dotdp|dqtdr|dstdt|dutdv}|dwd tdx|dytdz}|dwd tdx|d{d td||d}d td~|S)zs Command line parser for X Ray Smart Advice utility using built-in argparse module :return: parser zcl-smart-advicez7Utility for X-Ray Smart Advice microservice interactionrz --api-versionzFSpecify version of CLI, if not passed - latest will be used by defaultFN)rrr+rrTrlistzGet list of advicer5z --extendsrLz!Advice will be with extended info)r+rMrdetailsz#Get details for a particular advicez --advice_idz"an ID of advice to get details for)rrapplyzApply a particular advicezan ID of advice to applyz--ignore-errorszapply advice anyway)rMr+rz--async async_modez!run apply in a background process)rMrr+rz--source ACCELERATE_WPzAdvice apply source)r+choicesrz--accept_license_termsz--analytics_datazUser analytics data)r0rrollbackzRollback a particular advicezan ID of advice to rollbackz$run rollback in a background processzAdvice rollback sourcez--reasonzReason for advice rollbackrZz!Get advice counters total/appliedstatusz7Get current status and progress for a particular advicez!an ID of advice to get status forz sites-statuszGet websites statusesz --usernamez an username to get statuses infoz get-optionszGet options for userzUsername to get optionsz get-limitszGet limits for userzUsername to get limitsz get-usagezGet usage for userzUsername to get usagezwordpress-plugin-installzXInstalls/uninstalls cl-smart-advice plugin for websites according to current advice listzwordpress-plugin-uninstallz.Uninstalls cl-smart-advice plugin for websiteszupdate-advices-metadataz%Sends actual metadata to microservicezawp-cdn-get-pullzonez"Get pullzone for account`s websitezName of target userz --account_idz8Unique account identifier saved in user`s home directoryz--domainzAccount`s domain)rrz --websiteWebsitezawp-cdn-remove-pullzonez%Remove pullzone for account`s websitez awp-cdn-purgez!Purge cache for account`s websitezawp-syncz=[for internal usage] Sync account information on microservicez_Unique account identifier saved in user`s home directory. Multiple could be passed split by ","z get-cdn-usagezGet cdn usage for account subscriptionzSubscription configurationz*an ID of advice to manage subscription forz--listen)rrM agreementzLicense agreement commandsz--textz+name of the feature to get license text forzreport-analyticszSends analytics to Smart Advicez --featurez"Feature to be tracked by analyticsz--eventz Event to be tracked by analyticszWhere event was triggeredz/Users affected by event, pass multiple via "," zID of advice to manage eventsz --user_hashzHash of user for eventz --journey_idzID event journeyz --variant_idzID event variant_idzwp-plugin-dataz(Get latest WordPress plugin version dataz --plugin_namezName of the pluginzwp-plugin-copyzRCopy the latest WordPress plugin archive to the site if it's not already installedz--plugin_versionzCurrent plugin versionz --tmp_dirzTemp directory path) rNrOrTrRrPrQrrSr )rWrXrc detail_parser apply_parserrollback_parser status_parser sites_parserget_options_parserget_limits_parserget_usage_parseradvice_plugin_installadvice_plugin_uninstall get_pullzoneremove_pullzonepurge_cdn_cache get_cdn_usagesubscription_parseragreement_parserreport_analyticswp_plugin_data wp_get_plugins r cmd_parser_adviserr s  $*;1jlllF a0x.y.y!&666&&Zi04'66J''-./C-D-D(FFK[% "#$G"H"HJJJ)))/01V/W/W*YYM}t$%&J$K$KMMM((./0K.L.L)NNLmd#$%?#@#@BBB/ &+!4I2J2JLLLi <&+!4W2X2XZZZj/K`#$%:#;#;===6l#+#46660sCXAYAYZZZ ++JQ?]=^=^+__O  AFcDdDd eee  Z<[<[ \\\  !3#AF[D\D\ ]]]* !DEEGGG))(/01j/k/k*mmM}t$%&I$J$JLLL((a@W>X>X(YYLl3U1V1VWWW#..}1E[C\C\.]]##Lq9R7S7S#TTT"--lCXAYAY-ZZ""*?*?"AAA!!.*+,A*B*B"DDD **+;012\0]0]+__N$QG[E\E\]]]))*:013H1I1I*JJMAFZD[D[\\\1DqIaGbGbccc{TBW@X@XYYY MrprWargparse.Namespacec |}|S#t$r+}tjddt |id}~wwxYw)z} Parse arguments with given parser :param parser: an instance of ArgumentParser :return: arguments Namespace zInvalid utility invocationerr)extraN) parse_args SystemExitr r r )rWargsr s r parse_cmd_argumentsrs_  ""  25#a&&/JJJJ s A &AA )rr)rWrrr)__doc__rNr xrayrrRxray.internal.utilsrxray.internal.constantsrrrorrrrrpr rs++++++999999hhhhVCCCCLTTTTn ) .B      rp