42 lines
1.4 KiB
Plaintext
Raw Normal View History

# VM Lifecycle and Persistence Management
#
# Hybrid pattern: defaults + makers + instances
let contracts_lib = import "./contracts.ncl" in
let defaults_lib = import "./defaults.ncl" in
{
defaults = defaults_lib,
# Maker functions (not exported)
make_vm_persistence | not_exported = fun overrides =>
defaults_lib.VmPersistence & overrides,
make_lifecycle_policy | not_exported = fun overrides =>
defaults_lib.VmLifecyclePolicy & overrides,
make_cleanup_schedule | not_exported = fun overrides =>
defaults_lib.VmCleanupSchedule & overrides,
make_recovery_state | not_exported = fun overrides =>
defaults_lib.VmRecoveryState & overrides,
make_auto_start_config | not_exported = fun overrides =>
defaults_lib.VmAutoStartConfig & overrides,
make_cleanup_policy | not_exported = fun overrides =>
defaults_lib.VmCleanupPolicy & overrides,
make_state_snapshot | not_exported = fun overrides =>
defaults_lib.VmStateSnapshot & overrides,
# Default instances
DefaultVmPersistence = defaults_lib.VmPersistence,
DefaultVmLifecyclePolicy = defaults_lib.VmLifecyclePolicy,
DefaultVmCleanupSchedule = defaults_lib.VmCleanupSchedule,
DefaultVmRecoveryState = defaults_lib.VmRecoveryState,
DefaultVmAutoStartConfig = defaults_lib.VmAutoStartConfig,
DefaultVmCleanupPolicy = defaults_lib.VmCleanupPolicy,
DefaultVmStateSnapshot = defaults_lib.VmStateSnapshot,
}