mysql

package
v0.1.13 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Package mysql implements the fleetspeak datastore interface using a mysql database.

NOTE: Currently this is a fairly direct port of the sqlite datastore and not at all performant. TODO: Optimize and load test this.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Datastore

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

Datastore wraps a mysql backed sql.DB and implements db.Store.

func MakeDatastore

func MakeDatastore(db *sql.DB) (*Datastore, error)

MakeDatastore creates any missing tables and returns a Datastore. The db parameter must be connected to a mysql database, e.g. using the mymysql driver.

func (*Datastore) AddClient

func (d *Datastore) AddClient(ctx context.Context, id common.ClientID, data *db.ClientData) error

func (*Datastore) AddClientLabel

func (d *Datastore) AddClientLabel(ctx context.Context, id common.ClientID, l *fspb.Label) error

func (*Datastore) BlacklistClient

func (d *Datastore) BlacklistClient(ctx context.Context, id common.ClientID) error

func (*Datastore) CleanupAllocation

func (d *Datastore) CleanupAllocation(ctx context.Context, bID ids.BroadcastID, aID ids.AllocationID) error

func (*Datastore) ClientMessagesForProcessing

func (d *Datastore) ClientMessagesForProcessing(ctx context.Context, id common.ClientID, lim uint64, serviceLimits map[string]uint64) ([]*fspb.Message, error)

func (*Datastore) Close

func (d *Datastore) Close() error

Close closes the underlying database resources.

func (*Datastore) CreateAllocation

func (d *Datastore) CreateAllocation(ctx context.Context, id ids.BroadcastID, frac float32, expiry time.Time) (*db.AllocationInfo, error)

func (*Datastore) CreateBroadcast

func (d *Datastore) CreateBroadcast(ctx context.Context, b *spb.Broadcast, limit uint64) error

func (*Datastore) DeletePendingMessages

func (d *Datastore) DeletePendingMessages(ctx context.Context, ids []common.ClientID) error

func (*Datastore) FetchResourceUsageRecords

func (d *Datastore) FetchResourceUsageRecords(ctx context.Context, id common.ClientID, startTimestamp, endTimestamp *tspb.Timestamp) ([]*spb.ClientResourceUsageRecord, error)

func (*Datastore) GetClientData

func (d *Datastore) GetClientData(ctx context.Context, id common.ClientID) (*db.ClientData, error)

func (*Datastore) GetMessageResult

func (d *Datastore) GetMessageResult(ctx context.Context, id common.MessageID) (*fspb.MessageResult, error)

func (*Datastore) GetMessages

func (d *Datastore) GetMessages(ctx context.Context, ids []common.MessageID, wantData bool) ([]*fspb.Message, error)

func (*Datastore) GetPendingMessageCount

func (d *Datastore) GetPendingMessageCount(ctx context.Context, ids []common.ClientID) (uint64, error)

func (*Datastore) GetPendingMessages

func (d *Datastore) GetPendingMessages(ctx context.Context, ids []common.ClientID, offset uint64, count uint64, wantData bool) ([]*fspb.Message, error)

func (*Datastore) IsNotFound

func (d *Datastore) IsNotFound(err error) bool

IsNotFound implements db.Store.

func (*Datastore) LinkMessagesToContact

func (d *Datastore) LinkMessagesToContact(ctx context.Context, contact db.ContactID, ids []common.MessageID) error

func (*Datastore) ListActiveBroadcasts

func (d *Datastore) ListActiveBroadcasts(ctx context.Context) ([]*db.BroadcastInfo, error)

func (*Datastore) ListClientContacts

func (d *Datastore) ListClientContacts(ctx context.Context, id common.ClientID) ([]*spb.ClientContact, error)

func (*Datastore) ListClients

func (d *Datastore) ListClients(ctx context.Context, ids []common.ClientID) ([]*spb.Client, error)

func (*Datastore) ListSentBroadcasts

func (d *Datastore) ListSentBroadcasts(ctx context.Context, id common.ClientID) ([]ids.BroadcastID, error)

func (*Datastore) ReadFile

func (d *Datastore) ReadFile(ctx context.Context, service, name string) (data db.ReadSeekerCloser, modtime time.Time, err error)

func (*Datastore) RecordClientContact

func (d *Datastore) RecordClientContact(ctx context.Context, data db.ContactData) (db.ContactID, error)

func (*Datastore) RecordResourceUsageData

func (d *Datastore) RecordResourceUsageData(ctx context.Context, id common.ClientID, rud *mpb.ResourceUsageData) error

func (*Datastore) RegisterMessageProcessor

func (d *Datastore) RegisterMessageProcessor(mp db.MessageProcessor)

func (*Datastore) RemoveClientLabel

func (d *Datastore) RemoveClientLabel(ctx context.Context, id common.ClientID, l *fspb.Label) error

func (*Datastore) SaveBroadcastMessage

func (d *Datastore) SaveBroadcastMessage(ctx context.Context, msg *fspb.Message, bID ids.BroadcastID, cID common.ClientID, aID ids.AllocationID) error

func (*Datastore) SetBroadcastLimit

func (d *Datastore) SetBroadcastLimit(ctx context.Context, id ids.BroadcastID, limit uint64) error

func (*Datastore) SetMessageResult

func (d *Datastore) SetMessageResult(ctx context.Context, dest common.ClientID, id common.MessageID, res *fspb.MessageResult) error

func (*Datastore) StatFile

func (d *Datastore) StatFile(ctx context.Context, service, name string) (time.Time, error)

func (*Datastore) StopMessageProcessor

func (d *Datastore) StopMessageProcessor()

func (*Datastore) StoreFile

func (d *Datastore) StoreFile(ctx context.Context, service, name string, data io.Reader) error

func (*Datastore) StoreMessages

func (d *Datastore) StoreMessages(ctx context.Context, msgs []*fspb.Message, contact db.ContactID) error

func (*Datastore) StreamClientContacts

func (d *Datastore) StreamClientContacts(ctx context.Context, id common.ClientID, callback func(*spb.ClientContact) error) error

func (*Datastore) StreamClientIds

func (d *Datastore) StreamClientIds(ctx context.Context, includeBlacklisted bool, lastContactAfter *time.Time, callback func(common.ClientID) error) error

Jump to

Keyboard shortcuts

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