broker

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 23, 2017 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoSuchPlan = errors.New("no plan found")
)

Functions

func ProviderStatesMapping

func ProviderStatesMapping(state ServiceState) (brokerapi.LastOperationState, error)

Types

type BindParameters

type BindParameters struct{}

type Broker

type Broker struct {
	// contains filtered or unexported fields
}

Broker is the open service broker API implementation for AWS Elasticache Redis

func New

func New(config Config, provider Provider, logger lager.Logger) *Broker

New creates a new broker instance

func (*Broker) Bind

func (b *Broker) Bind(ctx context.Context, instanceID, bindingID string, details brokerapi.BindDetails) (brokerapi.Binding, error)

Bind binds an application and a service instance

func (*Broker) Deprovision

func (b *Broker) Deprovision(ctx context.Context, instanceID string, details brokerapi.DeprovisionDetails, asyncAllowed bool) (brokerapi.DeprovisionServiceSpec, error)

Deprovision deletes a service instance

func (*Broker) LastOperation

func (b *Broker) LastOperation(ctx context.Context, instanceID, operationData string) (brokerapi.LastOperation, error)

LastOperation returns with the last known state of the given service instance

func (*Broker) Provision

func (b *Broker) Provision(ctx context.Context, instanceID string, details brokerapi.ProvisionDetails, asyncAllowed bool) (brokerapi.ProvisionedServiceSpec, error)

Provision creates a new ElastiCache replication group

func (*Broker) Services

func (b *Broker) Services(ctx context.Context) []brokerapi.Service

Services returns with the provided services

func (*Broker) Unbind

func (b *Broker) Unbind(ctx context.Context, instanceID, bindingID string, details brokerapi.UnbindDetails) error

Unbind removes the binding between an application and a service instance

func (*Broker) Update

func (b *Broker) Update(ctx context.Context, instanceID string, details brokerapi.UpdateDetails, asyncAllowed bool) (brokerapi.UpdateServiceSpec, error)

Update modifies an existing service instance

type Config

type Config struct {
	LogLevel                     string                    `json:"log_level"`
	Username                     string                    `json:"username"`
	Password                     string                    `json:"password"`
	Region                       string                    `json:"region"`
	ClusterNamePrefix            string                    `json:"cluster_name_prefix"`
	BrokerName                   string                    `json:"broker_name"`
	AuthTokenSeed                string                    `json:"auth_token_seed"`
	AllowUserProvisionParameters bool                      `json:"allow_user_provision_parameters"`
	AllowUserUpdateParameters    bool                      `json:"allow_user_update_parameters"`
	AllowUserBindParameters      bool                      `json:"allow_user_bind_parameters"`
	CacheSubnetGroupName         string                    `json:"cache_subnet_group_name"`
	VpcSecurityGroupIds          []string                  `json:"vpc_security_group_ids"`
	Catalog                      brokerapi.CatalogResponse `json:"catalog"`
	PlanConfigs                  map[string]PlanConfig     `json:"plan_configs"`
}

func LoadConfig

func LoadConfig(configFile string) (config Config, err error)

func (Config) GetPlanConfig

func (c Config) GetPlanConfig(planID string) (PlanConfig, error)

func (Config) Validate

func (c Config) Validate() error

type DeprovisionParameters

type DeprovisionParameters struct {
	FinalSnapshotIdentifier string
}

type PlanConfig

type PlanConfig struct {
	InstanceType             string            `json:"instance_type"`
	ReplicasPerNodeGroup     int64             `json:"replicas_per_node_group"`
	ShardCount               int64             `json:"shard_count"`
	SnapshotRetentionLimit   int64             `json:"snapshot_retention_limit"`
	AutomaticFailoverEnabled bool              `json:"automatic_failover_enabled"`
	Parameters               map[string]string `json:"parameters"`
}

type Provider

type Provider interface {
	Provision(ctx context.Context, instanceID string, params ProvisionParameters) error
	Deprovision(ctx context.Context, instanceID string, params DeprovisionParameters) error
	GetState(ctx context.Context, instanceID string) (ServiceState, string, error)
}

Provider is a general interface to implement the broker's functionality with a specific provider

type ProvisionParameters

type ProvisionParameters struct {
	AuthToken                  string
	InstanceType               string
	CacheParameterGroupName    string
	SecurityGroupIds           []string
	CacheSubnetGroupName       string
	PreferredMaintenanceWindow string
	ReplicasPerNodeGroup       int64
	ShardCount                 int64
	SnapshotRetentionLimit     int64
	Description                string
	AutomaticFailoverEnabled   bool
	Parameters                 map[string]string
	Tags                       map[string]string
}

type ServiceState

type ServiceState string

ServiceState is the state of a service instance

const (
	Creating     ServiceState = "creating"
	Available    ServiceState = "available"
	Modifying    ServiceState = "modifying"
	Deleting     ServiceState = "deleting"
	CreateFailed ServiceState = "create-failed"
	Snapshotting ServiceState = "snapshotting"
	NonExisting  ServiceState = "non-existing"
)

Service states

type UpdateParameters

type UpdateParameters struct{}

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL