Define ignored workspace routing semantics and budgets
This commit is contained in:
parent
0716bab960
commit
c54372ea87
1 changed files with 905 additions and 0 deletions
228
tests/fixtures/ignored-workspace-v1/contract.json
vendored
Normal file
228
tests/fixtures/ignored-workspace-v1/contract.json
vendored
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
{
|
||||
"schema": "lazaret-ignored-workspace-contract-v1",
|
||||
"mechanism": "rootless-host-fuse-router",
|
||||
"route_classes": [
|
||||
"host",
|
||||
"isolated"
|
||||
],
|
||||
"transition_contracts": [
|
||||
{
|
||||
"id": "cross-route-rename",
|
||||
"operations": [
|
||||
"rename",
|
||||
"rename-noreplace",
|
||||
"rename-exchange"
|
||||
],
|
||||
"result": "EXDEV",
|
||||
"mutation": "none"
|
||||
},
|
||||
{
|
||||
"id": "rename-whiteout",
|
||||
"operations": [
|
||||
"rename-whiteout"
|
||||
],
|
||||
"result": "EOPNOTSUPP",
|
||||
"mutation": "none"
|
||||
},
|
||||
{
|
||||
"id": "cross-route-hard-link",
|
||||
"operations": [
|
||||
"link"
|
||||
],
|
||||
"result": "EXDEV",
|
||||
"mutation": "none"
|
||||
},
|
||||
{
|
||||
"id": "ignored-to-host-policy",
|
||||
"trigger": "path becomes non-ignored without becoming tracked",
|
||||
"new_lookups": "host-or-absent",
|
||||
"open_handles": "remain-isolated",
|
||||
"isolated_state": "retained-hidden",
|
||||
"copy": "none"
|
||||
},
|
||||
{
|
||||
"id": "host-to-ignored-policy",
|
||||
"trigger": "untracked path becomes ignored",
|
||||
"new_lookups": "retained-isolated-or-absent",
|
||||
"open_handles": "remain-host",
|
||||
"host_state": "retained-hidden",
|
||||
"copy": "none"
|
||||
},
|
||||
{
|
||||
"id": "isolated-to-tracked-guest-publication",
|
||||
"trigger": "guest index publication tracks an isolated-only path",
|
||||
"result": "EBUSY",
|
||||
"index_mutation": "none",
|
||||
"isolated_state": "retained-visible",
|
||||
"copy": "none"
|
||||
},
|
||||
{
|
||||
"id": "isolated-to-tracked-host-established",
|
||||
"trigger": "published index and type-compatible host object both exist",
|
||||
"new_lookups": "host",
|
||||
"open_handles": "remain-isolated",
|
||||
"isolated_state": "retained-hidden",
|
||||
"copy": "none"
|
||||
},
|
||||
{
|
||||
"id": "isolated-to-tracked-unmediated-inconsistent",
|
||||
"trigger": "unmediated index publication tracks a path without a host object",
|
||||
"result": "EIO",
|
||||
"path_state": "fail-closed-until-consistent",
|
||||
"isolated_state": "retained-hidden-recoverable",
|
||||
"copy": "none"
|
||||
}
|
||||
],
|
||||
"filesystem_operations": [
|
||||
{
|
||||
"operation": "lookup-getattr-readdir",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "not-applicable"
|
||||
},
|
||||
{
|
||||
"operation": "create-mkdir-open-read-write-truncate-fallocate-fsync",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "not-applicable"
|
||||
},
|
||||
{
|
||||
"operation": "unlink-rmdir",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "not-applicable"
|
||||
},
|
||||
{
|
||||
"operation": "rename",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "EXDEV"
|
||||
},
|
||||
{
|
||||
"operation": "rename-noreplace",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "EXDEV"
|
||||
},
|
||||
{
|
||||
"operation": "rename-exchange",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "EXDEV"
|
||||
},
|
||||
{
|
||||
"operation": "rename-whiteout",
|
||||
"host": "EOPNOTSUPP",
|
||||
"isolated": "EOPNOTSUPP",
|
||||
"cross_route": "EOPNOTSUPP"
|
||||
},
|
||||
{
|
||||
"operation": "hard-link",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "EXDEV"
|
||||
},
|
||||
{
|
||||
"operation": "symlink-readlink",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "virtual-path-resolution"
|
||||
},
|
||||
{
|
||||
"operation": "user-xattrs",
|
||||
"host": "backing-feature",
|
||||
"isolated": "backing-feature",
|
||||
"cross_route": "not-applicable"
|
||||
},
|
||||
{
|
||||
"operation": "posix-acls",
|
||||
"host": "backing-feature",
|
||||
"isolated": "backing-feature",
|
||||
"cross_route": "not-applicable"
|
||||
},
|
||||
{
|
||||
"operation": "sparse-seek-hole-data-punch-hole",
|
||||
"host": "backing-feature",
|
||||
"isolated": "backing-feature",
|
||||
"cross_route": "not-applicable"
|
||||
},
|
||||
{
|
||||
"operation": "copy-file-range",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "EXDEV"
|
||||
},
|
||||
{
|
||||
"operation": "utimens-nanoseconds",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "not-applicable"
|
||||
},
|
||||
{
|
||||
"operation": "mmap-shared-private",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "pinned-open-backing"
|
||||
},
|
||||
{
|
||||
"operation": "flock-posix-record-lock",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "pinned-open-backing"
|
||||
},
|
||||
{
|
||||
"operation": "fifo-unix-socket",
|
||||
"host": "supported",
|
||||
"isolated": "supported",
|
||||
"cross_route": "not-applicable"
|
||||
},
|
||||
{
|
||||
"operation": "character-block-device-create",
|
||||
"host": "EPERM",
|
||||
"isolated": "EPERM",
|
||||
"cross_route": "EPERM"
|
||||
}
|
||||
],
|
||||
"git_compatibility": [
|
||||
{
|
||||
"operation": "status-diff",
|
||||
"support": "supported"
|
||||
},
|
||||
{
|
||||
"operation": "ordinary-add-reset-commit",
|
||||
"support": "supported-host-backed-paths"
|
||||
},
|
||||
{
|
||||
"operation": "checkout-restore",
|
||||
"support": "supported"
|
||||
},
|
||||
{
|
||||
"operation": "branch-reference-update",
|
||||
"support": "supported"
|
||||
},
|
||||
{
|
||||
"operation": "merge-rebase-stash",
|
||||
"support": "supported"
|
||||
},
|
||||
{
|
||||
"operation": "linked-worktree",
|
||||
"support": "supported"
|
||||
},
|
||||
{
|
||||
"operation": "nested-repository",
|
||||
"support": "supported"
|
||||
},
|
||||
{
|
||||
"operation": "force-add-isolated-only",
|
||||
"support": "EBUSY-before-index-publication"
|
||||
},
|
||||
{
|
||||
"operation": "host-config-write",
|
||||
"support": "EROFS"
|
||||
},
|
||||
{
|
||||
"operation": "default-hook-host-access",
|
||||
"support": "sandbox-transient-only"
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Reference in a new issue