/usr/lib/imh-ultrastack-common/venv/lib/python3.13/site-packages/ngxutil
NameSizeModeActions
__pycache__/-0755rm
api.py47230644editdlrm
cache.py69380644editdlrm
cli.py107020644editdlrm
info.py149160644editdlrm
logparse.py105370644editdlrm
profile.py17580644editdlrm
report.py146180644editdlrm
sendmail.py13740644editdlrm
util.py28880644editdlrm
vts.py17100644editdlrm
__init__.py4050644editdlrm
Edit: /usr/lib/imh-ultrastack-common/venv/lib/python3.13/site-packages/ngxutil/util.py (2888B)
#!/opt/imh-python/bin/python3.9 # vim: set ts=4 sw=4 expandtab syntax=python: """ ngxutil.util Utility Functions @author J. Hipps """ import re import json import logging import traceback logger = logging.getLogger('ngxutil') def get_domain_owner(domain): """ Determine owner & vhost of @domain """ if domain == '*': return {'owner': "nobody", 'vhost': "*"} try: with open("/etc/userdatadomains.json", 'r') as f: udd = json.load(f) except Exception as e: logger.error("Failed to load /etc/userdatadomains.json: %s", str(e)) return None ddata = udd.get(domain) if not ddata: logger.error("Domain '%s' not found on server", domain) return None return {'owner': ddata[0], 'vhost': ddata[3]} def format_uptime(usec): """ Format uptime @usec as duration string """ oday = int(usec / 86400) ohour = int((usec - (oday * 86400)) / 3600) omin = int((usec - (oday * 86400) - (ohour * 3600)) / 60) osec = float(usec) - float(oday * 86400) - float(ohour * 3600) - float(omin * 60) ostr = "{:01d}d {:02d}:{:02d}:{:02.02f}".format(oday, ohour, omin, osec) return ostr def format_size(insize, rate=False, bits=False): """ format human-readable file size and xfer rates """ onx = float(abs(insize)) for u in ['B', 'K', 'M', 'G', 'T', 'P']: if onx < 1024.0: tunit = u break onx /= 1024.0 suffix = "" if tunit != 'B': suffix = "iB" if rate: if bits: suffix = "bps" onx *= 8.0 else: suffix += "/sec" if tunit == 'B': ostr = "%3d %s%s" % (onx, tunit, suffix) else: ostr = "%3.01f %s%s" % (onx, tunit, suffix) return ostr def mkpct(ival, tot): """ Make value/percent string """ try: po = "{:d} ({:3.01f}%)".format(ival, (float(ival) / float(tot)) * 100.0) except: po = "0 (-.-%)" return po def strcolor(color, instr): """ ANSI colorify a string @instr with @color (foreground) """ cdex = { '': '\x1b[0m', 'black': '\x1b[30m', 'red': '\x1b[31m', 'green': '\x1b[32m', 'yellow': '\x1b[33m', 'blue': '\x1b[34m', 'magenta': '\x1b[35m', 'cyan': '\x1b[36m', 'white': '\x1b[37m', } return "{}{}{}".format(cdex.get(color.lower(), ''), instr, cdex['']) def strip_colors(instr): """ Strip ANSI color codes from input @str """ return re.sub(r'\x1b\[[0-9;]*m', '', instr) def excepthook(etype, evalue, etraceback): """ Default exception hook """ logger.critical("Unhandled exception caught:\n%s", '\n'.join(traceback.format_exception(etype, evalue, etraceback)))