open-nomad/client/state/noopdb.go
Lang Martin ad2fb4b297 client/heartbeatstop: don't store client state, use timeout
In order to minimize this change while keeping a simple version of the
behavior, we set `lastOk` to the current time less the intial server
connection timeout. If the client starts and never contacts the
server, it will stop all configured tasks after the initial server
connection grace period, on the assumption that we've been out of
touch longer than any configured `stop_after_client_disconnect`.

The more complex state behavior might be justified later, but we
should learn about failure modes first.
2020-05-01 12:35:49 -04:00

85 lines
2 KiB
Go

package state
import (
"github.com/hashicorp/nomad/client/allocrunner/taskrunner/state"
dmstate "github.com/hashicorp/nomad/client/devicemanager/state"
"github.com/hashicorp/nomad/client/dynamicplugins"
driverstate "github.com/hashicorp/nomad/client/pluginmanager/drivermanager/state"
"github.com/hashicorp/nomad/nomad/structs"
)
// NoopDB implements a StateDB that does not persist any data.
type NoopDB struct{}
func (n NoopDB) Name() string {
return "noopdb"
}
func (n NoopDB) Upgrade() error {
return nil
}
func (n NoopDB) GetAllAllocations() ([]*structs.Allocation, map[string]error, error) {
return nil, nil, nil
}
func (n NoopDB) PutAllocation(*structs.Allocation) error {
return nil
}
func (n NoopDB) GetDeploymentStatus(allocID string) (*structs.AllocDeploymentStatus, error) {
return nil, nil
}
func (n NoopDB) PutDeploymentStatus(allocID string, ds *structs.AllocDeploymentStatus) error {
return nil
}
func (n NoopDB) GetTaskRunnerState(allocID string, taskName string) (*state.LocalState, *structs.TaskState, error) {
return nil, nil, nil
}
func (n NoopDB) PutTaskRunnerLocalState(allocID string, taskName string, val *state.LocalState) error {
return nil
}
func (n NoopDB) PutTaskState(allocID string, taskName string, state *structs.TaskState) error {
return nil
}
func (n NoopDB) DeleteTaskBucket(allocID, taskName string) error {
return nil
}
func (n NoopDB) DeleteAllocationBucket(allocID string) error {
return nil
}
func (n NoopDB) PutDevicePluginState(ps *dmstate.PluginState) error {
return nil
}
func (n NoopDB) GetDevicePluginState() (*dmstate.PluginState, error) {
return nil, nil
}
func (n NoopDB) PutDriverPluginState(ps *driverstate.PluginState) error {
return nil
}
func (n NoopDB) GetDriverPluginState() (*driverstate.PluginState, error) {
return nil, nil
}
func (n NoopDB) PutDynamicPluginRegistryState(ps *dynamicplugins.RegistryState) error {
return nil
}
func (n NoopDB) GetDynamicPluginRegistryState() (*dynamicplugins.RegistryState, error) {
return nil, nil
}
func (n NoopDB) Close() error {
return nil
}