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/utils/ |
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/utils/sanitizers.py |
# # Copyright 2016 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import fnmatch import os.path import re import salt.utils.stringutils from salt.exceptions import CommandExecutionError class InputSanitizer: @staticmethod def trim(value): """ Raise an exception if value is empty. Otherwise strip it down. :param value: :return: """ value = (value or "").strip() if not value: raise CommandExecutionError("Empty value during sanitation") return str(value) @staticmethod def filename(value): """ Remove everything that would affect paths in the filename :param value: :return: """ return re.sub( "[^a-zA-Z0-9.-_ ]", "", os.path.basename(InputSanitizer.trim(value)) ) @staticmethod def hostname(value): """ Clean value for RFC1123. :param value: :return: """ return re.sub(r"[^a-zA-Z0-9.-]", "", InputSanitizer.trim(value)).strip(".") id = hostname clean = InputSanitizer() def mask_args_value(data, mask): """ Mask a line in the data, which matches "mask". This can be used for cases where values in your roster file may contain sensitive data such as IP addresses, passwords, user names, etc. Note that this works only when ``data`` is a single string (i.e. when the data in the roster is formatted as ``key: value`` pairs in YAML syntax). :param data: String data, already rendered. :param mask: Mask that matches a single line :return: """ if not mask: return data out = [] for line in data.split(os.linesep): if fnmatch.fnmatch(line.strip(), mask) and ":" in line: key, value = line.split(":", 1) out.append( "{}: {}".format( salt.utils.stringutils.to_unicode(key.strip()), "** hidden **" ) ) else: out.append(line) return "\n".join(out)