storage

package
v0.0.0-...-5d9cc31 Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2016 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MessageSchema        MessageType = "schema"
	MessageGlobalConfig              = "global-config"
	MessageSubjectConfig             = "subject-config"
	MessageCreateUser                = "create-user"
)
View Source
const (
	CompatibilityNone     = "NONE"
	CompatibilityFull     = "FULL"
	CompatibilityForward  = "FORWARD"
	CompatibilityBackward = "BACKWARD"
)

Variables

This section is empty.

Functions

func NewMessageRecord

func NewMessageRecord(messageType MessageType, content map[string]string) (*producer.ProducerRecord, error)

Types

type CachedStorage

type CachedStorage struct {
	StorageWriter
	StorageStateWriter
	Cache   StorageStateReader
	Backend StorageStater
}

func (*CachedStorage) Empty

func (cs *CachedStorage) Empty() bool

func (*CachedStorage) GetGlobalConfig

func (cs *CachedStorage) GetGlobalConfig(client string) (string, error)

func (*CachedStorage) GetID

func (cs *CachedStorage) GetID(client string, schema string) int64

func (*CachedStorage) GetLatestSchema

func (cs *CachedStorage) GetLatestSchema(client string, subject string) (*Schema, bool, error)

func (*CachedStorage) GetSchema

func (cs *CachedStorage) GetSchema(client string, subject string, version int) (string, bool, error)

func (*CachedStorage) GetSchemaByID

func (cs *CachedStorage) GetSchemaByID(client string, id int64) (string, bool, error)

func (*CachedStorage) GetSubjectConfig

func (cs *CachedStorage) GetSubjectConfig(client string, subject string) (string, bool, error)

func (*CachedStorage) GetSubjects

func (cs *CachedStorage) GetSubjects(client string) ([]string, error)

func (*CachedStorage) GetVersions

func (cs *CachedStorage) GetVersions(client string, subject string) ([]int, bool, error)

func (*CachedStorage) UserByName

func (cs *CachedStorage) UserByName(name string) (*User, bool)

func (*CachedStorage) UserByToken

func (cs *CachedStorage) UserByToken(token string) (*User, bool)

type CassandraStorage

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

func NewCassandraStorage

func NewCassandraStorage(urls string, protoVersion int, cqlVersion string) *CassandraStorage

func (*CassandraStorage) AddSchema

func (cs *CassandraStorage) AddSchema(client string, subject string, id int64, schema string) error

implement StorageStateWriter interface

func (*CassandraStorage) AddUser

func (cs *CassandraStorage) AddUser(name string, token string, admin bool) error

func (*CassandraStorage) Empty

func (cs *CassandraStorage) Empty() bool

implement StorageStateReader interface

func (*CassandraStorage) GetGlobalConfig

func (cs *CassandraStorage) GetGlobalConfig(client string) (string, error)

func (*CassandraStorage) GetID

func (cs *CassandraStorage) GetID(client string, schema string) int64

func (*CassandraStorage) GetLatestSchema

func (cs *CassandraStorage) GetLatestSchema(client string, subject string) (*Schema, bool, error)

func (*CassandraStorage) GetSchema

func (cs *CassandraStorage) GetSchema(client string, subject string, version int) (string, bool, error)

func (*CassandraStorage) GetSchemaByID

func (cs *CassandraStorage) GetSchemaByID(client string, id int64) (string, bool, error)

func (*CassandraStorage) GetSubjectConfig

func (cs *CassandraStorage) GetSubjectConfig(client string, subject string) (string, bool, error)

func (*CassandraStorage) GetSubjects

func (cs *CassandraStorage) GetSubjects(client string) ([]string, error)

func (*CassandraStorage) GetVersions

func (cs *CassandraStorage) GetVersions(client string, subject string) ([]int, bool, error)

func (*CassandraStorage) SetGlobalConfig

func (cs *CassandraStorage) SetGlobalConfig(client string, level string) error

func (*CassandraStorage) SetSubjectConfig

func (cs *CassandraStorage) SetSubjectConfig(client string, subject string, level string) error

func (*CassandraStorage) UserByName

func (cs *CassandraStorage) UserByName(name string) (*User, bool)

func (*CassandraStorage) UserByToken

func (cs *CassandraStorage) UserByToken(token string) (*User, bool)

type ClientSchemas

type ClientSchemas map[int64]string

type ClientSubjects

type ClientSubjects map[string]Versions

type CompatibilityConfig

type CompatibilityConfig struct {
	Compatibility string `json:"compatibility"`
}

type InMemoryStorage

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

func NewInMemoryStorage

func NewInMemoryStorage() *InMemoryStorage

func (*InMemoryStorage) AddSchema

func (ims *InMemoryStorage) AddSchema(client string, subject string, id int64, schema string) error

func (*InMemoryStorage) AddUser

func (ims *InMemoryStorage) AddUser(name string, token string, admin bool) error

func (*InMemoryStorage) Empty

func (ims *InMemoryStorage) Empty() bool

func (*InMemoryStorage) GetGlobalConfig

func (ims *InMemoryStorage) GetGlobalConfig(client string) (string, error)

func (*InMemoryStorage) GetID

func (ims *InMemoryStorage) GetID(client string, schema string) int64

func (*InMemoryStorage) GetLatestSchema

func (ims *InMemoryStorage) GetLatestSchema(client string, subject string) (*Schema, bool, error)

func (*InMemoryStorage) GetSchema

func (ims *InMemoryStorage) GetSchema(client string, subject string, version int) (string, bool, error)

func (*InMemoryStorage) GetSchemaByID

func (ims *InMemoryStorage) GetSchemaByID(client string, id int64) (string, bool, error)

func (*InMemoryStorage) GetSubjectConfig

func (ims *InMemoryStorage) GetSubjectConfig(client string, subject string) (string, bool, error)

func (*InMemoryStorage) GetSubjects

func (ims *InMemoryStorage) GetSubjects(client string) ([]string, error)

func (*InMemoryStorage) GetVersions

func (ims *InMemoryStorage) GetVersions(client string, subject string) ([]int, bool, error)

func (*InMemoryStorage) SetGlobalConfig

func (ims *InMemoryStorage) SetGlobalConfig(client string, level string) error

func (*InMemoryStorage) SetSubjectConfig

func (ims *InMemoryStorage) SetSubjectConfig(client string, subject string, level string) error

func (*InMemoryStorage) UserByName

func (ims *InMemoryStorage) UserByName(name string) (*User, bool)

func (*InMemoryStorage) UserByToken

func (ims *InMemoryStorage) UserByToken(name string) (*User, bool)

type KafkaStorage

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

func (*KafkaStorage) CreateUser

func (ks *KafkaStorage) CreateUser(name string, token string, admin bool) (string, error)

func (*KafkaStorage) StoreSchema

func (ks *KafkaStorage) StoreSchema(client string, subject string, schema string) (int64, error)

func (*KafkaStorage) UpdateGlobalConfig

func (ks *KafkaStorage) UpdateGlobalConfig(client string, config CompatibilityConfig) error

func (*KafkaStorage) UpdateSubjectConfig

func (ks *KafkaStorage) UpdateSubjectConfig(client string, subject string, config CompatibilityConfig) error

type MessageType

type MessageType string

type MockStorageWriter

type MockStorageWriter struct {
}

func (*MockStorageWriter) CreateUser

func (*MockStorageWriter) CreateUser(string, string, bool) (string, error)

func (*MockStorageWriter) StoreSchema

func (*MockStorageWriter) StoreSchema(string, string, string) (int64, error)

func (*MockStorageWriter) UpdateGlobalConfig

func (*MockStorageWriter) UpdateGlobalConfig(string, CompatibilityConfig) error

func (*MockStorageWriter) UpdateSubjectConfig

func (*MockStorageWriter) UpdateSubjectConfig(string, string, CompatibilityConfig) error

type Schema

type Schema struct {
	Subject string `json:"subject"`
	ID      int64  `json:"id"`
	Version int    `json:"version"`
	Schema  string `json:"schema"`
}

type Sender

type Sender interface {
	Send(*producer.ProducerRecord) <-chan *producer.RecordMetadata
}

type StorageMultiwriter

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

func NewStorageMultiwriter

func NewStorageMultiwriter(kafkaStorage StorageWriter, cassandraStorage StorageStateWriter) *StorageMultiwriter

func (*StorageMultiwriter) CreateUser

func (sm *StorageMultiwriter) CreateUser(name string, token string, admin bool) (string, error)

func (*StorageMultiwriter) StoreSchema

func (sm *StorageMultiwriter) StoreSchema(client string, subject string, schema string) (int64, error)

func (*StorageMultiwriter) UpdateGlobalConfig

func (sm *StorageMultiwriter) UpdateGlobalConfig(client string, config CompatibilityConfig) error

func (*StorageMultiwriter) UpdateSubjectConfig

func (sm *StorageMultiwriter) UpdateSubjectConfig(client string, subject string, config CompatibilityConfig) error

type StorageStateReader

type StorageStateReader interface {
	Empty() bool

	GetID(client string, schema string) int64

	GetSchemaByID(string, int64) (string, bool, error)
	GetSubjects(string) ([]string, error)
	GetVersions(string, string) ([]int, bool, error)
	GetSchema(string, string, int) (string, bool, error)
	GetLatestSchema(string, string) (*Schema, bool, error)

	GetGlobalConfig(string) (string, error)
	GetSubjectConfig(string, string) (string, bool, error)

	UserByName(string) (*User, bool)
	UserByToken(string) (*User, bool)
}

type StorageStateWriter

type StorageStateWriter interface {
	AddSchema(string, string, int64, string) error
	SetGlobalConfig(string, string) error
	SetSubjectConfig(string, string, string) error
	AddUser(string, string, bool) error
}

type StorageStater

type StorageStater interface {
	StorageStateWriter
	StorageStateReader
}

type StorageWriter

type StorageWriter interface {
	StoreSchema(string, string, string) (int64, error)

	UpdateGlobalConfig(string, CompatibilityConfig) error
	UpdateSubjectConfig(string, string, CompatibilityConfig) error

	CreateUser(string, string, bool) (string, error)
}

func NewKafkaStorage

func NewKafkaStorage(producer Sender) StorageWriter

type SubjectConfigs

type SubjectConfigs map[string]string

type User

type User struct {
	Name  string
	Token string
	Admin bool
}

type Versions

type Versions map[int]int64

Jump to

Keyboard shortcuts

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