mirror of
https://github.com/osixia/container-openldap.git
synced 2026-11-06 12:40:36 -04:00
56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
package tests
|
|
|
|
import (
|
|
"context"
|
|
_ "embed"
|
|
"fmt"
|
|
|
|
"dagger.io/dagger"
|
|
)
|
|
|
|
// RefintNothing covers default behavior and automatic placeholder creation,
|
|
// including removal of a group's last member.
|
|
func RefintNothing(ctx context.Context, client *dagger.Client, image *dagger.Container) error {
|
|
passwords, err := rootPasswords(ctx, image)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
base := merge(passwords, env{
|
|
"OPENLDAP_BOOTSTRAP_REFINT": "true",
|
|
"OPENLDAP_BOOTSTRAP_MEMBEROF": "true",
|
|
"OPENLDAP_BOOTSTRAP_MEMBEROF_DANGLING": "error",
|
|
})
|
|
nothingDN := "cn=unassigned," + suffix
|
|
|
|
for _, mode := range []string{"default", "create", "disabled"} {
|
|
settings := env{}
|
|
if mode != "default" {
|
|
settings["OPENLDAP_BOOTSTRAP_REFINT_NOTHING_DN"] = nothingDN
|
|
}
|
|
if mode == "disabled" {
|
|
settings["OPENLDAP_BOOTSTRAP_REFINT"] = "false"
|
|
}
|
|
if err := func() error {
|
|
node := "refint-" + mode
|
|
service, err := startNode(ctx, image, node, merge(base, settings), nil, nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer stopNodes(ctx, []*dagger.Service{service})
|
|
return check(ctx, image, nil, env{
|
|
"TEST_NODES": node,
|
|
"TEST_REFINT_MODE": mode,
|
|
"TEST_NOTHING_DN": nothingDN,
|
|
"TEST_NOTHING_CN": "unassigned",
|
|
}, refintCheck)
|
|
}(); err != nil {
|
|
return fmt.Errorf("refint %s: %w", mode, err)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//go:embed testdata/refint.sh
|
|
var refintCheck string
|