Skip to content

Commit

Permalink
Merge pull request #11715 from YoyinZyc/downgrade-api
Browse files Browse the repository at this point in the history
[Etcd downgrade] Add downgrade related api in server side
  • Loading branch information
gyuho committed Mar 25, 2020
2 parents bbb0fcf + 073bc22 commit 71a241e
Show file tree
Hide file tree
Showing 15 changed files with 1,252 additions and 411 deletions.
19 changes: 19 additions & 0 deletions Documentation/dev-guide/api_reference_v3.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ This is a generated documentation. Please read the proto files for more.
| HashKV | HashKVRequest | HashKVResponse | HashKV computes the hash of all MVCC keys up to a given revision. It only iterates "key" bucket in backend storage. |
| Snapshot | SnapshotRequest | SnapshotResponse | Snapshot sends a snapshot of the entire backend from a member over a stream to a client. |
| MoveLeader | MoveLeaderRequest | MoveLeaderResponse | MoveLeader requests current leader node to transfer its leadership to transferee. |
| Downgrade | DowngradeRequest | DowngradeResponse | Downgrade requests downgrade, cancel downgrade on the cluster version. |



Expand Down Expand Up @@ -462,6 +463,24 @@ Empty field.



##### message `DowngradeRequest` (etcdserver/etcdserverpb/rpc.proto)

| Field | Description | Type |
| ----- | ----------- | ---- |
| action | action is the kind of downgrade request to issue. The action may VALIDATE the target version, DOWNGRADE the cluster version, or CANCEL the current downgrading job. | DowngradeAction |
| version | version is the target version to downgrade. | string |



##### message `DowngradeResponse` (etcdserver/etcdserverpb/rpc.proto)

| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| version | version is the current cluster version. | string |



##### message `HashKVRequest` (etcdserver/etcdserverpb/rpc.proto)

| Field | Description | Type |
Expand Down
67 changes: 67 additions & 0 deletions Documentation/dev-guide/apispec/swagger/rpc.swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -1242,6 +1242,39 @@
}
}
},
"/v3/maintenance/downgrade": {
"post": {
"tags": [
"Maintenance"
],
"summary": "Downgrade requests downgrade, cancel downgrade on the cluster version.",
"operationId": "Downgrade",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/etcdserverpbDowngradeRequest"
}
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/etcdserverpbDowngradeResponse"
}
},
"default": {
"description": "An unexpected error response",
"schema": {
"$ref": "#/definitions/runtimeError"
}
}
}
}
},
"/v3/maintenance/hash": {
"post": {
"tags": [
Expand Down Expand Up @@ -1458,6 +1491,15 @@
"LEASE"
]
},
"DowngradeRequestDowngradeAction": {
"type": "string",
"default": "VALIDATE",
"enum": [
"VALIDATE",
"ENABLE",
"CANCEL"
]
},
"EventEventType": {
"type": "string",
"default": "PUT",
Expand Down Expand Up @@ -2030,6 +2072,31 @@
}
}
},
"etcdserverpbDowngradeRequest": {
"type": "object",
"properties": {
"action": {
"description": "action is the kind of downgrade request to issue. The action may\nVALIDATE the target version, DOWNGRADE the cluster version,\nor CANCEL the current downgrading job.",
"$ref": "#/definitions/DowngradeRequestDowngradeAction"
},
"version": {
"description": "version is the target version to downgrade.",
"type": "string"
}
}
},
"etcdserverpbDowngradeResponse": {
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/etcdserverpbResponseHeader"
},
"version": {
"description": "version is the current cluster version.",
"type": "string"
}
}
},
"etcdserverpbHashKVRequest": {
"type": "object",
"properties": {
Expand Down
4 changes: 4 additions & 0 deletions clientv3/retry.go
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,10 @@ func (rmc *retryMaintenanceClient) Defragment(ctx context.Context, in *pb.Defrag
return rmc.mc.Defragment(ctx, in, opts...)
}

func (rmc *retryMaintenanceClient) Downgrade(ctx context.Context, in *pb.DowngradeRequest, opts ...grpc.CallOption) (resp *pb.DowngradeResponse, err error) {
return rmc.mc.Downgrade(ctx, in, opts...)
}

type retryAuthClient struct {
ac pb.AuthClient
}
Expand Down
206 changes: 184 additions & 22 deletions etcdserver/api/membership/membershippb/membership.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions etcdserver/api/membership/membershippb/membership.proto
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,8 @@ message ClusterMemberAttrSetRequest {
uint64 member_ID = 1;
Attributes member_attributes = 2;
}

message DowngradeInfoSetRequest {
bool enabled = 1;
string ver = 2;
}
Loading

0 comments on commit 71a241e

Please sign in to comment.