gTddlmZmZddlmZmZmZmZmZddlm Z ddl m Z dZ dZ dZdZd Zd Zd Zd Zd ZdZeeeeddedeedeedeedededeeed Zeedeedeedeedeedeedeedeedeeeddedeeeddd zZddZdS)) DocoptExitdocopt)SchemaAndOrUse SchemaError)is_panel_feature_supported)Featurezcloudlinux-packages)zw[get] [--json] [--provider | --for-reseller ] [--package ] [--limits=] [--human-readable-numbers])z@set [--json] (--provider --package ) [--inodes ]zDset [--json] (--for-reseller --package ) [--inodes ])zset [--json] (--provider --package ) [--speed --pmem --vmem --nproc --maxEntryProcs --io --iops --inodes --mysql-cpu --mysql-io ]zset [--json] (--for-reseller --package ) [--speed --pmem --vmem --nproc --maxEntryProcs --io --iops --inodes ]zF Usage: {get_usage} {set_usage} {prog_name} (-h | --help) a --speed Limit CPU usage for LVE. --pmem Limit physical memory usage for applications inside LVE. --vmem Limit virtual memory for applications inside LVE. --nproc Limit number of processes for LVE. --maxEntryProcs Limit number of entry processes for LVE. --io Define io limits for LVE (KB/s). --iops Limit io per second for LVE. --mysql-cpu Set MySQL governor CPU limit (pct). --mysql-io Set MySQL governor IO limit (read + write MB/s) a% Options: --json Return data in JSON format. --provider Show data only for specific reseller. --for-reseller Show data only for specific reseller. --package Show data only for specific package. Use only with --provider WARNING: package name must be unicode-escaped string --limits Available keys: speed, nproc, pmem, vmem, maxEntryProcs, io, iops, inodes --human-readable-numbers Return PMEM and VMEM limits in KBytes, MBytes or GBytes {limit_options} --inodes Set inode limits. N - soft, M - hard. -h, --help Show this help message and exit zEUtility to get/set any Cloudlinux package limits {usage} {options} cdg}ttjr|gdz }tt |dt |z dkS)z Validate limits keys inodes) speednprocpmemvmem maxEntryProcsioiopsz mysql-cpuzmysql-io,r)r r LVElensetsplit)keysavialable_keys_lists &py/clpackages/cl_packages_arg_parse.py_limits_keys_validaterPsm$*!'+..      s4::c??##c*=&>&>> ? ?1 DDcddd|DS)z Get usage for commands z c3 K|] }d|V dS)z {prog_name} N).0cmds r z/_get_commands_usage_template..as+DDC/#//DDDDDDr)joinstrip)commandss r_get_commands_usage_templater(]s1 ==DD8DDD D D J J L LLrc|S)Nr!xs rr,gs!rz4use --json option, other modes currently unsupported)errorNz Invalid keys) getrz--json --provider--for-resellerz --packagez--limitsz--inodesz--helpz--human-readable-numbersc|dkSNrr!r*s rr,r,ys AFrz.--mysql-cpu must be non-negative integer valuec|dkSr2r!r*s rr,r,{s 16rz---mysql-io must be non-negative integer value) z--speedz--pmemz--vmemz--nprocz--maxEntryProcsz--ioz--iopsz --mysql-cpuz --mysql-ioFc Ptttttt t jrtntttt t jrtndt} t||}n #t$rd}|s|d|zz }d|fcYSwxYw|d s |d sd |d <|d r |d |d <t t jrtnt }t#|} ||}d }n(#t&$r}t)|}d}Yd}~nd}~wwxYw||fS)z Parse arguments for cloudlinux-packages command :param argv: sys.argv :param _is_json_need: sys.argv contains --json key :return cortege: (error_flag, s_message) ) get_usage set_usage prog_name) limit_options)usageoptions)r7zERROR: Invalid parameter passedz Fr.rTr0r/N)DOCSTRING_TEMPLATEformatUSAGE_TEMPLATEr(GET_USAGE_CMDSr r rSET_USAGE_LVE_CMDSSET_USAGE_NO_LVE_CMDS PROG_NAMEOPTIONS_TEMPLATELIMITS_OPTIONS_LVErr SCHEMA_LVE SCHEMA_NO_LVErvalidater str) argv _is_json_need docstringargss_error_string schema_dictsstatuses rparse_cloudlinux_packages_optsrRs#))##2>BB2&@&M&Mh""Sh $  !''0J7;0W0W_,,]_(  *   fyf!!%i&& %%%: 1 fy0 0Nn$$$$ % ;tE{U  4!"23\ :7; G GZ**]K{Azz$ 1vv 4<s*C%%DD$E<< F!FF!)F)rrschemarrrrr clcommon.cpapir clcommon.featuresr rBr?rAr@r&r>rstriprDrCr<rr(boolrHrFintrErRr!rrrYsi&%%%%%%%44444444444444555555%%%%%% !     EGG   FHH  EGG E E EMMM  c$ +abbb"T3--bsmmD#4.nEEE4  $   r$}}bsmmbsmmr$}}r$}} BtSMMbsmm2dCCC*:*:;;JLLL"T33ss3xx)9)9::IKKK    ++++++r