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 /
pillar /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2022-10-11 05:09
__init__.py
48.88
KB
-rw-r--r--
2022-05-16 09:16
azureblob.py
13.88
KB
-rw-r--r--
2022-05-16 09:16
cmd_json.py
787
B
-rw-r--r--
2022-05-16 09:16
cmd_yaml.py
893
B
-rw-r--r--
2022-05-16 09:16
cmd_yamlex.py
674
B
-rw-r--r--
2022-05-16 09:16
cobbler.py
1.64
KB
-rw-r--r--
2022-05-16 09:16
confidant.py
3.29
KB
-rw-r--r--
2022-05-16 09:16
consul_pillar.py
11.61
KB
-rw-r--r--
2022-05-16 09:16
csvpillar.py
1.85
KB
-rw-r--r--
2022-05-16 09:16
digicert.py
1007
B
-rw-r--r--
2022-05-16 09:16
django_orm.py
7.74
KB
-rw-r--r--
2022-05-16 09:16
ec2_pillar.py
10.12
KB
-rw-r--r--
2022-05-16 09:16
etcd_pillar.py
2.36
KB
-rw-r--r--
2022-05-16 09:16
extra_minion_data_in_pillar.py
2.18
KB
-rw-r--r--
2022-05-16 09:16
file_tree.py
18.03
KB
-rw-r--r--
2022-05-16 09:16
foreman.py
3.66
KB
-rw-r--r--
2022-05-16 09:16
git_pillar.py
19.61
KB
-rw-r--r--
2022-05-16 09:16
gpg.py
560
B
-rw-r--r--
2022-05-16 09:16
hg_pillar.py
3.19
KB
-rw-r--r--
2022-05-16 09:16
hiera.py
846
B
-rw-r--r--
2022-05-16 09:16
http_json.py
2.43
KB
-rw-r--r--
2022-05-16 09:16
http_yaml.py
2.43
KB
-rw-r--r--
2022-05-16 09:16
libvirt.py
5.78
KB
-rw-r--r--
2022-05-16 09:16
makostack.py
21.99
KB
-rw-r--r--
2022-05-16 09:16
mongo.py
5.6
KB
-rw-r--r--
2022-05-16 09:16
mysql.py
3.76
KB
-rw-r--r--
2022-05-16 09:16
nacl.py
744
B
-rw-r--r--
2022-05-16 09:16
netbox.py
29.5
KB
-rw-r--r--
2022-05-16 09:16
neutron.py
2.41
KB
-rw-r--r--
2022-05-16 09:16
nodegroups.py
1.7
KB
-rw-r--r--
2022-05-16 09:16
pepa.py
20.98
KB
-rw-r--r--
2022-05-16 09:16
pillar_ldap.py
10.95
KB
-rw-r--r--
2022-05-16 09:16
postgres.py
2.82
KB
-rw-r--r--
2022-05-16 09:16
puppet.py
846
B
-rw-r--r--
2022-05-16 09:16
reclass_adapter.py
4
KB
-rw-r--r--
2022-05-16 09:16
redismod.py
3.28
KB
-rw-r--r--
2022-05-16 09:16
rethinkdb_pillar.py
4.71
KB
-rw-r--r--
2022-05-16 09:16
s3.py
14.4
KB
-rw-r--r--
2022-05-16 09:16
saltclass.py
1.49
KB
-rw-r--r--
2022-05-16 09:16
sql_base.py
15.38
KB
-rw-r--r--
2022-05-16 09:16
sqlcipher.py
3.42
KB
-rw-r--r--
2022-05-16 09:16
sqlite3.py
2.67
KB
-rw-r--r--
2022-05-16 09:16
stack.py
22.07
KB
-rw-r--r--
2022-05-16 09:16
svn_pillar.py
5.74
KB
-rw-r--r--
2022-05-16 09:16
varstack_pillar.py
1.1
KB
-rw-r--r--
2022-05-16 09:16
vault.py
4.03
KB
-rw-r--r--
2022-05-16 09:16
venafi.py
966
B
-rw-r--r--
2022-05-16 09:16
virtkey.py
586
B
-rw-r--r--
2022-05-16 09:16
vmware_pillar.py
16.83
KB
-rw-r--r--
2022-05-16 09:16
Save
Rename
""" Clone a remote SVN repository and use the filesystem as a Pillar source This external Pillar source can be configured in the master config file like so: .. code-block:: yaml ext_pillar: - svn: trunk svn://svnserver/repo root=subdirectory The `root=` parameter is optional and used to set the subdirectory from where to look for Pillar files (such as ``top.sls``). .. versionchanged:: 2014.7.0 The optional ``root`` parameter will be added. Note that this is not the same thing as configuring pillar data using the :conf_master:`pillar_roots` parameter. The branch referenced in the :conf_master:`ext_pillar` entry above (``master``), would evaluate to the ``base`` environment, so this branch needs to contain a ``top.sls`` with a ``base`` section in it, like this: .. code-block:: yaml base: '*': - foo To use other environments from the same SVN repo as svn_pillar sources, just add additional lines, like so: .. code-block:: yaml ext_pillar: - svn: trunk svn://svnserver/repo - svn: dev svn://svnserver/repo In this case, the ``dev`` branch would need its own ``top.sls`` with a ``dev`` section in it, like this: .. code-block:: yaml dev: '*': - bar """ import hashlib import logging import os from copy import deepcopy from salt.pillar import Pillar HAS_SVN = False try: import pysvn HAS_SVN = True CLIENT = pysvn.Client() except ImportError: pass # Set up logging log = logging.getLogger(__name__) # Define the module's virtual name __virtualname__ = "svn" def __virtual__(): ext_pillar_sources = [x for x in __opts__.get("ext_pillar", [])] if not any(["svn" in x for x in ext_pillar_sources]): return False if not HAS_SVN: log.error( "SVN-based ext_pillar is enabled in configuration but " "could not be loaded, is pysvn installed?" ) return False return __virtualname__ class SvnPillar: """ Deal with the remote SVN repository for Pillar """ def __init__(self, branch, repo_location, root, opts): """ Try to initialize the SVN repo object """ repo_hash = hashlib.md5(repo_location).hexdigest() repo_dir = os.path.join(opts["cachedir"], "pillar_svnfs", repo_hash) self.branch = branch self.root = root self.repo_dir = repo_dir self.repo_location = repo_location if not os.path.isdir(repo_dir): os.makedirs(repo_dir) log.debug("Checking out fileserver for svn_pillar module") try: CLIENT.checkout(repo_location, repo_dir) except pysvn.ClientError: log.error( "Failed to initialize svn_pillar %s %s", repo_location, repo_dir ) def update(self): try: log.debug("Updating fileserver for svn_pillar module") CLIENT.update(self.repo_dir) except pysvn.ClientError as exc: log.error( "Unable to fetch the latest changes from remote %s: %s", self.repo_location, exc, ) def pillar_dir(self): """ Returns the directory of the pillars (repo cache + branch + root) """ repo_dir = self.repo_dir root = self.root branch = self.branch if branch == "trunk" or branch == "base": working_dir = os.path.join(repo_dir, "trunk", root) if not os.path.isdir(working_dir): log.error("Could not find %s/trunk/%s", self.repo_location, root) else: return os.path.normpath(working_dir) working_dir = os.path.join(repo_dir, "branches", branch, root) if os.path.isdir(working_dir): return os.path.normpath(working_dir) working_dir = os.path.join(working_dir, "tags", branch, root) if os.path.isdir(working_dir): return os.path.normpath(working_dir) log.error("Could not find %s/branches/%s/%s", self.repo_location, branch, root) return repo_dir def _extract_key_val(kv, delimiter="="): """Extract key and value from key=val string. Example: >>> _extract_key_val('foo=bar') ('foo', 'bar') """ pieces = kv.split(delimiter) key = pieces[0] val = delimiter.join(pieces[1:]) return key, val def ext_pillar(minion_id, pillar, repo_string): # pylint: disable=W0613 """ Execute a command and read the output as YAML """ # split the branch, repo name and optional extra (key=val) parameters. options = repo_string.strip().split() branch = options[0] repo_location = options[1] root = "" for extraopt in options[2:]: # Support multiple key=val attributes as custom parameters. DELIM = "=" if DELIM not in extraopt: log.error( "Incorrectly formatted extra parameter. Missing '%s': %s", DELIM, extraopt, ) key, val = _extract_key_val(extraopt, DELIM) if key == "root": root = val else: log.warning("Unrecognized extra parameter: %s", key) svnpil = SvnPillar(branch, repo_location, root, __opts__) # environment is "different" from the branch branch = branch == "trunk" and "base" or branch pillar_dir = svnpil.pillar_dir() log.debug("[pillar_roots][%s] = %s", branch, pillar_dir) # Don't recurse forever-- the Pillar object will re-call the ext_pillar # function if __opts__["pillar_roots"].get(branch, []) == [pillar_dir]: return {} svnpil.update() opts = deepcopy(__opts__) opts["pillar_roots"][branch] = [pillar_dir] pil = Pillar(opts, __grains__, minion_id, branch) return pil.compile_pillar(ext=False)