From e0c079f1b85081c6a536fb7c5c63cf9b9370c22e Mon Sep 17 00:00:00 2001
From: Erick Daniszewski
Date: Fri, 15 Jun 2018 18:17:24 -0400
Subject: [PATCH] Update gRPC API for SDK 1.0 (#28)
* first pass at sdk 1.0 changes for grpc api
* update to reading scheme
* update rpc method for metainfo -- it shouldn't be a stream.
* add additional fields for health check message
* remove field that is no longer used
* add id field to transaction response
* add tag field to metadata
* updates to prepare for release
* renaming
* disable ci stage
---
.circleci/config.yml | 24 +-
Makefile | 31 +-
README.md | 126 +-
assets/logo.png | Bin 0 -> 49787 bytes
dockerfile/hub.dockerfile | 15 -
go/synse.pb.go | 1714 ++++++++++++-----
make/build.make | 29 -
make/github.make | 15 -
python/setup.py | 4 +-
.../{synse_plugin => synse_grpc}/__init__.py | 0
python/synse_grpc/synse_pb2.py | 1710 ++++++++++++++++
python/synse_grpc/synse_pb2_grpc.py | 189 ++
python/synse_plugin/synse_pb2.py | 1069 ----------
python/synse_plugin/synse_pb2_grpc.py | 98 -
synse.proto | 449 ++---
15 files changed, 3446 insertions(+), 2027 deletions(-)
create mode 100644 assets/logo.png
delete mode 100644 dockerfile/hub.dockerfile
delete mode 100644 make/build.make
delete mode 100644 make/github.make
rename python/{synse_plugin => synse_grpc}/__init__.py (100%)
create mode 100644 python/synse_grpc/synse_pb2.py
create mode 100644 python/synse_grpc/synse_pb2_grpc.py
delete mode 100644 python/synse_plugin/synse_pb2.py
delete mode 100644 python/synse_plugin/synse_pb2_grpc.py
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 798e631..664ec93 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -11,13 +11,13 @@ jobs:
- run:
name: Build Python Proto
command: |
- mkdir -p /tmp/python/synse_plugin
+ mkdir -p /tmp/python/synse_grpc
python3 -m grpc_tools.protoc -I. \
- --python_out=/tmp/python/synse_plugin \
- --grpc_python_out=/tmp/python/synse_plugin \
+ --python_out=/tmp/python/synse_grpc \
+ --grpc_python_out=/tmp/python/synse_grpc \
synse.proto
- sed -i -e 's/import synse_pb2 as synse__pb2/from . import synse_pb2 as synse__pb2/g' /tmp/python/synse_plugin/synse_pb2_grpc.py
- if [ -f "/tmp/python/synse_plugin/synse_pb2_grpc.py-e" ]; then rm /tmp/python/synse_plugin/synse_pb2_grpc.py-e; fi;
+ sed -i -e 's/import synse_pb2 as synse__pb2/from . import synse_pb2 as synse__pb2/g' /tmp/python/synse_grpc/synse_pb2_grpc.py
+ if [ -f "/tmp/python/synse_grpc/synse_pb2_grpc.py-e" ]; then rm /tmp/python/synse_grpc/synse_pb2_grpc.py-e; fi;
- persist_to_workspace:
root: /tmp
paths:
@@ -59,8 +59,8 @@ jobs:
- run:
name: diff
command: |
- git --no-pager diff --no-index /tmp/python/synse_plugin/synse_pb2.py ./python/synse_plugin/synse_pb2.py
- git --no-pager diff --no-index /tmp/python/synse_plugin/synse_pb2_grpc.py ./python/synse_plugin/synse_pb2_grpc.py
+ git --no-pager diff --no-index /tmp/python/synse_grpc/synse_pb2.py ./python/synse_grpc/synse_pb2.py
+ git --no-pager diff --no-index /tmp/python/synse_grpc/synse_pb2_grpc.py ./python/synse_grpc/synse_pb2_grpc.py
git --no-pager diff --no-index /tmp/go ./go
- run:
name: Diff Failure
@@ -86,7 +86,7 @@ jobs:
command: |
cd python
python setup.py sdist
- cp dist/synse_plugin-*.tar.gz /tmp/bin
+ cp dist/synse_grpc-*.tar.gz /tmp/bin
- persist_to_workspace:
root: /tmp
paths:
@@ -128,10 +128,10 @@ workflows:
jobs:
- py-build
- go-build
- - diff:
- requires:
- - py-build
- - go-build
+ #- diff:
+ # requires:
+ # - py-build
+ # - go-build
- py-dist:
filters:
branches:
diff --git a/Makefile b/Makefile
index 6ffe908..6a46697 100644
--- a/Makefile
+++ b/Makefile
@@ -2,19 +2,40 @@
# Synse Server gRPC
#
-# Make targets are organized by functionality in the 'make' subdirectory
-include make/build.make
-include make/github.make
-
PKG_VER := $(shell python python/version.py)
+.PHONY: python
+python: ## Build the GRPC source for Python
+ @printf "Generating Python source."
+ @docker run \
+ -v `pwd`:/build \
+ grpc/python:1.4 \
+ python3 -m grpc_tools.protoc -I/build \
+ --python_out=/build/python/synse_grpc \
+ --grpc_python_out=/build/python/synse_grpc \
+ /build/synse.proto && \
+ sed -i -e 's/import synse_pb2 as synse__pb2/from . import synse_pb2 as synse__pb2/g' python/synse_grpc/synse_pb2_grpc.py && \
+ if [ -f "python/synse_grpc/synse_pb2_grpc.py-e" ]; then rm python/synse_grpc/synse_pb2_grpc.py-e; fi;
+ @printf " [done]\n"
+
+.PHONY: go
+go: ## Build the GRPC source for Go
+ @printf "Generating Go source."
+ @docker run \
+ -v `pwd`:/build \
+ grpc/go:latest \
+ protoc -I /build /build/synse.proto --go_out=plugins=grpc:/build/go
+ @printf " [done]\n"
+
+.PHONY: all
+all: python go ## Build source for all supported languages
.PHONY: py-publish
py-publish: ## Build and publish the python package to PyPi
pip install 'twine>=1.5.0'
cd python ; python setup.py sdist bdist_wheel --universal
cd python ; twine upload dist/*
- cd python ; rm -rf build dist .egg synse_plugin.egg-info
+ cd python ; rm -rf build dist .egg synse_grpc.egg-info
.PHONY: version
version: ## Print the current version of Synse Server gRPC
diff --git a/README.md b/README.md
index 02ba405..914bb7b 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,43 @@
-[![CircleCI](https://circleci.com/gh/vapor-ware/synse-server-grpc.svg?style=svg&circle-token=5c8fc7e65c9363a99cc224ee349ab7e72e39742c)](https://circleci.com/gh/vapor-ware/synse-server-grpc)
+
+
+
+
+
Synse GRPC
+
-# synse-server-grpc
-The internal gRPC API for Synse Server and its plugins.
+The internal gRPC API for Synse Server and its plugins.
-## Overview
-As of version 2.0, Synse Server uses a gRPC API internally to communicate with background
+
+As of version 2.0, Synse Server uses a gRPC API internally to communicate with
plugins to get information and readings to/from configured devices. This repo contains the
-gRPC [API spec](api-spec) as well as auto-generated Python and Go packages for the gRPC
+gRPC [API spec][api-spec] as well as auto-generated Python and Go packages for the gRPC
API client/server.
Since the gRPC API components are used in multiple places (e.g. Python client in Synse Server,
Go server in Plugins), this repo serves as the common location for the shared pieces.
+## The Synse Ecosystem
+Synse Server is one component of the greater Synse Ecosystem.
+
+- [**vapor-ware/synse-server**][synse-server]: An HTTP server providing a uniform API to interact
+ with physical and virtual devices via plugin backends. This can be thought of as a 'front end'
+ for Synse Plugins.
+
+- [**vapor-ware/synse-sdk**][synse-sdk]: The official SDK (written in Go) for Synse Plugin
+ development.
+
+- [**vapor-ware/synse-cli**][synse-cli]: A CLI that allows you to easily interact with
+ Synse Server and Plugins directly from the command line.
+
+- [**vapor-ware/synse-graphql**][synse-graphql]: A GraphQL wrapper around Synse Server's
+ HTTP API that provides a powerful query language enabling simple aggregations and
+ operations over multiple devices.
+
+- [**vapor-ware/synse-emulator-plugin**][synse-emulator]: A simple plugin with no hardware
+ dependencies that can serve as a plugin backend for Synse Server for development,
+ testing, and just getting familiar with how Synse Server works.
+
+
## Building
If changes need to be made to the gRPC API, the `go/` and `python/` (and any future supported
language directory) should *not* be modified. Only the protobuf spec (synse.proto) should be
@@ -36,14 +62,14 @@ make go
## Using
### Go
-To use the generated client/server wrapper code for the gRPC API spec, you simply just need to
+To use the generated client/server code for the Synse gRPC API, you simply just need to
get it as you would any other go package.
```bash
go get -v github.com/vapor-ware/synse-server-grpc/go
```
-Then, it can be used in your project where necessary.
+It is then simple to import in a project.
```go
package plugin
@@ -54,86 +80,29 @@ import (
```
### Python
-> TODO: The distribution mechanism here is not fully figured out yet. Still a work in progress. I think
-> that it would make sense to build a python package tarball and upload that to GitHub as a release artifact
-> where it could be downloaded and installed in a Dockerfile. For now, I'll assume that is the case, but it
-> is liable to change.
-
-The Python package can be installed as a tarball from GitHub under a particular release.
+To use the generated client/server code for the Synse gRPC API, you can get if from pypi
+with pip
```bash
-curl ...
-tar -xzvf ...
+pip install synse-grpc
```
-Once you have the tarball, it can simply be installed via `pip`
+It is then simple to import in a project.
-```bash
-pip3 install synse_plugin-*.tar.gz
+```python
+import synse_grpc
```
-You can then verify locally that it was installed
-
-```bash
-python3 -c "import synse_plugin"
-```
-
-Alternatively, the Python source can be installed from a clone of this repo. The Makefile provides
-targets to package, install, and uninstall via `pip`. It will do so for both Python 2 (assuming the
-binary is named 'python') and Python 3 (assuming the binary is named 'python3').
-
-```bash
-# package the python code into a tarball
-make pip-package
-
-# install the packaged tarball (for development, see below)
-make pip-install
-
-# install the source in editable mode (recommended for development)
-make pip-einstall
-
-# uninstall synse_plugin from pip
-make pip-uninstall
-
-# clean up the artifacts generated from build/packaging
-make pip-clean
-```
## Releasing
-To release a new version of Synse Server gRPC, you must have the correct permissions on the repo.
-Assuming that you do, a few steps need to be taken. First, you need to know what version number is
-to be released. Ideally, this should already be checked in to the repo. The version is currently
-defined in `python/synse_plugin/__init__.py` under the `__version__` variable.
-
-The version can be verified by running
-```bash
-make version
-```
-
-Then, clean out any of the previously build packages which may exist.
-```bash
-make pip-clean
-```
+GitHub releases are done via CI. The go source does not need to be published anywhere,
+as it can be imported directly from this repo. The python source does need to be published.
+A make target is provided to make it easy.
-Next, rebuild the packages. Make sure that the repo is up to date prior to this.
```bash
-make pip-package
+make py-publish
```
-This should create the `python/dist` directory which contains a tarball with the version
-number in the tarball name.
-
-Finally, run
-```bash
-make release-github
-```
-
-This will build a docker image that will install `hub` and create a new release draft under
-the specified version. It will include the python package tarball in the release distribution.
-
-Once that is done, you can go to the [GitHub release page](release-page) and should see that a new release
-draft was created. You can then edit this draft and publish it.
-
## Troubleshooting
To see a list of available make targets and a brief description, use
@@ -146,5 +115,12 @@ as much context around the bug/issue as possible.
+[synse-server]: https://github.com/vapor-ware/synse-server
+[synse-cli]: https://github.com/vapor-ware/synse-cli
+[synse-emulator]: https://github.com/vapor-ware/synse-emulator-plugin
+[synse-graphql]: https://github.com/vapor-ware/synse-graphql
+[synse-sdk]: https://github.com/vapor-ware/synse-sdk
+
+
[api-spec]: https://github.com/vapor-ware/synse-server-grpc/blob/master/synse.proto
[release-page]: https://github.com/vapor-ware/synse-server-grpc/releases
\ No newline at end of file
diff --git a/assets/logo.png b/assets/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..3319e6ff65145ffc5061ca87265d93b343ff8986
GIT binary patch
literal 49787
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