2017-04-17 18:08:24 -04:00
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
package docker.swarmkit.v1;
|
|
|
|
|
2017-09-29 06:32:26 -04:00
|
|
|
import "github.com/docker/swarmkit/api/objects.proto";
|
|
|
|
import "github.com/docker/swarmkit/api/raft.proto";
|
2017-04-17 18:08:24 -04:00
|
|
|
import weak "gogoproto/gogo.proto";
|
|
|
|
|
|
|
|
// StoreSnapshot is used to store snapshots of the store.
|
|
|
|
message StoreSnapshot {
|
|
|
|
// TODO(aaronl): The current method of assembling a StoreSnapshot
|
|
|
|
// structure and marshalling it is not optimal. It may be better to
|
|
|
|
// write out nodes, networks, tasks, etc. one at a time to an io.Writer
|
|
|
|
// using gogo-protobuf's io.DelimitedWriter. A new value of the version
|
|
|
|
// field could support this approach.
|
|
|
|
|
|
|
|
repeated Node nodes = 1;
|
|
|
|
repeated Service services = 2;
|
|
|
|
repeated Network networks = 3;
|
|
|
|
repeated Task tasks = 4;
|
|
|
|
repeated Cluster clusters = 5;
|
|
|
|
repeated Secret secrets = 6;
|
|
|
|
repeated Resource resources = 7;
|
|
|
|
repeated Extension extensions = 8;
|
|
|
|
repeated Config configs = 9;
|
|
|
|
}
|
|
|
|
|
|
|
|
// ClusterSnapshot stores cluster membership information in snapshots.
|
|
|
|
message ClusterSnapshot {
|
|
|
|
repeated RaftMember members = 1;
|
2017-05-16 13:03:55 -04:00
|
|
|
repeated uint64 removed = 2 [packed=false];
|
2017-04-17 18:08:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
message Snapshot {
|
|
|
|
enum Version {
|
|
|
|
// V0 is the initial version of the StoreSnapshot message.
|
|
|
|
V0 = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
Version version = 1;
|
|
|
|
|
|
|
|
ClusterSnapshot membership = 2 [(gogoproto.nullable) = false];
|
|
|
|
StoreSnapshot store = 3 [(gogoproto.nullable) = false];
|
|
|
|
}
|