Documentation
¶
Overview ¶
A collection of models. Provides methods to reconcile the collection of stored models with the collection of desired models.
Container
|__Reconciler |__Reconciler |__Reconciler
The container is a collection of data model reconcilers. Each reconciler is responsible for ensuring that changes made to the external data source are reflected in the DB. The goal is for the data model to be eventually consistent.
Index ¶
- type Collection
- type Container
- func (c *Container) Add(reconciler Reconciler) (err error)
- func (c *Container) Delete(owner meta.Object) (p Reconciler, found bool)
- func (c *Container) Get(owner meta.Object) (Reconciler, bool)
- func (c *Container) List() []Reconciler
- func (c *Container) Replace(reconciler Reconciler) (p Reconciler, found bool, err error)
- type DefaultShepherd
- type Disposition
- type Dispositions
- type Key
- type Reconciler
- type Shepherd
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Collection ¶ added in v0.4.3
type Collection struct {
// Stored models.
Stored fb.Iterator
// DB transaction.
Tx *model.Tx
// An (optional) shepherd.
Shepherd Shepherd
// Number of models added.
Added int
// Number models updated.
Updated int
// Number models deleted.
Deleted int
}
Model collection.
func (*Collection) Add ¶ added in v0.4.3
func (r *Collection) Add(desired fb.Iterator) (err error)
Add models included in desired but not stored.
func (*Collection) Delete ¶ added in v0.4.3
func (r *Collection) Delete(desired fb.Iterator) (err error)
Delete stored models not included in the desired.
type Container ¶
type Container struct {
// contains filtered or unexported fields
}
A container manages a collection of `Reconciler`.
func (*Container) Add ¶
func (c *Container) Add(reconciler Reconciler) (err error)
Add a reconciler.
func (*Container) Delete ¶
func (c *Container) Delete(owner meta.Object) (p Reconciler, found bool)
Delete the reconciler.
func (*Container) Get ¶
func (c *Container) Get(owner meta.Object) (Reconciler, bool)
Get a reconciler by (CR) object.
func (*Container) Replace ¶
func (c *Container) Replace(reconciler Reconciler) (p Reconciler, found bool, err error)
Replace a reconciler.
type DefaultShepherd ¶ added in v0.4.3
type DefaultShepherd struct {
}
Default (reflect-based) shepherd. Fields are ignored when:
- Is the PK.
- Is (auto) incremented.
- Has the `eq:"-"` tag.
func (*DefaultShepherd) Equals ¶ added in v0.4.3
func (r *DefaultShepherd) Equals(mA, mB model.Model) bool
Model comparison.
func (*DefaultShepherd) Update ¶ added in v0.4.3
func (r *DefaultShepherd) Update(mA, mB model.Model)
Update model A (stored) with model B (desired).
type Disposition ¶ added in v0.4.3
type Disposition struct {
// contains filtered or unexported fields
}
Disposition.
type Reconciler ¶
type Reconciler interface {
// The name.
Name() string
// The resource that owns the reconciler.
Owner() meta.Object
// Start the reconciler.
// Expected to do basic validation, start a
// goroutine and return quickly.
Start() error
// Shutdown the reconciler.
// Expected to disconnect, destroy created resources
// and return quickly.
Shutdown()
// The reconciler has achieved parity.
HasParity() bool
// Get the associated DB.
DB() model.DB
// Test connection with credentials.
Test() error
// Reset
Reset()
}
Data reconciler.