vault: Index | Files

package postgresql

import ""


Package Files



const (

    // The lock TTL matches the default that Consul API uses, 15 seconds.
    // Used as part of SQL commands to set/extend lock expiry time relative to
    // database clock.
    PostgreSQLLockTTLSeconds = 15

    // The amount of time to wait between the lock renewals
    PostgreSQLLockRenewInterval = 5 * time.Second

    // PostgreSQLLockRetryInterval is the amount of time to wait
    // if a lock fails before trying again.
    PostgreSQLLockRetryInterval = time.Second

func NewPostgreSQLBackend Uses

func NewPostgreSQLBackend(conf map[string]string, logger log.Logger) (physical.Backend, error)

NewPostgreSQLBackend constructs a PostgreSQL backend using the given API client, server address, credentials, and database.

type PostgreSQLBackend Uses

type PostgreSQLBackend struct {
    // contains filtered or unexported fields

PostgreSQL Backend is a physical backend that stores data within a PostgreSQL database.

func (*PostgreSQLBackend) Delete Uses

func (m *PostgreSQLBackend) Delete(ctx context.Context, fullPath string) error

Delete is used to permanently delete an entry

func (*PostgreSQLBackend) Get Uses

func (m *PostgreSQLBackend) Get(ctx context.Context, fullPath string) (*physical.Entry, error)

Get is used to fetch and entry.

func (*PostgreSQLBackend) HAEnabled Uses

func (p *PostgreSQLBackend) HAEnabled() bool

func (*PostgreSQLBackend) List Uses

func (m *PostgreSQLBackend) 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 (*PostgreSQLBackend) LockWith Uses

func (p *PostgreSQLBackend) LockWith(key, value string) (physical.Lock, error)

LockWith is used for mutual exclusion based on the given key.

func (*PostgreSQLBackend) Put Uses

func (m *PostgreSQLBackend) Put(ctx context.Context, entry *physical.Entry) error

Put is used to insert or update an entry.

type PostgreSQLLock Uses

type PostgreSQLLock struct {
    // contains filtered or unexported fields

PostgreSQLLock implements a lock using an PostgreSQL client.

func (*PostgreSQLLock) Lock Uses

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

Lock tries to acquire the lock by repeatedly trying to create a record in the PostgreSQL table. It will block until either the stop channel is closed or the lock could be acquired successfully. The returned channel will be closed once the lock in the PostgreSQL table cannot be renewed, either due to an error speaking to PostgreSQL or because someone else has taken it.

func (*PostgreSQLLock) Unlock Uses

func (l *PostgreSQLLock) Unlock() error

Unlock releases the lock by deleting the lock record from the PostgreSQL table.

func (*PostgreSQLLock) Value Uses

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

Value checks whether or not the lock is held by any instance of PostgreSQLLock, including this one, and returns the current value.

Package postgresql imports 14 packages (graph) and is imported by 6 packages. Updated 2020-11-18. Refresh now. Tools for package owners.