vault: Index | Files

package gcs

import ""


Package Files

gcs.go gcs_ha.go


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

func NewBackend Uses

func NewBackend(c map[string]string, logger log.Logger) (physical.Backend, error)

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 Uses

type Backend struct {
    // contains filtered or unexported fields

Backend implements physical.Backend and describes the steps necessary to persist data in Google Cloud Storage.

func (*Backend) Delete Uses

func (b *Backend) Delete(ctx context.Context, key string) error

Delete deletes an entry with the given key

func (*Backend) Get Uses

func (b *Backend) Get(ctx context.Context, key string) (retEntry *physical.Entry, retErr error)

Get fetches an entry. If no entry exists, this function returns nil.

func (*Backend) HAEnabled Uses

func (b *Backend) HAEnabled() bool

HAEnabled implements HABackend and indicates that this backend supports high availability.

func (*Backend) List Uses

func (b *Backend) List(ctx context.Context, prefix string) ([]string, error)

List is used to list all the keys under a given prefix, up to the next prefix.

func (*Backend) LockWith Uses

func (b *Backend) LockWith(key, value string) (physical.Lock, error)

LockWith acquires a mutual exclusion based on the given key.

func (*Backend) Put Uses

func (b *Backend) Put(ctx context.Context, entry *physical.Entry) (retErr error)

Put is used to insert or update an entry

type Lock Uses

type Lock struct {
    // contains filtered or unexported fields

Lock is the HA lock.

func (*Lock) Lock Uses

func (l *Lock) Lock(stopCh <-chan struct{}) (<-chan struct{}, error)

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.

func (*Lock) Unlock Uses

func (l *Lock) Unlock() error

Unlock releases the lock.

func (*Lock) Value Uses

func (l *Lock) Value() (bool, string, error)

Value returns the value of the lock and if it is held.

type LockRecord Uses

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.