Documentation ¶
Overview ¶
Package trafficvault provides the interfaces and types necessary to support various Traffic Vault backend data stores.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddBackend ¶
AddBackend should be called by each TrafficVault backend package's init() function in order to register its name and LoadFunc. This name corresponds to the traffic_vault_backend option in cdn.conf.
Types ¶
type LoadFunc ¶
type LoadFunc func(json.RawMessage) (TrafficVault, error)
A LoadFunc is a function that takes a json.RawMessage as input (the contents of traffic_vault_config in cdn.conf) and returns a valid TrafficVault as output. Each TrafficVault implementation should define its own LoadFunc which is responsible for parsing the given configuration and returning a valid TrafficVault implementation that may be used by request handlers.
type TrafficVault ¶
type TrafficVault interface { // GetDeliveryServiceSSLKeys retrieves the SSL keys of the given version for // the delivery service identified by the given xmlID. If version is empty, // the implementation should return the latest version. GetDeliveryServiceSSLKeys(xmlID string, version string, tx *sql.Tx, ctx context.Context) (tc.DeliveryServiceSSLKeysV15, bool, error) // GetExpirationInformation retrieves the SSL key expiration information for all delivery services. GetExpirationInformation(tx *sql.Tx, ctx context.Context, days int) ([]tc.SSLKeyExpirationInformation, error) // PutDeliveryServiceSSLKeys stores the given SSL keys for a delivery service. PutDeliveryServiceSSLKeys(key tc.DeliveryServiceSSLKeys, tx *sql.Tx, ctx context.Context) error // DeleteDeliveryServiceSSLKeys removes the SSL keys of the given version (or latest // if version is empty) for the delivery service identified by the given xmlID. DeleteDeliveryServiceSSLKeys(xmlID string, version string, tx *sql.Tx, ctx context.Context) error // DeleteOldDeliveryServiceSSLKeys takes a set of existingXMLIDs as input and will remove // all SSL keys for delivery services in the CDN identified by the given cdnName that // do not contain an xmlID in the given set of existingXMLIDs. This method is called // during a snapshot operation in order to delete SSL keys for delivery services that // no longer exist. DeleteOldDeliveryServiceSSLKeys(existingXMLIDs map[string]struct{}, cdnName string, tx *sql.Tx, ctx context.Context) error // GetCDNSSLKeys retrieves all the SSL keys for delivery services in the CDN identified // by the given cdnName. GetCDNSSLKeys(cdnName string, tx *sql.Tx, ctx context.Context) ([]tc.CDNSSLKey, error) // GetDNSSECKeys retrieves all the DNSSEC keys associated with the CDN identified by the // given cdnName. GetDNSSECKeys(cdnName string, tx *sql.Tx, ctx context.Context) (tc.DNSSECKeysTrafficVault, bool, error) // PutDNSSECKeys stores all the DNSSEC keys for the CDN identified by the given cdnName. PutDNSSECKeys(cdnName string, keys tc.DNSSECKeysTrafficVault, tx *sql.Tx, ctx context.Context) error // DeleteDNSSECKeys removes all the DNSSEC keys for the CDN identified by the given cdnName. DeleteDNSSECKeys(cdnName string, tx *sql.Tx, ctx context.Context) error // GetURLSigKeys retrieves the URL sig keys for the delivery service identified by the // given xmlID. GetURLSigKeys(xmlID string, tx *sql.Tx, ctx context.Context) (tc.URLSigKeys, bool, error) // PutURLSigKeys stores the given URL sig keys for the delivery service identified by // the given xmlID. PutURLSigKeys(xmlID string, keys tc.URLSigKeys, tx *sql.Tx, ctx context.Context) error // DeleteURLSigKeys deletes the URL sig keys for the delivery service identified // by the given xmlID. DeleteURLSigKeys(xmlID string, tx *sql.Tx, ctx context.Context) error // GetURISigningKeys retrieves the URI signing keys (as raw JSON bytes) for the delivery // service identified by the given xmlID. GetURISigningKeys(xmlID string, tx *sql.Tx, ctx context.Context) ([]byte, bool, error) // PutURISigningKeys stores the given URI signing keys (as raw JSON bytes) for the delivery // service identified by the given xmlID. PutURISigningKeys(xmlID string, keysJson []byte, tx *sql.Tx, ctx context.Context) error // DeleteURISigningKeys removes the URI signing keys for the delivery service identified by // the given xmlID. DeleteURISigningKeys(xmlID string, tx *sql.Tx, ctx context.Context) error // Ping simply checks the health of the Traffic Vault backend, returning a status and which // server hostname the status was returned by. Ping(tx *sql.Tx, ctx context.Context) (tc.TrafficVaultPing, error) // GetBucketKey returns the raw bytes identified by the given bucket and key. This may not // apply to every Traffic Vault backend implementation. // Deprecated: this method and associated API routes will be removed in the future. GetBucketKey(bucket string, key string, tx *sql.Tx) ([]byte, bool, error) }
TrafficVault defines the methods necessary for a struct to implement in order to provide all the necessary functionality required of a Traffic Vault backend.
func GetBackend ¶
func GetBackend(name string, cfgJson json.RawMessage) (TrafficVault, error)
GetBackend is called with the contents of the traffic_vault_backend and traffic_vault_config options in cdn.conf, respectively, in order to lookup and load the chosen Traffic Vault backend to use.
Directories ¶
Path | Synopsis |
---|---|
Package backends is simply for importing the traffic vault backend packages so they can initialize.
|
Package backends is simply for importing the traffic vault backend packages so they can initialize. |
disabled
Package disabled provides a TrafficVault implementation that simply returns an error for every method stating that Traffic Vault is disabled.
|
Package disabled provides a TrafficVault implementation that simply returns an error for every method stating that Traffic Vault is disabled. |
postgres
Package postgres provides a TrafficVault implementation which uses PostgreSQL as the backend.
|
Package postgres provides a TrafficVault implementation which uses PostgreSQL as the backend. |
riaksvc
Package riaksvc provides a TrafficVault implementation which uses Riak as the backend.
|
Package riaksvc provides a TrafficVault implementation which uses Riak as the backend. |