Currently the deactivated node field is just a boolean. This doesn't work well in an HA/Replicated world. Instead if we include a timestamp (from the puppet master), so the date can be replicated.
A maybe good deactivation plan, from a discussion with Ryan Senior:
We should think of three states:
Decomissioning is done by the user, and has a producer_timestamp. It commutes with other commands.
Deactivation is triggered internally.
Deletion is also triggered internally.
Decomissioning commands need to be replicated
A good place for this may be in the /nodes endpoint
Let the user optionally query for decommissioned nodes
When pulling from a remote PDB, look at the producer_timestamp on each record. If, according the the producer_timestamp and your local clock and deactivation/deletion rules this record would be deleted, don't pull it over.
Currently the deactivated node field is just a boolean. This doesn't work well in an HA/Replicated world. Instead if we include a timestampAutomatic expiration (from the puppet master), so the date can be replicated.née
AutomaticOur current node expiration system (née automatic deactivation) is problematic when synchronizing PDBs with each other, since it's based on clock comparison.