import "github.com/hashicorp/vault/physical/gcs"
const ( // LockRenewInterval is the time to wait between lock renewals. LockRenewInterval = 5 * time.Second // LockRetryInterval is the amount of time to wait if the lock fails before // trying again. LockRetryInterval = 5 * time.Second // LockTTL is the default lock TTL. LockTTL = 15 * time.Second // LockWatchRetryInterval is the amount of time to wait if a watch fails // before trying again. LockWatchRetryInterval = 5 * time.Second // LockWatchRetryMax is the number of times to retry a failed watch before // signaling that leadership is lost. LockWatchRetryMax = 5 )
NewBackend constructs a Google Cloud Storage backend with the given configuration. This uses the official Golang Cloud SDK and therefore supports specifying credentials via envvars, credential files, etc. from environment variables or a service account file
type Backend struct {
// contains filtered or unexported fields
}
Backend implements physical.Backend and describes the steps necessary to persist data in Google Cloud Storage.
Delete deletes an entry with the given key
Get fetches an entry. If no entry exists, this function returns nil.
HAEnabled implements HABackend and indicates that this backend supports high availability.
List is used to list all the keys under a given prefix, up to the next prefix.
LockWith acquires a mutual exclusion based on the given key.
Put is used to insert or update an entry
type Lock struct {
// contains filtered or unexported fields
}
Lock is the HA lock.
Lock acquires the given lock. The stopCh is optional. If closed, it interrupts the lock acquisition attempt. The returned channel should be closed when leadership is lost.
Unlock releases the lock.
Value returns the value of the lock and if it is held.
type LockRecord struct { Key string `json:"key"` Value string `json:"value"` Identity string `json:"identity"` Timestamp time.Time `json:"timestamp"` // contains filtered or unexported fields }
LockRecord is the struct that corresponds to a lock.
Package gcs imports 24 packages (graph) and is imported by 10 packages. Updated 2020-08-14. Refresh now. Tools for package owners.