38 lines
893 B
Go
38 lines
893 B
Go
package node
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
monov1alpha1 "example.com/monok8s/pkg/apis/monok8s/v1alpha1"
|
|
"example.com/monok8s/pkg/controller/osimage"
|
|
)
|
|
|
|
func EngageControlGate(ctx context.Context, nctx *NodeContext) error {
|
|
gateFile := filepath.Join(monov1alpha1.EnvConfigDir, ".control-gate")
|
|
|
|
f, err := os.OpenFile(gateFile, os.O_CREATE|os.O_WRONLY, 0o644)
|
|
if err != nil {
|
|
return fmt.Errorf("touch %s: %w", gateFile, err)
|
|
}
|
|
defer f.Close()
|
|
|
|
return nil
|
|
}
|
|
|
|
func ReleaseControlGate(ctx context.Context, nctx *NodeContext) error {
|
|
gateFile := filepath.Join(monov1alpha1.EnvConfigDir, ".control-gate")
|
|
|
|
if err := os.Remove(gateFile); err != nil {
|
|
return fmt.Errorf("relate control gate: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func DiagTestDiskWrite(ctx context.Context, nctx *NodeContext) error {
|
|
return osimage.TestStreamToTarget(ctx, monov1alpha1.AltPartDeviceLink)
|
|
}
|