Added debugging outputs

This commit is contained in:
David Murphy 2025-01-30 17:04:05 -07:00 committed by Daniel Wozniak
parent b0029609ab
commit d0231f33ee
3 changed files with 311 additions and 36 deletions

View file

@ -61,12 +61,20 @@ def update(branch=None, repo=None):
# Run with debug logging
salt-run git_pillar.update -l debug
"""
print(
f"DGM runners git_pillar update entry, branch '{branch}', repo '{repo}'",
flush=True,
)
ret = {}
for ext_pillar in __opts__.get("ext_pillar", []):
pillar_type = next(iter(ext_pillar))
if pillar_type != "git":
continue
pillar_conf = ext_pillar[pillar_type]
print(
f"DGM runners git_pillar update, pillar_type '{pillar_type}', pillar_conf '{pillar_conf}'",
flush=True,
)
pillar = salt.utils.gitfs.GitPillar(
__opts__,
pillar_conf,
@ -75,6 +83,12 @@ def update(branch=None, repo=None):
global_only=salt.pillar.git_pillar.GLOBAL_ONLY,
)
for remote in pillar.remotes:
dgm_remote_name = getattr(remote, "name", None)
print(
f"DGM runners git_pillar update, branch '{branch}', remote branch '{remote.branch}', remote url '{remote.url}', remote name '{dgm_remote_name}'",
flush=True,
)
# Skip this remote if it doesn't match the search criteria
if branch is not None:
if branch != remote.branch:
@ -104,4 +118,5 @@ def update(branch=None, repo=None):
else:
raise SaltRunnerError("No git_pillar remotes are configured")
print(f"DGM runners git_pillar update, exit ret '{ret}'", flush=True)
return ret

View file

@ -19,6 +19,7 @@ import shutil
import stat
import subprocess
import time
import traceback # # DGM
import weakref
from datetime import datetime
@ -255,6 +256,13 @@ class GitProvider:
self.opts = opts
self.role = role
## DGM
if hasattr(self, "name"):
print(
f"DGM class GitProvider dunder init, very start, hasattr self.name '{self.name}'",
flush=True,
)
def _val_cb(x, y):
return str(y)
@ -476,21 +484,48 @@ class GitProvider:
failhard(self.role)
if hasattr(self, "name"):
self._cache_basehash = self.name
## DGM
print(
f"DGM class GitProvider dunder init, hasattr self.name '{self.name}'",
flush=True,
)
else:
hash_type = getattr(hashlib, self.opts.get("hash_type", DEFAULT_HASH_TYPE))
# We loaded this data from yaml configuration files, so, its safe
# to use UTF-8
## DGM
dgm_orig_cache_bash_str = str(
base64.b64encode(hash_type(self.id.encode("utf-8")).digest()),
encoding="ascii",
)
print(
f"DGM class GitProvider dunder init, hasattr dgm_orig_cache_bash_str '{dgm_orig_cache_bash_str}'",
flush=True,
)
self._cache_basehash = str(
base64.b64encode(hash_type(self.id.encode("utf-8")).digest()),
encoding="ascii", # base64 only outputs ascii
).replace(
"/", "_"
) # replace "/" with "_" to not cause trouble with file system
## DGM
print(
f"DGM class GitProvider dunder init, self._cache_basehash '{self._cache_basehash}'",
flush=True,
)
self._cache_hash = salt.utils.path.join(cache_root, self._cache_basehash)
self._cache_basename = "_"
if self.id.startswith("__env__"):
try:
self._cache_basename = self.get_checkout_target()
print(
f"DGM class GitProvider dunder init, self.id '{self.id}', self._cache_basename '{self._cache_basename}'",
flush=True,
)
except AttributeError:
log.critical(
"__env__ cant generate basename: %s %s", self.role, self.id
@ -771,10 +806,17 @@ class GitProvider:
success = []
failed = []
## DGM someone is calling this after the lock file has been removed, ie twice ?
stk_summary = traceback.format_stack()
try:
os.remove(lock_file)
except OSError as exc:
if exc.errno == errno.ENOENT:
print(
f"DGM class GitProvider _clear_lock entry, exception, stk_summary '{stk_summary}'",
flush=True,
)
# No lock file present
msg = (
f"Attempt to remove lock {self.url} for file ({lock_file}) "
@ -793,6 +835,12 @@ class GitProvider:
else:
_add_error(failed, exc)
else:
## DGM
print(
f"DGM class GitProvider _clear_lock entry, else, stk_summary '{stk_summary}'",
flush=True,
)
msg = (
f"Removed {lock_type} lock for {self.role} remote '{self.id}' "
f"on machine_id '{self.mach_id}'"
@ -826,6 +874,10 @@ class GitProvider:
# section for the remote to the git config
conf.add_section(remote_section)
conf_changed = True
print(
f"DGM class GitProvider enforce_git_config, URL NoSectionError conf_changed set True '{conf_changed}'",
flush=True,
)
url = None
log.debug(
"Current fetch URL for %s remote '%s': %s (desired: %s)",
@ -843,6 +895,10 @@ class GitProvider:
self.url,
)
conf_changed = True
print(
f"DGM class GitProvider enforce_git_config, URL change conf_changed set True '{conf_changed}'",
flush=True,
)
# 2. refspecs
try:
@ -869,6 +925,10 @@ class GitProvider:
desired_refspecs,
)
conf_changed = True
print(
f"DGM class GitProvider enforce_git_config, refspecs conf_changed set True '{conf_changed}'",
flush=True,
)
# 3. http.sslVerify
try:
@ -895,9 +955,17 @@ class GitProvider:
desired_ssl_verify,
)
conf_changed = True
print(
f"DGM class GitProvider enforce_git_config, ssl_verify conf_changed set True '{conf_changed}'",
flush=True,
)
# Write changes, if necessary
if conf_changed:
print(
f"DGM class GitProvider enforce_git_config, conf_changed set True, examine file '{git_config}'",
flush=True,
)
with salt.utils.files.fopen(git_config, "w") as fp_:
conf.write(fp_)
log.debug(
@ -915,6 +983,8 @@ class GitProvider:
This function requires that a _fetch() function be implemented in a
sub-class.
"""
## DGM stk_summary = traceback.format_stack()
## DGM print(f"DGM class GitProvider fetch, stk_summary '{stk_summary}'", flush=True)
try:
with self.gen_lock(lock_type="update"):
log.debug("Fetching %s remote '%s'", self.role, self.id)
@ -1565,13 +1635,36 @@ class GitPython(GitProvider):
local copy was already up-to-date, return False.
"""
origin = self.repo.remotes[0]
print(f"DGM class GitPython _fetch entry, origin '{dir(origin)}'", flush=True)
try:
fetch_results = origin.fetch()
except AssertionError:
fetch_results = origin.fetch()
new_objs = False
print(
f"DGM class GitPython _fetch, origin '{dir(origin)}', fetch_results '{fetch_results}'",
flush=True,
)
for fetchinfo in fetch_results:
## DGM
dgm_commit = 0
dgm_old_commit = 0
## DGM
if fetchinfo.old_commit is not None:
dgm_commit = fetchinfo.commit.hexsha[:7]
dgm_old_commit = fetchinfo.old_commit.hexsha[:7]
print(
f"DGM class GitPython _fetch, fetchinfo dir '{dir(fetchinfo)}', self.id '{self.id}', fetchinfo.name '{fetchinfo.name}', fetchinfo.old_commit '{dgm_old_commit}', fetchinfo.commit '{dgm_commit}', fetchinfo.flags '{fetchinfo.flags}', NEW_TAG '{fetchinfo.NEW_TAG}', NEW_HEAD '{fetchinfo.NEW_HEAD}'",
flush=True,
)
if fetchinfo.old_commit is not None:
log.debug(
"%s has updated '%s' for remote '%s' from %s to %s",
@ -1593,7 +1686,10 @@ class GitPython(GitProvider):
new_objs = True
cleaned = self.clean_stale_refs()
return True if (new_objs or cleaned) else None
## DGM return True if (new_objs or cleaned) else None
dgm_ret = True if (new_objs or cleaned) else None
print(f"DGM class GitPython _fetch, return '{dgm_ret}'", flush=True)
return dgm_ret
def file_list(self, tgt_env):
"""
@ -1766,12 +1862,18 @@ class Pygit2(GitProvider):
fetch_on_fail
If checkout fails perform a fetch then try to checkout again.
"""
print("DGM class Pygit2 checkout entry", flush=True)
self.fetch_request_check()
tgt_ref = self.get_checkout_target()
local_ref = "refs/heads/" + tgt_ref
remote_ref = "refs/remotes/origin/" + tgt_ref
tag_ref = "refs/tags/" + tgt_ref
print(
f"DGM class Pygit2 checkout entry, tgt_ref '{tgt_ref}', local_ref '{local_ref}', tag_ref '{tag_ref}'",
flush=True,
)
try:
local_head = self.repo.lookup_reference("HEAD")
except KeyError:
@ -1854,6 +1956,12 @@ class Pygit2(GitProvider):
# Only perform a checkout if HEAD and target are not pointing
# at the same SHA1.
print(
f"DGM class Pygit2 checkout, head_sha '{head_sha}', target_sha '{target_sha}'",
flush=True,
)
if head_sha != target_sha:
# Check existence of the ref in refs/heads/ which
# corresponds to the local HEAD. Checking out local_ref
@ -2108,6 +2216,12 @@ class Pygit2(GitProvider):
origin = self.repo.remotes[0]
refs_pre = self.repo.listall_references()
fetch_kwargs = {}
print(
f"DGM class pygit2 _fetch, origin '{dir(origin)}', refs_pre '{refs_pre}'",
flush=True,
)
# pygit2 radically changed fetchiing in 0.23.2
if self.remotecallbacks is not None:
fetch_kwargs["callbacks"] = self.remotecallbacks
@ -2121,8 +2235,18 @@ class Pygit2(GitProvider):
pass
try:
fetch_results = origin.fetch(**fetch_kwargs)
print(
f"DGM class pygit2 _fetch, fetch_results '{fetch_results}', fetch_kwargs '{fetch_kwargs}', dir fetch_results '{dir(fetch_results)}'",
flush=True,
)
except GitError as exc: # pylint: disable=broad-except
exc_str = get_error_message(exc).lower()
print(
f"DGM class pygit2 _fetch, exception giterror exc '{exc_str}'",
flush=True,
)
if "unsupported url protocol" in exc_str and isinstance(
self.credentials, pygit2.Keypair
):
@ -2151,6 +2275,10 @@ class Pygit2(GitProvider):
exc,
exc_info=True,
)
print(
f"DGM class pygit2 _fetch, exception giterror returning False, role '{self.role}', id '{self.id}'",
flush=True,
)
return False
try:
# pygit2.Remote.fetch() returns a dict in pygit2 < 0.21.0
@ -2159,6 +2287,11 @@ class Pygit2(GitProvider):
# pygit2.Remote.fetch() returns a class instance in
# pygit2 >= 0.21.0
received_objects = fetch_results.received_objects
print(
f"DGM class pygit2 _fetch, fetch_results contents, indexed_deltas '{fetch_results.indexed_deltas}', indexed_objects '{fetch_results.indexed_objects}', local_objects '{fetch_results.local_objects}', received_bytes '{fetch_results.received_bytes}', received_objects '{fetch_results.received_objects}', total_deltas '{fetch_results.total_deltas}', total_objects '{fetch_results.total_objects}'",
flush=True,
)
if received_objects != 0:
log.debug(
"%s received %s objects for remote '%s'",
@ -2170,12 +2303,21 @@ class Pygit2(GitProvider):
log.debug("%s remote '%s' is up-to-date", self.role, self.id)
refs_post = self.repo.listall_references()
cleaned = self.clean_stale_refs(local_refs=refs_post)
return True if (received_objects or refs_pre != refs_post or cleaned) else None
## DGM return True if (received_objects or refs_pre != refs_post or cleaned) else None
dgm_ret = (
True if (received_objects or refs_pre != refs_post or cleaned) else None
)
print(
f"DGM class pygit2 _fetch, return '{dgm_ret}', received_objects '{received_objects}', refs_pre '{refs_pre}', refs_post '{refs_post}', cleaned '{cleaned}'",
flush=True,
)
def file_list(self, tgt_env):
"""
Get file list for the target environment using pygit2
"""
print(f"DGM class Pygit2 file_list entry, tgt_env '{tgt_env}'", flush=True)
def _traverse(tree, blobs, prefix):
"""
@ -2540,6 +2682,10 @@ class GitBase:
gitfs.fetch_remotes()
"""
print(
f"DGM class GitBase dunder init entry, opts '{opts}', git_providers '{git_providers}', remotes '{remotes}'",
flush=True,
)
self.opts = opts
self.git_providers = (
git_providers if git_providers is not None else GIT_PROVIDERS
@ -2579,6 +2725,11 @@ class GitBase:
# are defined and the provider is not one that supports auth, then
# error out and do not proceed.
override_params = copy.deepcopy(per_remote_overrides)
print(
f"DGM class GitBase init_remotes entry, remotes '{remotes}', override_params '{override_params}'",
flush=True,
)
global_auth_params = [
f"{self.role}_{x}" for x in AUTH_PARAMS if self.opts[f"{self.role}_{x}"]
]
@ -2754,12 +2905,20 @@ class GitBase:
# matches or else skip this one
try:
if not fnmatch.fnmatch(repo.url, remote):
print(
f"DGM clear_lock not fnmatch, repo.url '{repo.url}', remote '{remote}'",
flush=True,
)
continue
except TypeError:
# remote was non-string, try again
if not fnmatch.fnmatch(repo.url, str(remote)):
continue
success, failed = repo.clear_lock(lock_type=lock_type)
print(
f"DGM clear_lock, success '{success}', failed '{failed}', for lock_type '{lock_type}'",
flush=True,
)
cleared.extend(success)
errors.extend(failed)
@ -2770,6 +2929,7 @@ class GitBase:
Fetch all remotes and return a boolean to let the calling function know
whether or not any remotes were updated in the process of fetching
"""
print(f"DGM class GitBase fetch_remotes entry, remotes '{remotes}'", flush=True)
if remotes is None:
remotes = []
elif isinstance(remotes, str):
@ -2785,18 +2945,34 @@ class GitBase:
changed = False
for repo in self.remotes:
name = getattr(repo, "name", None)
print(
f"DGM class GitBase fetch_remotes, self.role '{self.role}', name '{name}', repo id '{repo.id}'",
flush=True,
)
if not remotes or (repo.id, name) in remotes or name in remotes:
try:
# Find and place fetch_request file for all the other branches for this repo
repo_work_hash = os.path.split(repo.get_salt_working_dir())[0]
print(
f"DGM class GitBase fetch_remotes, repo working_dir '{repo.get_salt_working_dir()}', repo_work_hash '{repo_work_hash}'",
flush=True,
)
for branch in os.listdir(repo_work_hash):
# Don't place fetch request in current branch being updated
print(
f"DGM class GitBase fetch_remotes, for loop branch, branch '{branch}', repo cache basename '{repo.get_cache_basename()}'",
flush=True,
)
if branch == repo.get_cache_basename():
continue
branch_salt_dir = salt.utils.path.join(repo_work_hash, branch)
fetch_path = salt.utils.path.join(
branch_salt_dir, "fetch_request"
)
print(
f"DGM class GitBase fetch_remotes, for loop branch, branch_salt_dir '{branch_salt_dir}', fetch_path '{fetch_path}'",
flush=True,
)
if os.path.isdir(branch_salt_dir):
try:
with salt.utils.files.fopen(fetch_path, "w"):
@ -2818,6 +2994,10 @@ class GitBase:
# changes would override this value and make it
# incorrect.
changed = True
print(
f"DGM class GitBase fetch_remotes, for loop branch, repo.fetch check, changed '{changed}'",
flush=True,
)
except Exception as exc: # pylint: disable=broad-except
log.error(
"Exception caught while fetching %s remote '%s': %s",
@ -2826,6 +3006,10 @@ class GitBase:
exc,
exc_info=True,
)
print(
f"DGM class GitBase fetch_remotes, exit returning changed '{changed}'",
flush=True,
)
return changed
def lock(self, remote=None):
@ -2840,12 +3024,17 @@ class GitBase:
# matches or else skip this one
try:
if not fnmatch.fnmatch(repo.url, remote):
print(
f"DGM lock not fnmatch, repo.url '{repo.url}', remote '{remote}'",
flush=True,
)
continue
except TypeError:
# remote was non-string, try again
if not fnmatch.fnmatch(repo.url, str(remote)):
continue
success, failed = repo.lock()
print(f"DGM lock, success '{success}', failed '{failed}'", flush=True)
locked.extend(success)
errors.extend(failed)
return locked, errors
@ -2918,6 +3107,8 @@ class GitBase:
"""
Determine which provider to use
"""
print(f"DGM class GitBase verify_provider, self.role '{self.role}'", flush=True)
if f"verified_{self.role}_provider" in self.opts:
self.provider = self.opts[f"verified_{self.role}_provider"]
else:
@ -3074,10 +3265,20 @@ class GitBase:
fetch_on_fail
If checkout fails perform a fetch then try to checkout again.
"""
print(
f"DGM class GitBase do_checkout entry, repo '{repo}', dir repo '{dir(repo)}', fetch_on_fail '{fetch_on_fail}'",
flush=True,
)
time_start = time.time()
while time.time() - time_start <= 5:
try:
return repo.checkout(fetch_on_fail=fetch_on_fail)
## DGM return repo.checkout(fetch_on_fail=fetch_on_fail)
dgm_cachedir = repo.checkout(fetch_on_fail=fetch_on_fail)
print(
f"DGM class GitBase do_checkout, returning cachedir '{dgm_cachedir}'",
flush=True,
)
return dgm_cachedir
except GitLockError as exc:
if exc.errno == errno.EEXIST:
time.sleep(0.1)
@ -3483,8 +3684,14 @@ class GitPillar(GitBase):
"""
self.pillar_dirs = OrderedDict()
self.pillar_linked_dirs = []
print(f"DGM class GitPillar checkout, remotes '{self.remotes}'", flush=True)
for repo in self.remotes:
cachedir = self.do_checkout(repo, fetch_on_fail=fetch_on_fail)
print(
f"DGM class GitPillar checkout, repo '{repo}', cachedir '{cachedir}'",
flush=True,
)
if cachedir is not None:
# Figure out which environment this remote should be assigned
if repo.branch == "__env__" and hasattr(repo, "all_saltenvs"):

View file

@ -32,6 +32,10 @@ except ImportError:
skipif_no_gitpython = pytest.mark.skipif(not HAS_GITPYTHON, reason="Missing gitpython")
skipif_no_pygit2 = pytest.mark.skipif(not HAS_PYGIT2, reason="Missing pygit2")
## DGM
## testgitfs = "https://github.com/saltstack/salt-test-pillar-gitfs.git"
testgitfs = "https://github.com/dmurphy18/salt-test-pillar-gitfs.git"
@pytest.fixture
def pillar_opts(salt_factories, tmp_path):
@ -72,9 +76,10 @@ def _get_pillar(opts, *remotes):
@skipif_no_gitpython
def test_gitpython_pillar_provider(gitpython_pillar_opts):
p = _get_pillar(
gitpython_pillar_opts, "https://github.com/saltstack/salt-test-pillar-gitfs.git"
)
## DGM p = _get_pillar(
## DGM gitpython_pillar_opts, "https://github.com/saltstack/salt-test-pillar-gitfs.git"
## DGM )
p = _get_pillar(gitpython_pillar_opts, testgitfs)
assert len(p.remotes) == 1
assert p.provider == "gitpython"
assert isinstance(p.remotes[0], GitPython)
@ -82,18 +87,20 @@ def test_gitpython_pillar_provider(gitpython_pillar_opts):
@skipif_no_pygit2
def test_pygit2_pillar_provider(pygit2_pillar_opts):
p = _get_pillar(
pygit2_pillar_opts, "https://github.com/saltstack/salt-test-pillar-gitfs.git"
)
## DGM p = _get_pillar(
## DGM pygit2_pillar_opts, "https://github.com/saltstack/salt-test-pillar-gitfs.git"
## DGM )
p = _get_pillar(pygit2_pillar_opts, testgitfs)
assert len(p.remotes) == 1
assert p.provider == "pygit2"
assert isinstance(p.remotes[0], Pygit2)
def _test_env(opts):
p = _get_pillar(
opts, "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git"
)
## DGM p = _get_pillar(
## DGM opts, "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git"
## DGM )
p = _get_pillar(opts, f"__env__ {testgitfs}")
assert len(p.remotes) == 1
p.checkout()
repo = p.remotes[0]
@ -102,9 +109,10 @@ def _test_env(opts):
for f in (".gitignore", "README.md", "file.sls", "top.sls"):
assert f in files
opts["pillarenv"] = "main"
p2 = _get_pillar(
opts, "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git"
)
## DGM p2 = _get_pillar(
## DGM opts, "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git"
## DGM )
p2 = _get_pillar(opts, f"__env__ {testgitfs}")
assert len(p.remotes) == 1
p2.checkout()
repo2 = p2.remotes[0]
@ -163,11 +171,19 @@ def test_pygit2_checkout_fetch_on_fail(pygit2_pillar_opts):
def _test_multiple_repos(opts):
## DGM p = _get_pillar(
## DGM opts,
## DGM "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM "main https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM "branch https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM "__env__ https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
## DGM "other https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
## DGM )
p = _get_pillar(
opts,
"__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git",
"main https://github.com/saltstack/salt-test-pillar-gitfs.git",
"branch https://github.com/saltstack/salt-test-pillar-gitfs.git",
f"__env__ {testgitfs}",
f"main {testgitfs}",
f"branch {testgitfs}",
"__env__ https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
"other https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
)
@ -177,11 +193,19 @@ def _test_multiple_repos(opts):
assert len({r.get_cachedir() for r in p.remotes}) == 5
assert len({r.get_salt_working_dir() for r in p.remotes}) == 5
## DGM p2 = _get_pillar(
## DGM opts,
## DGM "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM "main https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM "branch https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM "__env__ https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
## DGM "other https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
## DGM )
p2 = _get_pillar(
opts,
"__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git",
"main https://github.com/saltstack/salt-test-pillar-gitfs.git",
"branch https://github.com/saltstack/salt-test-pillar-gitfs.git",
f"__env__ {testgitfs}",
f"main {testgitfs}",
f"branch {testgitfs}",
"__env__ https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
"other https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
)
@ -192,11 +216,19 @@ def _test_multiple_repos(opts):
assert repo.get_cachedir() == repo2.get_cachedir()
assert repo.get_salt_working_dir() == repo2.get_salt_working_dir()
opts["pillarenv"] = "main"
## DGM p3 = _get_pillar(
## DGM opts,
## DGM "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM "main https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM "branch https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM "__env__ https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
## DGM "other https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
## DGM )
p3 = _get_pillar(
opts,
"__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git",
"main https://github.com/saltstack/salt-test-pillar-gitfs.git",
"branch https://github.com/saltstack/salt-test-pillar-gitfs.git",
f"__env__ {testgitfs}",
f"main {testgitfs}",
f"branch {testgitfs}",
"__env__ https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
"other https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
)
@ -225,17 +257,23 @@ def test_pygit2_multiple_repos(pygit2_pillar_opts):
def _test_fetch_request(opts):
## DGM p = _get_pillar(
## DGM opts,
## DGM "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM "other https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
## DGM )
p = _get_pillar(
opts,
"__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git",
f"__env__ {testgitfs}",
"other https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
)
frequest = os.path.join(p.remotes[0].get_salt_working_dir(), "fetch_request")
frequest_other = os.path.join(p.remotes[1].get_salt_working_dir(), "fetch_request")
opts["pillarenv"] = "main"
p2 = _get_pillar(
opts, "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git"
)
## DGM p2 = _get_pillar(
## DGM opts, "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git"
## DGM )
p2 = _get_pillar(opts, f"__env__ {testgitfs}")
frequest2 = os.path.join(p2.remotes[0].get_salt_working_dir(), "fetch_request")
assert frequest != frequest2
assert os.path.isfile(frequest) is False
@ -275,17 +313,23 @@ def test_pygit2_fetch_request(pygit2_pillar_opts):
def _test_clear_old_remotes(opts):
## DGM p = _get_pillar(
## DGM opts,
## DGM "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM "other https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
## DGM )
p = _get_pillar(
opts,
"__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git",
f"__env__ {testgitfs}",
"other https://github.com/saltstack/salt-test-pillar-gitfs-2.git",
)
repo = p.remotes[0]
repo2 = p.remotes[1]
opts["pillarenv"] = "main"
p2 = _get_pillar(
opts, "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git"
)
## DGM p2 = _get_pillar(
## DGM opts, "__env__ https://github.com/saltstack/salt-test-pillar-gitfs.git"
## DGM )
p2 = _get_pillar(opts, f"__env__ {testgitfs}")
repo3 = p2.remotes[0]
assert os.path.isdir(repo.get_cachedir()) is True
assert os.path.isdir(repo2.get_cachedir()) is True
@ -311,9 +355,13 @@ def test_pygit2_clear_old_remotes(pygit2_pillar_opts):
def _test_remote_map(opts):
## DGM p = _get_pillar(
## DGM opts,
## DGM "https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM )
p = _get_pillar(
opts,
"https://github.com/saltstack/salt-test-pillar-gitfs.git",
testgitfs,
)
p.fetch_remotes()
assert len(p.remotes) == 1
@ -333,9 +381,13 @@ def test_pygit2_remote_map(pygit2_pillar_opts):
def _test_lock(opts):
## DGM p = _get_pillar(
## DGM opts,
## DGM "https://github.com/saltstack/salt-test-pillar-gitfs.git",
## DGM )
p = _get_pillar(
opts,
"https://github.com/saltstack/salt-test-pillar-gitfs.git",
testgitfs,
)
p.fetch_remotes()
assert len(p.remotes) == 1
@ -355,8 +407,9 @@ def _test_lock(opts):
assert repo.clear_lock() == (
[
(
f"Removed update lock for git_pillar remote "
f"'https://github.com/saltstack/salt-test-pillar-gitfs.git' on machine_id '{mach_id}'"
## DGM f"Set update lock for git_pillar remote "
## DGM f"'https://github.com/saltstack/salt-test-pillar-gitfs.git' on machine_id '{mach_id}'"
f"Set update lock for git_pillar remote '{testgitfs}' on machine_id '{mach_id}'"
)
],
[],