Files
mesh-host/internal/apply/walk_other.go
T
jschoubben 2a2be687f3 Keep libraries under groups of their own, and give modules users in them (hq ADR 0328, issue 567)
ADR 0328 supersedes ADR 0325: shared data is a library with one home, kept usable by
its group rather than by ACL entries. The engine now makes each library's group and
each module's user in its libraries' groups; keeps a library's root and requested
sub-paths in its group with group write and setgid on its home, making missing
sub-paths as the root is; waits for the operator's word before touching a root that
holds data, and on the take act walks it by descriptor (no link, same filesystem,
bounded and resumed, files with other names left); holds the containers of a library
whose disk or mount is not there; and puts the tool runner's account in the group.
The ACL keeping, mask repair and watch are gone; an access is again as before ADR 0325.
2026-10-12 22:11:09 +02:00

38 lines
1.2 KiB
Go

//go:build !linux
package apply
import (
"context"
"errors"
"github.com/novox/mesh-host/internal/declaration"
)
// The node-engine runs on Linux: a library is kept only by descriptor, which this system cannot. Everything refuses,
// saying so, and changes nothing.
var errNoKeeping = errors.New("a library is kept only by descriptor, which this system cannot; nothing was changed")
// FolderFacts is what the engine reads of a library's root before keeping it.
type FolderFacts struct {
UID, GID uint32
Mode uint32
Empty bool
}
func readFolder(string) (FolderFacts, error) { return FolderFacts{}, errNoKeeping }
func keepFolders(string, []string, int) (int, int, error) { return 0, 0, errNoKeeping }
func ReconcileLibraries(context.Context, *declaration.Declaration) []string { return nil }
func TakeLibrary(context.Context, *declaration.Declaration, string, string, string, string) (<-chan struct{},
string, error) {
return nil, "", errNoKeeping
}
// MountFsid reads no filesystem id where a library is not kept.
var MountFsid = func(string) string { return "" }
// MountUUID reads no UUID where a library is not kept.
var MountUUID = func(string) string { return "" }