Publish curated Unraid-AppOps-Gateway source from 166e10b7084c977816a75560d015da8f350c534c
This commit is contained in:
1 parent
ad3a9736cc
commit
af3c376330
3 files changed
+53
-4
No files matched your search
@@ -1,3 +1,3 @@
|
|||||||
# Public source export
|
# Public source export
|
||||||
|
|
||||||
This source snapshot was generated from the private canonical repository at revision `87aa7dda6889fd951d202754d76daaaa1e98e26b`. It contains no private Git history or operational evidence. Changes are published from the canonical repository.
|
This source snapshot was generated from the private canonical repository at revision `166e10b7084c977816a75560d015da8f350c534c`. It contains no private Git history or operational evidence. Changes are published from the canonical repository.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"schemaVersion": 1,
|
"schemaVersion": 1,
|
||||||
"sourceRevision": "87aa7dda6889fd951d202754d76daaaa1e98e26b",
|
"sourceRevision": "166e10b7084c977816a75560d015da8f350c534c",
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"path": ".dockerignore",
|
"path": ".dockerignore",
|
||||||
@@ -1659,8 +1659,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "backend/tests/test_runner_fleet_specialize.py",
|
"path": "backend/tests/test_runner_fleet_specialize.py",
|
||||||
"sha256": "8d75435eb4f7b4adb52ffaff7bbb234941c382c68a4e71bdbbc3abc177aa279a",
|
"sha256": "e37f114322da2182d8448439025abe2ad772564332cff5955e93cc43d28cf45b",
|
||||||
"bytes": 186243
|
"bytes": 188449
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "backend/tests/test_runner_fleet_v2_execution_surface.py",
|
"path": "backend/tests/test_runner_fleet_v2_execution_surface.py",
|
||||||
|
|||||||
@@ -1080,7 +1080,56 @@ def test_profile_state_creation_uses_effective_runner_image_owners_and_resumes(
|
|||||||
specialize._prepare_profile_state("a" * 40)
|
specialize._prepare_profile_state("a" * 40)
|
||||||
config_path.write_bytes(expected)
|
config_path.write_bytes(expected)
|
||||||
os.chmod(config_path, 0o600)
|
os.chmod(config_path, 0o600)
|
||||||
|
# Docker normalizes its own data-root to 0710. Rollback preserves this
|
||||||
|
# directory; preparation must resume without changing daemon-owned bytes.
|
||||||
|
dind_root.chmod(0o710)
|
||||||
specialize._prepare_profile_state("a" * 40)
|
specialize._prepare_profile_state("a" * 40)
|
||||||
|
assert dind_root.stat().st_mode & 0o7777 == 0o710
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skipif(os.name != "posix" or os.geteuid() != 0, reason="requires POSIX root ownership")
|
||||||
|
@pytest.mark.parametrize("fault", [None, "fresh", "mode711", "mode755", "mode770",
|
||||||
|
"mode701", "special", "owner", "group", "symlink", "file", "parent_mode",
|
||||||
|
"parent_owner", "parent_group", "parent_symlink"])
|
||||||
|
def test_dind_data_root_accepts_only_daemon_mode_in_private_root_parent(
|
||||||
|
specialize, tmp_path, monkeypatch, fault,
|
||||||
|
):
|
||||||
|
parent = tmp_path / "dind"
|
||||||
|
parent.mkdir(mode=0o700)
|
||||||
|
root = parent / "docker"
|
||||||
|
root.mkdir(mode=0o710)
|
||||||
|
monkeypatch.setattr(specialize, "DIND_STORAGE_ROOT", root)
|
||||||
|
if fault == "fresh":
|
||||||
|
root.chmod(0o700)
|
||||||
|
elif fault and fault.startswith("mode"):
|
||||||
|
root.chmod(int(fault[4:], 8))
|
||||||
|
elif fault == "special":
|
||||||
|
root.chmod(0o1710)
|
||||||
|
elif fault in {"owner", "group"}:
|
||||||
|
os.chown(root, 1000 if fault == "owner" else 0, 1000 if fault == "group" else 0)
|
||||||
|
elif fault in {"symlink", "file"}:
|
||||||
|
root.rmdir()
|
||||||
|
if fault == "symlink":
|
||||||
|
root.symlink_to(tmp_path, target_is_directory=True)
|
||||||
|
else:
|
||||||
|
root.write_bytes(b"not a directory")
|
||||||
|
elif fault == "parent_mode":
|
||||||
|
parent.chmod(0o710)
|
||||||
|
elif fault in {"parent_owner", "parent_group"}:
|
||||||
|
os.chown(parent, 1000 if fault == "parent_owner" else 0,
|
||||||
|
1000 if fault == "parent_group" else 0)
|
||||||
|
elif fault == "parent_symlink":
|
||||||
|
real_parent = tmp_path / "real-dind"
|
||||||
|
parent.rename(real_parent)
|
||||||
|
parent.symlink_to(real_parent, target_is_directory=True)
|
||||||
|
if fault in {None, "fresh"}:
|
||||||
|
specialize._trusted_dind_data_root()
|
||||||
|
if fault is None:
|
||||||
|
with pytest.raises(specialize.RunnerFleetSpecializeError, match="path_untrusted"):
|
||||||
|
specialize._trusted_directory(root)
|
||||||
|
else:
|
||||||
|
with pytest.raises(specialize.RunnerFleetSpecializeError, match="path_untrusted"):
|
||||||
|
specialize._trusted_dind_data_root()
|
||||||
|
|
||||||
|
|
||||||
def _mounts(specialize, service):
|
def _mounts(specialize, service):
|
||||||
|
|||||||
Reference in new issue
Block a user