Linux server.edchosting.com 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
LiteSpeed
Server IP : 75.98.162.185 & Your IP : 216.73.216.163
Domains :
Cant Read [ /etc/named.conf ]
User : goons4good
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
lib /
python3.6 /
site-packages /
salt /
utils /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2022-10-11 05:09
decorators
[ DIR ]
drwxr-xr-x
2022-10-11 05:09
dockermod
[ DIR ]
drwxr-xr-x
2022-10-11 05:09
openstack
[ DIR ]
drwxr-xr-x
2022-10-11 05:09
pkg
[ DIR ]
drwxr-xr-x
2022-10-11 05:09
validate
[ DIR ]
drwxr-xr-x
2022-10-11 05:09
__init__.py
237
B
-rw-r--r--
2022-05-16 09:16
aggregation.py
5.17
KB
-rw-r--r--
2022-05-16 09:16
args.py
19.86
KB
-rw-r--r--
2022-05-16 09:16
asynchronous.py
4.07
KB
-rw-r--r--
2022-05-16 09:16
atomicfile.py
5.33
KB
-rw-r--r--
2022-05-16 09:16
aws.py
19.38
KB
-rw-r--r--
2022-05-16 09:16
azurearm.py
11.38
KB
-rw-r--r--
2022-05-16 09:16
beacons.py
517
B
-rw-r--r--
2022-05-16 09:16
boto3_elasticsearch.py
3.73
KB
-rw-r--r--
2022-05-16 09:16
boto3mod.py
8.36
KB
-rw-r--r--
2022-05-16 09:16
boto_elb_tag.py
3.02
KB
-rw-r--r--
2022-05-16 09:16
botomod.py
7.98
KB
-rw-r--r--
2022-05-16 09:16
cache.py
9.81
KB
-rw-r--r--
2022-05-16 09:16
cloud.py
117.04
KB
-rw-r--r--
2022-05-16 09:16
color.py
2.72
KB
-rw-r--r--
2022-05-16 09:16
compat.py
1.81
KB
-rw-r--r--
2022-05-16 09:16
configcomparer.py
3.88
KB
-rw-r--r--
2022-05-16 09:16
configparser.py
10.82
KB
-rw-r--r--
2022-05-16 09:16
context.py
6.8
KB
-rw-r--r--
2022-05-16 09:16
crypt.py
4.71
KB
-rw-r--r--
2022-05-16 09:16
ctx.py
1.42
KB
-rw-r--r--
2022-05-16 09:16
data.py
49.28
KB
-rw-r--r--
2022-05-16 09:16
dateutils.py
2.31
KB
-rw-r--r--
2022-05-16 09:16
debug.py
4.19
KB
-rw-r--r--
2022-05-16 09:16
dictdiffer.py
14.16
KB
-rw-r--r--
2022-05-16 09:16
dicttrim.py
3.9
KB
-rw-r--r--
2022-05-16 09:16
dictupdate.py
11.33
KB
-rw-r--r--
2022-05-16 09:16
dns.py
35.17
KB
-rw-r--r--
2022-05-16 09:16
doc.py
2.25
KB
-rw-r--r--
2022-05-16 09:16
entrypoints.py
2.28
KB
-rw-r--r--
2022-05-16 09:16
environment.py
2.2
KB
-rw-r--r--
2022-05-16 09:16
error.py
1.18
KB
-rw-r--r--
2022-05-16 09:16
etcd_util.py
14.22
KB
-rw-r--r--
2022-05-16 09:16
event.py
52.3
KB
-rw-r--r--
2022-05-16 09:16
extend.py
8.87
KB
-rw-r--r--
2022-05-16 09:16
extmods.py
5.67
KB
-rw-r--r--
2022-05-16 09:16
filebuffer.py
3.15
KB
-rw-r--r--
2022-05-16 09:16
files.py
27.6
KB
-rw-r--r--
2022-05-16 09:16
find.py
22.09
KB
-rw-r--r--
2022-05-16 09:16
fsutils.py
3.29
KB
-rw-r--r--
2022-05-16 09:16
functools.py
5.02
KB
-rw-r--r--
2022-05-16 09:16
gitfs.py
124.49
KB
-rw-r--r--
2022-05-16 09:16
github.py
1.52
KB
-rw-r--r--
2022-05-16 09:16
gzip_util.py
2.86
KB
-rw-r--r--
2022-05-16 09:16
hashutils.py
5.91
KB
-rw-r--r--
2022-05-16 09:16
http.py
34.36
KB
-rw-r--r--
2022-05-16 09:16
iam.py
1.22
KB
-rw-r--r--
2022-05-16 09:16
icinga2.py
754
B
-rw-r--r--
2022-05-16 09:16
idem.py
1.22
KB
-rw-r--r--
2022-05-16 09:16
immutabletypes.py
2.46
KB
-rw-r--r--
2022-05-16 09:16
itertools.py
2.36
KB
-rw-r--r--
2022-05-16 09:16
jid.py
3
KB
-rw-r--r--
2022-05-16 09:16
jinja.py
31.54
KB
-rw-r--r--
2022-05-16 09:16
job.py
6.01
KB
-rw-r--r--
2022-05-16 09:16
json.py
3.78
KB
-rw-r--r--
2022-05-16 09:16
kickstart.py
41.04
KB
-rw-r--r--
2022-05-16 09:16
kinds.py
493
B
-rw-r--r--
2022-05-16 09:16
lazy.py
3.06
KB
-rw-r--r--
2022-05-16 09:16
listdiffer.py
10.9
KB
-rw-r--r--
2022-05-16 09:16
locales.py
2.06
KB
-rw-r--r--
2022-05-16 09:16
mac_utils.py
14.01
KB
-rw-r--r--
2022-05-16 09:16
mako.py
3.63
KB
-rw-r--r--
2022-05-16 09:16
master.py
29.57
KB
-rw-r--r--
2022-05-16 09:16
mattermost.py
1.77
KB
-rw-r--r--
2022-05-16 09:16
memcached.py
3.56
KB
-rw-r--r--
2022-05-16 09:16
migrations.py
1.46
KB
-rw-r--r--
2022-05-16 09:16
mine.py
3.68
KB
-rw-r--r--
2022-05-16 09:16
minion.py
4.13
KB
-rw-r--r--
2022-05-16 09:16
minions.py
43.4
KB
-rw-r--r--
2022-05-16 09:16
mount.py
1.15
KB
-rw-r--r--
2022-05-16 09:16
msazure.py
5.36
KB
-rw-r--r--
2022-05-16 09:16
msgpack.py
4.69
KB
-rw-r--r--
2022-05-16 09:16
nacl.py
13.58
KB
-rw-r--r--
2022-05-16 09:16
namecheap.py
4.32
KB
-rw-r--r--
2022-05-16 09:16
napalm.py
23.79
KB
-rw-r--r--
2022-05-16 09:16
nb_popen.py
7.24
KB
-rw-r--r--
2022-05-16 09:16
network.py
71.07
KB
-rw-r--r--
2022-05-16 09:16
nxos.py
12.94
KB
-rw-r--r--
2022-05-16 09:16
nxos_api.py
4
KB
-rw-r--r--
2022-05-16 09:16
odict.py
13.16
KB
-rw-r--r--
2022-05-16 09:16
oset.py
6.41
KB
-rw-r--r--
2022-05-16 09:16
pagerduty.py
3.03
KB
-rw-r--r--
2022-05-16 09:16
parsers.py
125.31
KB
-rw-r--r--
2022-05-16 09:16
path.py
10.78
KB
-rw-r--r--
2022-05-16 09:16
pbm.py
9.81
KB
-rw-r--r--
2022-05-16 09:16
platform.py
5.16
KB
-rw-r--r--
2022-05-16 09:16
powershell.py
4.15
KB
-rw-r--r--
2022-05-16 09:16
preseed.py
2.64
KB
-rw-r--r--
2022-05-16 09:16
process.py
43.34
KB
-rw-r--r--
2022-05-16 09:16
profile.py
3.21
KB
-rw-r--r--
2022-05-16 09:16
proxy.py
331
B
-rw-r--r--
2022-05-16 09:16
psutil_compat.py
3.65
KB
-rw-r--r--
2022-05-16 09:16
pushover.py
4.51
KB
-rw-r--r--
2022-05-16 09:16
pycrypto.py
5.39
KB
-rw-r--r--
2022-05-16 09:16
pydsl.py
13.74
KB
-rw-r--r--
2022-05-16 09:16
pyobjects.py
10.75
KB
-rw-r--r--
2022-05-16 09:16
reactor.py
19.09
KB
-rw-r--r--
2022-05-16 09:16
reclass.py
752
B
-rw-r--r--
2022-05-16 09:16
roster_matcher.py
3.55
KB
-rw-r--r--
2022-05-16 09:16
rsax931.py
8.07
KB
-rw-r--r--
2022-05-16 09:16
s3.py
8.78
KB
-rw-r--r--
2022-05-16 09:16
saltclass.py
14.27
KB
-rw-r--r--
2022-05-16 09:16
sanitizers.py
2.51
KB
-rw-r--r--
2022-05-16 09:16
schedule.py
70.67
KB
-rw-r--r--
2022-05-16 09:16
schema.py
54.26
KB
-rw-r--r--
2022-05-16 09:16
sdb.py
4.04
KB
-rw-r--r--
2022-05-16 09:16
slack.py
3.57
KB
-rw-r--r--
2022-05-16 09:16
smb.py
11.16
KB
-rw-r--r--
2022-05-16 09:16
smtp.py
3.27
KB
-rw-r--r--
2022-05-16 09:16
ssdp.py
14.75
KB
-rw-r--r--
2022-05-16 09:16
ssh.py
769
B
-rw-r--r--
2022-05-16 09:16
state.py
8.43
KB
-rw-r--r--
2022-05-16 09:16
stringio.py
355
B
-rw-r--r--
2022-05-16 09:16
stringutils.py
16.63
KB
-rw-r--r--
2022-05-16 09:16
systemd.py
5.51
KB
-rw-r--r--
2022-05-16 09:16
templates.py
23.92
KB
-rw-r--r--
2022-05-16 09:16
textformat.py
5.03
KB
-rw-r--r--
2022-05-16 09:16
thin.py
31.64
KB
-rw-r--r--
2022-05-16 09:16
timed_subprocess.py
4.06
KB
-rw-r--r--
2022-05-16 09:16
timeout.py
1.53
KB
-rw-r--r--
2022-05-16 09:16
timeutil.py
2.4
KB
-rw-r--r--
2022-05-16 09:16
url.py
4.96
KB
-rw-r--r--
2022-05-16 09:16
user.py
10.92
KB
-rw-r--r--
2022-05-16 09:16
value.py
247
B
-rw-r--r--
2022-05-16 09:16
vault.py
19.23
KB
-rw-r--r--
2022-05-16 09:16
verify.py
26.97
KB
-rw-r--r--
2022-05-16 09:16
versions.py
16.32
KB
-rw-r--r--
2022-05-16 09:16
virt.py
3.24
KB
-rw-r--r--
2022-05-16 09:16
virtualbox.py
22.43
KB
-rw-r--r--
2022-05-16 09:16
vmware.py
129.74
KB
-rw-r--r--
2022-05-16 09:16
vsan.py
17.18
KB
-rw-r--r--
2022-05-16 09:16
vt.py
30.25
KB
-rw-r--r--
2022-05-16 09:16
vt_helper.py
4.4
KB
-rw-r--r--
2022-05-16 09:16
win_chcp.py
3.7
KB
-rw-r--r--
2022-05-16 09:16
win_dacl.py
94.69
KB
-rw-r--r--
2022-05-16 09:16
win_dotnet.py
4.75
KB
-rw-r--r--
2022-05-16 09:16
win_functions.py
12.69
KB
-rw-r--r--
2022-05-16 09:16
win_lgpo_auditpol.py
8.48
KB
-rw-r--r--
2022-05-16 09:16
win_lgpo_netsh.py
17.87
KB
-rw-r--r--
2022-05-16 09:16
win_network.py
12.41
KB
-rw-r--r--
2022-05-16 09:16
win_osinfo.py
2.83
KB
-rw-r--r--
2022-05-16 09:16
win_pdh.py
13.85
KB
-rw-r--r--
2022-05-16 09:16
win_reg.py
30.05
KB
-rw-r--r--
2022-05-16 09:16
win_runas.py
10.55
KB
-rw-r--r--
2022-05-16 09:16
win_service.py
5.2
KB
-rw-r--r--
2022-05-16 09:16
win_system.py
14.47
KB
-rw-r--r--
2022-05-16 09:16
win_update.py
40.36
KB
-rw-r--r--
2022-05-16 09:16
winapi.py
818
B
-rw-r--r--
2022-05-16 09:16
xdg.py
316
B
-rw-r--r--
2022-05-16 09:16
xmlutil.py
13.91
KB
-rw-r--r--
2022-05-16 09:16
yaml.py
348
B
-rw-r--r--
2022-05-16 09:16
yamldumper.py
3.38
KB
-rw-r--r--
2022-05-16 09:16
yamlencoding.py
1.55
KB
-rw-r--r--
2022-05-16 09:16
yamlloader.py
6.21
KB
-rw-r--r--
2022-05-16 09:16
yamlloader_old.py
8.33
KB
-rw-r--r--
2022-05-16 09:16
yast.py
619
B
-rw-r--r--
2022-05-16 09:16
zeromq.py
1.65
KB
-rw-r--r--
2022-05-16 09:16
zfs.py
19.2
KB
-rw-r--r--
2022-05-16 09:16
Save
Rename
""" Custom configparser classes """ import re from configparser import * # pylint: disable=no-name-in-module,wildcard-import,unused-wildcard-import import salt.utils.stringutils try: from collections import OrderedDict as _default_dict except ImportError: # fallback for setup.py which hasn't yet built _collections _default_dict = dict # pylint: disable=string-substitution-usage-error class GitConfigParser(RawConfigParser): """ Custom ConfigParser which reads and writes git config files. READ A GIT CONFIG FILE INTO THE PARSER OBJECT >>> import salt.utils.configparser >>> conf = salt.utils.configparser.GitConfigParser() >>> conf.read('/home/user/.git/config') MAKE SOME CHANGES >>> # Change user.email >>> conf.set('user', 'email', 'myaddress@mydomain.tld') >>> # Add another refspec to the "origin" remote's "fetch" multivar >>> conf.set_multivar('remote "origin"', 'fetch', '+refs/tags/*:refs/tags/*') WRITE THE CONFIG TO A FILEHANDLE >>> import salt.utils.files >>> with salt.utils.files.fopen('/home/user/.git/config', 'w') as fh: ... conf.write(fh) >>> """ DEFAULTSECT = "DEFAULT" SPACEINDENT = " " * 8 # pylint: disable=useless-super-delegation def __init__( self, defaults=None, dict_type=_default_dict, allow_no_value=True, ): """ Changes default value for allow_no_value from False to True """ super().__init__(defaults, dict_type, allow_no_value) # pylint: enable=useless-super-delegation def _read(self, fp, fpname): """ Makes the following changes from the RawConfigParser: 1. Strip leading tabs from non-section-header lines. 2. Treat 8 spaces at the beginning of a line as a tab. 3. Treat lines beginning with a tab as options. 4. Drops support for continuation lines. 5. Multiple values for a given option are stored as a list. 6. Keys and values are decoded to the system encoding. """ cursect = None # None, or a dictionary optname = None lineno = 0 e = None # None, or an exception while True: line = salt.utils.stringutils.to_unicode(fp.readline()) if not line: break lineno = lineno + 1 # comment or blank line? if line.strip() == "" or line[0] in "#;": continue if line.split(None, 1)[0].lower() == "rem" and line[0] in "rR": # no leading whitespace continue # Replace space indentation with a tab. Allows parser to work # properly in cases where someone has edited the git config by hand # and indented using spaces instead of tabs. if line.startswith(self.SPACEINDENT): line = "\t" + line[len(self.SPACEINDENT) :] # is it a section header? mo = self.SECTCRE.match(line) if mo: sectname = mo.group("header") if sectname in self._sections: cursect = self._sections[sectname] elif sectname == self.DEFAULTSECT: cursect = self._defaults else: cursect = self._dict() self._sections[sectname] = cursect # So sections can't start with a continuation line optname = None # no section header in the file? elif cursect is None: raise MissingSectionHeaderError( # pylint: disable=undefined-variable salt.utils.stringutils.to_str(fpname), lineno, salt.utils.stringutils.to_str(line), ) # an option line? else: mo = self._optcre.match(line.lstrip()) if mo: optname, vi, optval = mo.group("option", "vi", "value") optname = self.optionxform(optname.rstrip()) if optval is None: optval = "" if optval: if vi in ("=", ":") and ";" in optval: # ';' is a comment delimiter only if it follows # a spacing character pos = optval.find(";") if pos != -1 and optval[pos - 1].isspace(): optval = optval[:pos] optval = optval.strip() # Empty strings should be considered as blank strings if optval in ('""', "''"): optval = "" self._add_option(cursect, optname, optval) else: # a non-fatal parsing error occurred. set up the # exception but keep going. the exception will be # raised at the end of the file and will contain a # list of all bogus lines if not e: e = ParsingError(fpname) # pylint: disable=undefined-variable e.append(lineno, repr(line)) # if any parsing errors occurred, raise an exception if e: raise e # pylint: disable=raising-bad-type def _string_check(self, value, allow_list=False): """ Based on the string-checking code from the SafeConfigParser's set() function, this enforces string values for config options. """ if self._optcre is self.OPTCRE or value: is_list = isinstance(value, list) if is_list and not allow_list: raise TypeError( "option value cannot be a list unless allow_list is True" ) elif not is_list: value = [value] if not all(isinstance(x, str) for x in value): raise TypeError("option values must be strings") def get(self, section, option, as_list=False): # pylint: disable=arguments-differ """ Adds an optional "as_list" argument to ensure a list is returned. This is helpful when iterating over an option which may or may not be a multivar. """ ret = super().get(section, option) if as_list and not isinstance(ret, list): ret = [ret] return ret def set(self, section, option, value=""): """ This is overridden from the RawConfigParser merely to change the default value for the 'value' argument. """ self._string_check(value) super().set(section, option, value) def _add_option(self, sectdict, key, value): if isinstance(value, list): sectdict[key] = value elif isinstance(value, str): try: sectdict[key].append(value) except KeyError: # Key not present, set it sectdict[key] = value except AttributeError: # Key is present but the value is not a list. Make it into a list # and then append to it. sectdict[key] = [sectdict[key]] sectdict[key].append(value) else: raise TypeError( "Expected str or list for option value, got %s" % type(value).__name__ ) def set_multivar(self, section, option, value=""): """ This function is unique to the GitConfigParser. It will add another value for the option if it already exists, converting the option's value to a list if applicable. If "value" is a list, then any existing values for the specified section and option will be replaced with the list being passed. """ self._string_check(value, allow_list=True) if not section or section == self.DEFAULTSECT: sectdict = self._defaults else: try: sectdict = self._sections[section] except KeyError: raise NoSectionError( # pylint: disable=undefined-variable salt.utils.stringutils.to_str(section) ) key = self.optionxform(option) self._add_option(sectdict, key, value) def remove_option_regexp(self, section, option, expr): """ Remove an option with a value matching the expression. Works on single values and multivars. """ if not section or section == self.DEFAULTSECT: sectdict = self._defaults else: try: sectdict = self._sections[section] except KeyError: raise NoSectionError( # pylint: disable=undefined-variable salt.utils.stringutils.to_str(section) ) option = self.optionxform(option) if option not in sectdict: return False regexp = re.compile(expr) if isinstance(sectdict[option], list): new_list = [x for x in sectdict[option] if not regexp.search(x)] # Revert back to a list if we removed all but one item if len(new_list) == 1: new_list = new_list[0] existed = new_list != sectdict[option] if existed: del sectdict[option] sectdict[option] = new_list del new_list else: existed = bool(regexp.search(sectdict[option])) if existed: del sectdict[option] return existed def write(self, fp_): # pylint: disable=arguments-differ """ Makes the following changes from the RawConfigParser: 1. Prepends options with a tab character. 2. Does not write a blank line between sections. 3. When an option's value is a list, a line for each option is written. This allows us to support multivars like a remote's "fetch" option. 4. Drops support for continuation lines. """ convert = ( salt.utils.stringutils.to_bytes if "b" in fp_.mode else salt.utils.stringutils.to_str ) if self._defaults: fp_.write(convert("[%s]\n" % self.DEFAULTSECT)) for (key, value) in self._defaults.items(): value = salt.utils.stringutils.to_unicode(value).replace("\n", "\n\t") fp_.write(convert("{} = {}\n".format(key, value))) for section in self._sections: fp_.write(convert("[%s]\n" % section)) for (key, value) in self._sections[section].items(): if (value is not None) or (self._optcre == self.OPTCRE): if not isinstance(value, list): value = [value] for item in value: fp_.write(convert("\t%s\n" % " = ".join((key, item)).rstrip()))