consul/agent/structs/system_metadata.go
R.B. Boyer 4998a08c56
server: create new memdb table for storing system metadata (#8703)
This adds a new very tiny memdb table and corresponding raft operation
for updating a very small effective map[string]string collection of
"system metadata". This can persistently record a fact about the Consul
state machine itself.

The first use of this feature will come in a later PR.
2020-10-06 10:08:37 -05:00

37 lines
921 B
Go

package structs
// SystemMetadataOp is the operation for a request related to system metadata.
type SystemMetadataOp string
const (
SystemMetadataUpsert SystemMetadataOp = "upsert"
SystemMetadataDelete SystemMetadataOp = "delete"
)
// SystemMetadataRequest is used to upsert and delete system metadata.
type SystemMetadataRequest struct {
// Datacenter is the target for this request.
Datacenter string
// Op is the type of operation being requested.
Op SystemMetadataOp
// Entry is the key to modify.
Entry *SystemMetadataEntry
// WriteRequest is a common struct containing ACL tokens and other
// write-related common elements for requests.
WriteRequest
}
type SystemMetadataEntry struct {
Key string
Value string `json:",omitempty"`
RaftIndex
}
// RequestDatacenter returns the datacenter for a given request.
func (c *SystemMetadataRequest) RequestDatacenter() string {
return c.Datacenter
}