diff --git a/.gitignore b/.gitignore index 7375914..a9cc135 100644 --- a/.gitignore +++ b/.gitignore @@ -118,4 +118,5 @@ GitHub.sublime-settings !.vscode/extensions.json .history -*pb2* \ No newline at end of file +*pb2* +schemas diff --git a/Makefile b/Makefile index 18b875d..695c182 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,6 @@ gen: - python -m grpc_tools.protoc --proto_path schemas --python_out=. --pyi_out=. --grpc_python_out=. ./schemas/tasks.proto + rm -rf schemas + python generator.py queues + python -m grpc_tools.protoc --proto_path schemas --python_out=. --pyi_out=. --grpc_python_out=. ./schemas/queues/tasks.proto run: python ./server.py \ No newline at end of file diff --git a/generator.py b/generator.py new file mode 100644 index 0000000..2da229c --- /dev/null +++ b/generator.py @@ -0,0 +1,16 @@ +import json +import urllib.request +import sys +import os + + +arg = sys.argv[-1] + + +response = urllib.request.urlopen(f'https://platform.sprinthub.ru/schemas/get?project={arg}').read() +data = json.loads(response) +os.mkdir('schemas') +os.mkdir(f'schemas/{arg}') +for key, value in data.items(): + with open(f'schemas/{arg}/{key}', 'w+') as fp: + fp.write(value) diff --git a/schemas/tasks.proto b/schemas/tasks.proto deleted file mode 100644 index fcbd6dc..0000000 --- a/schemas/tasks.proto +++ /dev/null @@ -1,40 +0,0 @@ -syntax = "proto3"; - -package queues; - -import "google/protobuf/struct.proto"; - -service Tasks { - rpc Put (PutRequest) returns (EmptyResponse) {} - - rpc Take (TakeRequest) returns (TakeResponse) {} - - rpc Finish (FinishRequest) returns (EmptyResponse) {} -} - -message Task { - string id = 1; - int64 attempt = 2; - google.protobuf.Struct payload = 3; -} - -message PutRequest { - string queue = 1; - int64 seconds_to_execute = 2; - optional int64 delay = 3; - google.protobuf.Struct payload = 4; -} - -message TakeRequest { - string queue = 1; -} - -message FinishRequest { - string id = 1; -} - -message EmptyResponse {} - -message TakeResponse { - optional Task task = 1; -}