mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
main: add grpc-gateway support
Now etcd can serve HTTP json request at /v3alpha/
This commit is contained in:
@@ -21,6 +21,7 @@ DIRS="./wal/walpb ./etcdserver/etcdserverpb ./snap/snappb ./raft/raftpb ./mvcc/m
|
||||
|
||||
# exact version of protoc-gen-gogo to build
|
||||
SHA="c3995ae437bb78d1189f4f147dfe5f87ad3596e4"
|
||||
GRPC_GATEWAY_SHA="dcb844349dc5d2cb0300fdc4d2d374839d0d2e13"
|
||||
|
||||
# set up self-contained GOPATH for building
|
||||
export GOPATH=${PWD}/gopath
|
||||
@@ -31,6 +32,7 @@ COREOS_ROOT="${GOPATH}/src/github.com/coreos"
|
||||
ETCD_ROOT="${COREOS_ROOT}/etcd"
|
||||
GOGOPROTO_ROOT="${GOPATH}/src/github.com/gogo/protobuf"
|
||||
GOGOPROTO_PATH="${GOGOPROTO_ROOT}:${GOGOPROTO_ROOT}/protobuf"
|
||||
GRPC_GATEWAY_ROOT="${GOPATH}/src/github.com/gengo/grpc-gateway"
|
||||
|
||||
rm -f "${ETCD_ROOT}"
|
||||
mkdir -p "${COREOS_ROOT}"
|
||||
@@ -45,18 +47,30 @@ pushd "${GOGOPROTO_ROOT}"
|
||||
make install
|
||||
popd
|
||||
|
||||
# generate gateway code
|
||||
go get -u github.com/gengo/grpc-gateway/protoc-gen-grpc-gateway
|
||||
pushd "${GRPC_GATEWAY_ROOT}"
|
||||
git reset --hard "${GRPC_GATEWAY_SHA}"
|
||||
go install ./protoc-gen-grpc-gateway
|
||||
popd
|
||||
|
||||
for dir in ${DIRS}; do
|
||||
pushd ${dir}
|
||||
protoc --gogofast_out=plugins=grpc,import_prefix=github.com/coreos/:. -I=.:"${GOGOPROTO_PATH}":"${COREOS_ROOT}" *.proto
|
||||
protoc --gogofast_out=plugins=grpc,import_prefix=github.com/coreos/:. -I=.:"${GOGOPROTO_PATH}":"${COREOS_ROOT}":"${GRPC_GATEWAY_ROOT}/third_party/googleapis" *.proto
|
||||
sed -i.bak -E "s/github\.com\/coreos\/(gogoproto|github\.com|golang\.org|google\.golang\.org)/\1/g" *.pb.go
|
||||
sed -i.bak -E 's/github\.com\/coreos\/(errors|fmt|io)/\1/g' *.pb.go
|
||||
sed -i.bak -E 's/import _ \"gogoproto\"//g' *.pb.go
|
||||
sed -i.bak -E 's/import fmt \"fmt\"//g' *.pb.go
|
||||
sed -i.bak -E 's/import _ \"github\.com\/coreos\/google\/api\"//g' *.pb.go
|
||||
rm -f *.bak
|
||||
goimports -w *.pb.go
|
||||
popd
|
||||
done
|
||||
|
||||
protoc -I. \
|
||||
-I${GRPC_GATEWAY_ROOT}/third_party/googleapis \
|
||||
-I${GOGOPROTO_PATH} \
|
||||
-I${COREOS_ROOT} --grpc-gateway_out=logtostderr=true:. ./etcdserver/etcdserverpb/rpc.proto
|
||||
|
||||
# install protodoc
|
||||
# go get -v -u github.com/coreos/protodoc
|
||||
|
||||
Reference in New Issue
Block a user