Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ManageExpectedMachine ¶
type ManageExpectedMachine struct {
// contains filtered or unexported fields
}
ManageExpectedMachine is an activity wrapper for managing ExpectedMachine lifecycle that allows injecting DB access
func NewManageExpectedMachine ¶
func NewManageExpectedMachine(dbSession *cdb.Session, siteClientPool *sc.ClientPool) ManageExpectedMachine
NewManageExpectedMachine returns a new ManageExpectedMachine activity
func (ManageExpectedMachine) UpdateExpectedMachinesInDB ¶
func (mei ManageExpectedMachine) UpdateExpectedMachinesInDB(ctx context.Context, siteID uuid.UUID, expectedMachineInventory *cwssaws.ExpectedMachineInventory) error
UpdateExpectedMachinesInDB is a Temporal activity that takes a collection of ExpectedMachine data pushed by Site Agent and updates the DB Expected Machine records have two unique values (MAC and UUID). We ignore the MAC value and only rely on the UUID for uniqueness. Carbide is the source of truth: out of the race-condition window we make the DB match Carbide exactly. The reconciliation logic is as follows: - UUID existing in Carbide but not in DB: create record in DB - UUID existing in both Carbide and DB with differences: update record in DB - UUID existing in DB but not in Carbide: delete record in DB