PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/thorium/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/thorium/reg.py |
""" Used to manage the thorium register. The thorium register is where compound values are stored and computed, such as averages etc. """ import salt.utils.stringutils __func_alias__ = { "set_": "set", "list_": "list", } def set_(name, add, match): """ Add a value to the named set USAGE: .. code-block:: yaml foo: reg.set: - add: bar - match: my/custom/event """ ret = {"name": name, "changes": {}, "comment": "", "result": True} if name not in __reg__: __reg__[name] = {} __reg__[name]["val"] = set() for event in __events__: if salt.utils.stringutils.expr_match(event["tag"], match): try: val = event["data"]["data"].get(add) except KeyError: val = event["data"].get(add) if val is None: val = "None" ret["changes"][add] = val __reg__[name]["val"].add(val) return ret def list_(name, add, match, stamp=False, prune=0): """ Add the specified values to the named list If ``stamp`` is True, then the timestamp from the event will also be added if ``prune`` is set to an integer higher than ``0``, then only the last ``prune`` values will be kept in the list. USAGE: .. code-block:: yaml foo: reg.list: - add: bar - match: my/custom/event - stamp: True """ ret = {"name": name, "changes": {}, "comment": "", "result": True} if not isinstance(add, list): add = add.split(",") if name not in __reg__: __reg__[name] = {} __reg__[name]["val"] = [] for event in __events__: try: event_data = event["data"]["data"] except KeyError: event_data = event["data"] if salt.utils.stringutils.expr_match(event["tag"], match): item = {} for key in add: if key in event_data: item[key] = event_data[key] if stamp is True: item["time"] = event["data"]["_stamp"] __reg__[name]["val"].append(item) if prune > 0: __reg__[name]["val"] = __reg__[name]["val"][:prune] return ret def mean(name, add, match): """ Accept a numeric value from the matched events and store a running average of the values in the given register. If the specified value is not numeric it will be skipped USAGE: .. code-block:: yaml foo: reg.mean: - add: data_field - match: my/custom/event """ ret = {"name": name, "changes": {}, "comment": "", "result": True} if name not in __reg__: __reg__[name] = {} __reg__[name]["val"] = 0 __reg__[name]["total"] = 0 __reg__[name]["count"] = 0 for event in __events__: try: event_data = event["data"]["data"] except KeyError: event_data = event["data"] if salt.utils.stringutils.expr_match(event["tag"], match): if add in event_data: try: comp = int(event_data) except ValueError: continue __reg__[name]["total"] += comp __reg__[name]["count"] += 1 __reg__[name]["val"] = __reg__[name]["total"] / __reg__[name]["count"] return ret def clear(name): """ Clear the namespace from the register USAGE: .. code-block:: yaml clearns: reg.clear: - name: myregister """ ret = {"name": name, "changes": {}, "comment": "", "result": True} if name in __reg__: __reg__[name].clear() return ret def delete(name): """ Delete the namespace from the register USAGE: .. code-block:: yaml deletens: reg.delete: - name: myregister """ ret = {"name": name, "changes": {}, "comment": "", "result": True} if name in __reg__: del __reg__[name] return ret