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.
38 lines
1.2 KiB
Go
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 "" }
|