|9eEddlmZddlmZddlmZddlZddlZddlZddlZddlm Z m Z dZ dZ dZ d Zdd Zdd ZddZdZdZdS))print_function)absolute_import)divisionN) run_commandExternalProgramFailedzAvailable values for optionc|dr#|dd\}}d|zd|idS|tr5|dd\}}d|zd |idSd |iS) zu Replacing params in data for show error message :param data: error's data for show message :return: z-- z %%(param)s %sparam)resultcontext:z%s: %%(available_options)savailable_optionsr ) startswithsplit VALUES_STRstrip)datar texts I/opt/cloudlinux/venv/lib64/python3.11/site-packages/cllimits/lib/utils.pyreplace_paramsrs  t jja(( t)D0gu=MNNN  $ $ jja(( e6=/?AA A$cH t|dS#t$rYdSwxYw)z Checks is string contains a number (integer or float) :param s_val: String to check :return: True - string is number, False - not number TF)float ValueError)s_vals r_is_string_numberr&s9  e t uus  !!ct|}|drd}nf|drd}nN|drd}n6t|rd}d|}nt dt d |zt|d d zS) zs Convert value in Gbytes,Mbytes to bytes :param value: value of mem limit :return: value in bytes kr mgz{}kzWrong memory valueN)strlowerendswithrformatrintr)valuepowers rconvert_mem_value_to_bytesr-3s JJ    E ~~c /   /   / 5 ! !/ U##-... tu}uU3B3Z000 1 11rTc(|s|St|}gd}|dr|d=t|dddd}|drd}|dd}nd}t |}|D]E}|dzdkr|dz}|dkrd|}nd |||}|S) z Convert memory value to adaptive value in GB, TB, etc :param value: memory value in MB or KB :param convert: if True - convert value, False - not convert :return: adaptive value in GB, TB, etc )KMGTPr rr*r$z{}0Kz {}{:.2f}{})r&r'r(replacerrr))r+convertunitsr units r(_convert_memory_value_to_adaptive_formatr:Is,  JJ    E % % %E ~~c !H JJ     & &sB / / 7 7R @ @E  c2&& %LLE D=1   TMEE aZZ^^F++F E"))&%>>F  MrFcr|r%ttj|ddSt|dS)z Print specified dictionary :param data_dict: data dictionary to print :param is_json: True - print in JSON, False - in text :return: None T) sort_keysN)printjsondumps) data_dictis_jsons rprint_dictionaryrBpsE djd33344444 irctjt|d}t||tjddS)za Prints to stdout :param: is_json - True if print error in json format, False - text ) timestampr r N)timer&rBsysexit)messagerArs rprint_error_and_exitrIs> G = =DT7###HQKKKKKrctj|rtj|sdSdS)z\ Detect quota is supported :return: True/False - quotas supported/not supported FT)ospathisfile) cl_quota_path repquota_paths ris_quota_supportedrPs9 7>>- ( (}0M0Mu 4rc~t||sdS|dg} t|}n#t$rYdSwxYw|sdSdS)z\ Detect quota is activated :return: True/False - quotas activated/not activated Fz-nvaT)rPrr)rNrOcmdstdouts ris_quota_activerTso m] ; ;u & !CS!! uu u 4s ( 66)T)F) __future__rrrr>rKrFrEclcommon.utilsrrrrrr-r:rBrIrPrTrrrXs&%%%%%&&&&&& ======== *    "   222,$$$$N"r