From 8a84ddd6aa9c6ee5cd1e07df77f062ec1c1d601b Mon Sep 17 00:00:00 2001 From: Artem Gavrilov Date: Fri, 23 Aug 2024 16:20:48 +0200 Subject: [PATCH 1/5] Migrate to buf schema v2 and reorganize api package --- Makefile.include | 107 ++---------------- api/Makefile | 107 ++++++++++++++++++ api/buf.gen.yaml | 33 ++++++ api/buf.lock | 20 ++-- api/buf.yaml | 25 ++-- descriptor.bin => api/descriptor.bin | Bin api/managementpb/azure/json/azure.json | 48 ++++---- .../add_azure_database_responses.go | 11 +- .../discover_azure_database_parameters.go | 5 +- .../discover_azure_database_responses.go | 11 +- api/managementpb/azure/json/header.json | 11 ++ api/swagger/swagger-dev.json | 44 +++---- buf.gen.yaml | 42 ------- buf.work.yaml | 3 - 14 files changed, 225 insertions(+), 242 deletions(-) create mode 100644 api/Makefile create mode 100644 api/buf.gen.yaml rename descriptor.bin => api/descriptor.bin (100%) create mode 100644 api/managementpb/azure/json/header.json delete mode 100644 buf.gen.yaml delete mode 100644 buf.work.yaml diff --git a/Makefile.include b/Makefile.include index 089ebfde1a..bdd8f7806f 100644 --- a/Makefile.include +++ b/Makefile.include @@ -1,5 +1,4 @@ # vim: ts=8:sw=8:ft=make:noai:noet -SWAGGER_UI_VERSION?=latest .PHONY: default init release gen test clean all default: help @@ -29,9 +28,9 @@ release: ## Build release versions of all components make -C qan-api2 release gen: clean ## Generate files - make gen-api - make gen-alertmanager - make clean_swagger + make -C api gen + make -C api gen-alertmanager + make -C api clean_swagger make -C agent gen make -C admin gen @@ -43,102 +42,13 @@ gen: clean ## Generate files make format ## TODO: One formatting run is not enough, figure out why. go install -v ./... +clean: ## Remove generated files + make -C api clean + gen-mocks: find . -name mock_*.go -delete ./bin/mockery --config .mockery.yaml -gen-api: ## Generate PMM API - # generated by descriptors target - bin/buf breaking --against descriptor.bin api - - bin/buf generate -v api - - for API in api/agentlocalpb api/serverpb api/inventorypb api/managementpb api/managementpb/dbaas api/managementpb/ia api/managementpb/alerting api/managementpb/backup api/managementpb/dump api/managementpb/azure api/managementpb/role api/qanpb api/managementpb/agent api/managementpb/node api/managementpb/service api/platformpb api/userpb; do \ - set -x ; \ - bin/swagger mixin $$API/json/header.json $$API/*.swagger.json --output=$$API/json/$$(basename $$API).json --keep-spec-order; \ - bin/swagger flatten --with-flatten=expand --with-flatten=remove-unused $$API/json/$$(basename $$API).json --output=$$API/json/$$(basename $$API).json ; \ - bin/swagger validate $$API/json/$$(basename $$API).json ; \ - bin/swagger generate client --with-flatten=expand --with-flatten=remove-unused --spec=$$API/json/$$(basename $$API).json --target=$$API/json \ - --additional-initialism=aws \ - --additional-initialism=db \ - --additional-initialism=ok \ - --additional-initialism=pmm \ - --additional-initialism=psmdb \ - --additional-initialism=pxc \ - --additional-initialism=pt \ - --additional-initialism=qan \ - --additional-initialism=rds \ - --additional-initialism=sql \ - --additional-initialism=ha ; \ - done - - # generate public API spec, omit agentlocalpb (always private), - # as well as a number of protos that are in beta (not v1 yet, they all go to a similar call below) - bin/swagger mixin --output=api/swagger/swagger.json \ - api/swagger/header.json \ - api/serverpb/json/serverpb.json \ - api/userpb/json/userpb.json \ - api/inventorypb/json/inventorypb.json \ - api/managementpb/json/managementpb.json \ - api/managementpb/backup/json/backup.json \ - api/managementpb/alerting/json/alerting.json - bin/swagger validate api/swagger/swagger.json - - bin/swagger-order --output=api/swagger/swagger.json api/swagger/swagger.json - - # generate API spec with all PMM Server APIs (omit agentlocalpb) - bin/swagger mixin --output=api/swagger/swagger-dev.json \ - api/swagger/header-dev.json \ - api/serverpb/json/serverpb.json \ - api/userpb/json/userpb.json \ - api/inventorypb/json/inventorypb.json \ - api/managementpb/json/managementpb.json \ - api/managementpb/dbaas/json/dbaas.json \ - api/managementpb/ia/json/ia.json \ - api/managementpb/alerting/json/alerting.json \ - api/managementpb/backup/json/backup.json \ - api/managementpb/dump/json/dump.json \ - api/managementpb/azure/json/azure.json \ - api/managementpb/role/json/role.json \ - api/managementpb/agent/json/agent.json \ - api/managementpb/node/json/node.json \ - api/managementpb/service/json/service.json \ - api/qanpb/json/qanpb.json \ - api/platformpb/json/platformpb.json - bin/swagger validate api/swagger/swagger-dev.json - - bin/swagger-order --output=api/swagger/swagger-dev.json api/swagger/swagger-dev.json - -gen-alertmanager: ## Generate Alertmanager client - bin/swagger generate client --model-package=ammodels --client-package=amclient --spec=api/alertmanager/openapi.yaml --target=api/alertmanager - -clean_swagger: - find api -name '*.swagger.json' -print -delete - - -ifeq ($(shell test "${SWAGGER_UI_VERSION}" = "latest" && echo 1 || echo 0), 1) -get_swagger_version: -override SWAGGER_UI_VERSION = $(shell curl --silent --head https://github.com/swagger-api/swagger-ui/releases/latest | grep -E '^[lL]ocation' | sed 's;^.*/;;') -else -get_swagger_version: -endif - -update-swagger: get_swagger_version ## Update Swagger UI in api/swagger, use `SWAGGER_UI_VERSION=xxx make update-swagger` to choose a version other than latest - curl --output /tmp/swagger.tar.gz -sSfL "https://github.com/swagger-api/swagger-ui/archive/refs/tags/${SWAGGER_UI_VERSION}.tar.gz" - tar xf /tmp/swagger.tar.gz --transform 's;swagger-ui-.*/dist/;api/swagger/;g' - rm -f api/swagger/.npmrc - sed -i 's/url: ".*"/url: "\/swagger.json",\n validatorUrl: "none"/' api/swagger/swagger-initializer.js - -clean: clean_swagger ## Remove generated files - find api -name '*.pb.go' -print -delete - find api -name '*.pb.gw.go' -print -delete - find api -name '*.validate.go' -print -delete - - for API in api/agentlocalpb api/serverpb api/inventorypb api/managementpb api/managementpb/dbaas api/managementpb/ia api/managementpb/alerting api/managementpb/backup api/management/dump api/managementpb/role api/managementpb/agent api/managementpb/node api/managementpb/service api/qanpb api/platformpb ; do \ - rm -fr $$API/json/client $$API/json/models $$API/json/$$(basename $$API).json ; \ - done - rm -f api/swagger/swagger.json api/swagger/swagger-dev.json - test-common: ## Run tests from API (and other shared) packages only (i.e it ignores directories that are explicitly listed) go test $(shell go list ./... | grep -v -e admin -e agent -e managed -e api-tests -e qan-api2 -e update) @@ -159,6 +69,7 @@ check-all: check-license check ## Run golangci linter to check for changes ag FILES = $(shell find . -type f -name '*.go') format: ## Format source code + make -C api format bin/gofumpt -l -w $(FILES) bin/goimports -local github.com/percona/pmm -l -w $(FILES) bin/gci write --section Standard --section Default --section "Prefix(github.com/percona/pmm)" $(FILES) @@ -166,7 +77,3 @@ format: ## Format source code serve: ## Serve API documentation with nginx nginx -p . -c api/nginx/nginx.conf - -descriptors: ## Update API compatibility descriptors - #./prototool break descriptor-set . -o api/api.descriptor - bin/buf build -o descriptor.bin --as-file-descriptor-set api diff --git a/api/Makefile b/api/Makefile new file mode 100644 index 0000000000..962779d6a4 --- /dev/null +++ b/api/Makefile @@ -0,0 +1,107 @@ +SWAGGER_UI_VERSION?=latest + +default: help + +help: ## Display this help message + @echo "Please use \`make \` where is one of:" + @grep -h '^[a-zA-Z]' $(MAKEFILE_LIST) | \ + awk -F ':.*?## ' 'NF==2 {printf " %-26s%s\n", $$1, $$2}' + @echo + +gen: clean ## Generate PMM API + # generated by descriptors target + ../bin/buf breaking --against descriptor.bin + + ../bin/buf generate -v . + + for API in agentlocalpb serverpb inventorypb managementpb managementpb/dbaas managementpb/ia managementpb/alerting managementpb/backup managementpb/dump managementpb/azure managementpb/role qanpb managementpb/agent managementpb/node managementpb/service platformpb userpb; do \ + set -x ; \ + ../bin/swagger mixin $$API/json/header.json $$API/*.swagger.json --output=$$API/json/$$(basename $$API).json --keep-spec-order; \ + ../bin/swagger flatten --with-flatten=expand --with-flatten=remove-unused $$API/json/$$(basename $$API).json --output=$$API/json/$$(basename $$API).json ; \ + ../bin/swagger validate $$API/json/$$(basename $$API).json ; \ + ../bin/swagger generate client --with-flatten=expand --with-flatten=remove-unused --spec=$$API/json/$$(basename $$API).json --target=$$API/json \ + --additional-initialism=aws \ + --additional-initialism=db \ + --additional-initialism=ok \ + --additional-initialism=pmm \ + --additional-initialism=psmdb \ + --additional-initialism=pxc \ + --additional-initialism=pt \ + --additional-initialism=qan \ + --additional-initialism=rds \ + --additional-initialism=sql \ + --additional-initialism=ha ; \ + done + + # generate public API spec, omit agentlocalpb (always private), + # as well as a number of protos that are in beta (not v1 yet, they all go to a similar call below) + ../bin/swagger mixin --output=swagger/swagger.json \ + swagger/header.json \ + serverpb/json/serverpb.json \ + userpb/json/userpb.json \ + inventorypb/json/inventorypb.json \ + managementpb/json/managementpb.json \ + managementpb/backup/json/backup.json \ + managementpb/alerting/json/alerting.json + ../bin/swagger validate swagger/swagger.json + + ../bin/swagger-order --output=swagger/swagger.json swagger/swagger.json + + # generate API spec with all PMM Server APIs (omit agentlocalpb) + ../bin/swagger mixin --output=swagger/swagger-dev.json \ + swagger/header-dev.json \ + serverpb/json/serverpb.json \ + userpb/json/userpb.json \ + inventorypb/json/inventorypb.json \ + managementpb/json/managementpb.json \ + managementpb/dbaas/json/dbaas.json \ + managementpb/ia/json/ia.json \ + managementpb/alerting/json/alerting.json \ + managementpb/backup/json/backup.json \ + managementpb/dump/json/dump.json \ + managementpb/azure/json/azure.json \ + managementpb/role/json/role.json \ + managementpb/agent/json/agent.json \ + managementpb/node/json/node.json \ + managementpb/service/json/service.json \ + qanpb/json/qanpb.json \ + platformpb/json/platformpb.json + ../bin/swagger validate swagger/swagger-dev.json + + ../bin/swagger-order --output=swagger/swagger-dev.json swagger/swagger-dev.json + +gen-alertmanager: ## Generate Alertmanager client + ../bin/swagger generate client --model-package=ammodels --client-package=amclient --spec=alertmanager/openapi.yaml --target=alertmanager + +format: ## Format API definitions + ../bin/buf format . -w + +clean_swagger: + find . -name '*.swagger.json' -print -delete + + +ifeq ($(shell test "${SWAGGER_UI_VERSION}" = "latest" && echo 1 || echo 0), 1) +get_swagger_version: +override SWAGGER_UI_VERSION = $(shell curl --silent --head https://github.com/swagger-swagger-ui/releases/latest | grep -E '^[lL]ocation' | sed 's;^.*/;;') +else +get_swagger_version: +endif + +update-swagger: get_swagger_version ## Update Swagger UI in swagger, use `SWAGGER_UI_VERSION=xxx make update-swagger` to choose a version other than latest + curl --output /tmp/swagger.tar.gz -sSfL "https://github.com/swagger-swagger-ui/archive/refs/tags/${SWAGGER_UI_VERSION}.tar.gz" + tar xf /tmp/swagger.tar.gz --transform 's;swagger-ui-.*/dist/;swagger/;g' + rm -f swagger/.npmrc + sed -i 's/url: ".*"/url: "\/swagger.json",\n validatorUrl: "none"/' swagger/swagger-initializer.js + +clean: clean_swagger ## Remove generated files + find . -name '*.pb.go' -print -delete + find . -name '*.pb.gw.go' -print -delete + find . -name '*.validate.go' -print -delete + + for API in agentlocalpb serverpb inventorypb managementpb userpb managementpb/azure managementpb/dbaas managementpb/dump managementpb/ia managementpb/alerting managementpb/backup management/dump managementpb/role managementpb/agent managementpb/node managementpb/service qanpb platformpb ; do \ + rm -fr $$API/json/client $$API/json/models $$API/json/$$(basename $$API).json ; \ + done + rm -f swagger/swagger.json swagger/swagger-dev.json + +descriptors: ## Update API compatibility descriptors + ../bin/buf build -o descriptor.bin --as-file-descriptor-set . \ No newline at end of file diff --git a/api/buf.gen.yaml b/api/buf.gen.yaml new file mode 100644 index 0000000000..02f6ecc3d7 --- /dev/null +++ b/api/buf.gen.yaml @@ -0,0 +1,33 @@ +version: v2 +managed: + enabled: true + disable: + - file_option: go_package + module: buf.build/googleapis/googleapis + - file_option: go_package + module: buf.build/grpc-ecosystem/grpc-gateway + - file_option: go_package + module: buf.build/envoyproxy/protoc-gen-validate + override: + - file_option: go_package_prefix + value: github.com/percona/pmm/api +plugins: + - local: ../bin/protoc-gen-go + out: . + opt: paths=source_relative + - local: ../bin/protoc-gen-go-grpc + out: . + opt: paths=source_relative + - local: ../bin/protoc-gen-grpc-gateway + out: . + opt: paths=source_relative + - local: ../bin/protoc-gen-validate + out: . + opt: + - paths=source_relative + - lang=go + - local: ../bin/protoc-gen-openapiv2 + out: . + opt: + - simple_operation_ids=true + - json_names_for_fields=false diff --git a/api/buf.lock b/api/buf.lock index 66753d27f3..0e9cebedcf 100644 --- a/api/buf.lock +++ b/api/buf.lock @@ -1,18 +1,12 @@ # Generated by buf. DO NOT EDIT. -version: v1 +version: v2 deps: - - remote: buf.build - owner: envoyproxy - repository: protoc-gen-validate + - name: buf.build/envoyproxy/protoc-gen-validate commit: eac44469a7af47e7839a7f1f3d7ac004 - digest: shake256:0feabcde01b6b11e3c75a5e3f807968d5995626546f39c37e5d4205892b3a59cced0ed83b35a2eb9e6dddd3309660ad46b737c9dcd224b425de0a6654ce04417 - - remote: buf.build - owner: googleapis - repository: googleapis + digest: b5:2ef7b25d9671fde82d58278e94d209788fb6a42936cc2d60e42303b67dcdb72b2d0e121238ba44caf1870a34edab55518df5d3f1ee1e62b8d9b6cf98817eae6e + - name: buf.build/googleapis/googleapis commit: 28151c0d0a1641bf938a7672c500e01d - digest: shake256:49215edf8ef57f7863004539deff8834cfb2195113f0b890dd1f67815d9353e28e668019165b9d872395871eeafcbab3ccfdb2b5f11734d3cca95be9e8d139de - - remote: buf.build - owner: grpc-ecosystem - repository: grpc-gateway + digest: b5:93b70089baa4fc05a92d3e52db91a4b7812db3b57b9664f6cb301733938cb630e377a938e8a56779388171c749c1d42a2e9a6c6230f2ff45f127a8102a6a27d0 + - name: buf.build/grpc-ecosystem/grpc-gateway commit: 3f42134f4c564983838425bc43c7a65f - digest: shake256:3d11d4c0fe5e05fda0131afefbce233940e27f0c31c5d4e385686aea58ccd30f72053f61af432fa83f1fc11cda57f5f18ca3da26a29064f73c5a0d076bba8d92 + digest: b5:291b947d8ac09492517557e4e72e294788cb8201afc7d0df7bda80fa10931adb60d4d669208a7696bf24f1ecb2a33a16d4c1e766e6f31809248b00343119569b diff --git a/api/buf.yaml b/api/buf.yaml index 6e786c6dd7..05ce41a8a4 100644 --- a/api/buf.yaml +++ b/api/buf.yaml @@ -1,11 +1,20 @@ -version: v1 -breaking: - use: - - FILE -lint: - use: - - DEFAULT +version: v2 +modules: + - path: . deps: + - buf.build/envoyproxy/protoc-gen-validate - buf.build/googleapis/googleapis - buf.build/grpc-ecosystem/grpc-gateway - - buf.build/envoyproxy/protoc-gen-validate +lint: + use: + - DEFAULT + except: + - FIELD_NOT_REQUIRED + - PACKAGE_NO_IMPORT_CYCLE + disallow_comment_ignores: true +breaking: + use: + - FILE + except: + - EXTENSION_NO_DELETE + - FIELD_SAME_DEFAULT diff --git a/descriptor.bin b/api/descriptor.bin similarity index 100% rename from descriptor.bin rename to api/descriptor.bin diff --git a/api/managementpb/azure/json/azure.json b/api/managementpb/azure/json/azure.json index d86fbb583c..ac4e7a3e87 100644 --- a/api/managementpb/azure/json/azure.json +++ b/api/managementpb/azure/json/azure.json @@ -185,33 +185,25 @@ "code": { "type": "integer", "format": "int32", - "x-order": 1 + "x-order": 0 }, "details": { "type": "array", "items": { "type": "object", "properties": { - "type_url": { + "@type": { "type": "string", "x-order": 0 - }, - "value": { - "type": "string", - "format": "byte", - "x-order": 1 } - } + }, + "additionalProperties": false }, - "x-order": 3 - }, - "error": { - "type": "string", - "x-order": 0 + "x-order": 2 }, "message": { "type": "string", - "x-order": 2 + "x-order": 1 } } } @@ -228,6 +220,7 @@ "operationId": "DiscoverAzureDatabase", "parameters": [ { + "description": "DiscoverAzureDatabaseRequest discover azure databases request.", "name": "body", "in": "body", "required": true, @@ -343,33 +336,25 @@ "code": { "type": "integer", "format": "int32", - "x-order": 1 + "x-order": 0 }, "details": { "type": "array", "items": { "type": "object", "properties": { - "type_url": { + "@type": { "type": "string", "x-order": 0 - }, - "value": { - "type": "string", - "format": "byte", - "x-order": 1 } - } + }, + "additionalProperties": false }, - "x-order": 3 - }, - "error": { - "type": "string", - "x-order": 0 + "x-order": 2 }, "message": { "type": "string", - "x-order": 2 + "x-order": 1 } } } @@ -377,5 +362,10 @@ } } } - } + }, + "tags": [ + { + "name": "AzureDatabase" + } + ] } \ No newline at end of file diff --git a/api/managementpb/azure/json/client/azure_database/add_azure_database_responses.go b/api/managementpb/azure/json/client/azure_database/add_azure_database_responses.go index 84dff23137..b8fae05596 100644 --- a/api/managementpb/azure/json/client/azure_database/add_azure_database_responses.go +++ b/api/managementpb/azure/json/client/azure_database/add_azure_database_responses.go @@ -293,9 +293,6 @@ AddAzureDatabaseDefaultBody add azure database default body swagger:model AddAzureDatabaseDefaultBody */ type AddAzureDatabaseDefaultBody struct { - // error - Error string `json:"error,omitempty"` - // code Code int32 `json:"code,omitempty"` @@ -400,12 +397,8 @@ AddAzureDatabaseDefaultBodyDetailsItems0 add azure database default body details swagger:model AddAzureDatabaseDefaultBodyDetailsItems0 */ type AddAzureDatabaseDefaultBodyDetailsItems0 struct { - // type url - TypeURL string `json:"type_url,omitempty"` - - // value - // Format: byte - Value strfmt.Base64 `json:"value,omitempty"` + // at type + AtType string `json:"@type,omitempty"` } // Validate validates this add azure database default body details items0 diff --git a/api/managementpb/azure/json/client/azure_database/discover_azure_database_parameters.go b/api/managementpb/azure/json/client/azure_database/discover_azure_database_parameters.go index a3d93a92e1..168d652b9b 100644 --- a/api/managementpb/azure/json/client/azure_database/discover_azure_database_parameters.go +++ b/api/managementpb/azure/json/client/azure_database/discover_azure_database_parameters.go @@ -60,7 +60,10 @@ DiscoverAzureDatabaseParams contains all the parameters to send to the API endpo Typically these are written to a http.Request. */ type DiscoverAzureDatabaseParams struct { - // Body. + /* Body. + + DiscoverAzureDatabaseRequest discover azure databases request. + */ Body DiscoverAzureDatabaseBody timeout time.Duration diff --git a/api/managementpb/azure/json/client/azure_database/discover_azure_database_responses.go b/api/managementpb/azure/json/client/azure_database/discover_azure_database_responses.go index 8198487041..c6a8c915da 100644 --- a/api/managementpb/azure/json/client/azure_database/discover_azure_database_responses.go +++ b/api/managementpb/azure/json/client/azure_database/discover_azure_database_responses.go @@ -171,9 +171,6 @@ DiscoverAzureDatabaseDefaultBody discover azure database default body swagger:model DiscoverAzureDatabaseDefaultBody */ type DiscoverAzureDatabaseDefaultBody struct { - // error - Error string `json:"error,omitempty"` - // code Code int32 `json:"code,omitempty"` @@ -278,12 +275,8 @@ DiscoverAzureDatabaseDefaultBodyDetailsItems0 discover azure database default bo swagger:model DiscoverAzureDatabaseDefaultBodyDetailsItems0 */ type DiscoverAzureDatabaseDefaultBodyDetailsItems0 struct { - // type url - TypeURL string `json:"type_url,omitempty"` - - // value - // Format: byte - Value strfmt.Base64 `json:"value,omitempty"` + // at type + AtType string `json:"@type,omitempty"` } // Validate validates this discover azure database default body details items0 diff --git a/api/managementpb/azure/json/header.json b/api/managementpb/azure/json/header.json new file mode 100644 index 0000000000..38cb8b73ce --- /dev/null +++ b/api/managementpb/azure/json/header.json @@ -0,0 +1,11 @@ +{ + "swagger": "2.0", + "info": { + "title": "PMM DBaaS API", + "version": "v1beta1" + }, + "schemes": [ + "https", + "http" + ] +} diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index 6e10715828..4500a4c264 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -34090,36 +34090,28 @@ "schema": { "type": "object", "properties": { - "error": { - "type": "string", - "x-order": 0 - }, "code": { "type": "integer", "format": "int32", - "x-order": 1 + "x-order": 0 }, "message": { "type": "string", - "x-order": 2 + "x-order": 1 }, "details": { "type": "array", "items": { "type": "object", "properties": { - "type_url": { + "@type": { "type": "string", "x-order": 0 - }, - "value": { - "type": "string", - "format": "byte", - "x-order": 1 } - } + }, + "additionalProperties": false }, - "x-order": 3 + "x-order": 2 } } } @@ -34136,6 +34128,7 @@ "operationId": "DiscoverAzureDatabase", "parameters": [ { + "description": "DiscoverAzureDatabaseRequest discover azure databases request.", "name": "body", "in": "body", "required": true, @@ -34248,36 +34241,28 @@ "schema": { "type": "object", "properties": { - "error": { - "type": "string", - "x-order": 0 - }, "code": { "type": "integer", "format": "int32", - "x-order": 1 + "x-order": 0 }, "message": { "type": "string", - "x-order": 2 + "x-order": 1 }, "details": { "type": "array", "items": { "type": "object", "properties": { - "type_url": { + "@type": { "type": "string", "x-order": 0 - }, - "value": { - "type": "string", - "format": "byte", - "x-order": 1 } - } + }, + "additionalProperties": false }, - "x-order": 3 + "x-order": 2 } } } @@ -39977,6 +39962,9 @@ { "name": "Dumps" }, + { + "name": "AzureDatabase" + }, { "name": "Role" }, diff --git a/buf.gen.yaml b/buf.gen.yaml deleted file mode 100644 index 7e5c9548d2..0000000000 --- a/buf.gen.yaml +++ /dev/null @@ -1,42 +0,0 @@ -version: v1 -managed: - enabled: true - go_package_prefix: - default: github.com/percona/pmm/api - except: - - buf.build/googleapis/googleapis - - buf.build/grpc-ecosystem/grpc-gateway - - buf.build/envoyproxy/protoc-gen-validate - -plugins: - - name: go - path: bin/protoc-gen-go - out: api - opt: - - paths=source_relative - - - name: go-grpc - path: bin/protoc-gen-go-grpc - out: api - opt: - - paths=source_relative - - - name: grpc-gateway - path: bin/protoc-gen-grpc-gateway - out: api - opt: - - paths=source_relative - - - name: validate - path: bin/protoc-gen-validate - out: api - opt: - - paths=source_relative - - lang=go - - - name: openapiv2 - out: api - path: bin/protoc-gen-openapiv2 - opt: - - simple_operation_ids=true - - json_names_for_fields=false diff --git a/buf.work.yaml b/buf.work.yaml deleted file mode 100644 index a2fa5f5176..0000000000 --- a/buf.work.yaml +++ /dev/null @@ -1,3 +0,0 @@ -version: v1 -directories: - - api From b751c58e7fb4ad0ca060e050f2953b12cda9214b Mon Sep 17 00:00:00 2001 From: Artem Gavrilov Date: Fri, 23 Aug 2024 16:31:16 +0200 Subject: [PATCH 2/5] Fix CI --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 943a139750..9b56e9dd50 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -69,7 +69,7 @@ jobs: - name: Update API compatibility descriptors run: | # log if descriptors changed, useful for "update descriptors" PRs - make descriptors + make -C api descriptors git diff --text - name: Run check-license From 8fda47fab0520cfb9a70cac12240b08137875ad7 Mon Sep 17 00:00:00 2001 From: Artem Gavrilov Date: Fri, 23 Aug 2024 16:39:52 +0200 Subject: [PATCH 3/5] Minor fixes --- Makefile.include | 1 - api/Makefile | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Makefile.include b/Makefile.include index bdd8f7806f..5078b91bc6 100644 --- a/Makefile.include +++ b/Makefile.include @@ -73,7 +73,6 @@ format: ## Format source code bin/gofumpt -l -w $(FILES) bin/goimports -local github.com/percona/pmm -l -w $(FILES) bin/gci write --section Standard --section Default --section "Prefix(github.com/percona/pmm)" $(FILES) - bin/buf format api -w serve: ## Serve API documentation with nginx nginx -p . -c api/nginx/nginx.conf diff --git a/api/Makefile b/api/Makefile index 962779d6a4..a1133dac81 100644 --- a/api/Makefile +++ b/api/Makefile @@ -104,4 +104,4 @@ clean: clean_swagger ## Remove generated files rm -f swagger/swagger.json swagger/swagger-dev.json descriptors: ## Update API compatibility descriptors - ../bin/buf build -o descriptor.bin --as-file-descriptor-set . \ No newline at end of file + ../bin/buf build -o descriptor.bin --as-file-descriptor-set . From 8aefe533bc973a6de9e01e74f34f4d06ee383db7 Mon Sep 17 00:00:00 2001 From: Artem Gavrilov Date: Mon, 26 Aug 2024 14:05:21 +0200 Subject: [PATCH 4/5] Refactoring --- api/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/Makefile b/api/Makefile index a1133dac81..b9bec77507 100644 --- a/api/Makefile +++ b/api/Makefile @@ -76,7 +76,7 @@ gen-alertmanager: ## Generate Alertmanager client format: ## Format API definitions ../bin/buf format . -w -clean_swagger: +clean-swagger: find . -name '*.swagger.json' -print -delete @@ -93,7 +93,7 @@ update-swagger: get_swagger_version ## Update Swagger UI in swagge rm -f swagger/.npmrc sed -i 's/url: ".*"/url: "\/swagger.json",\n validatorUrl: "none"/' swagger/swagger-initializer.js -clean: clean_swagger ## Remove generated files +clean: clean-swagger ## Remove generated files find . -name '*.pb.go' -print -delete find . -name '*.pb.gw.go' -print -delete find . -name '*.validate.go' -print -delete From 65a0497478501c536aeb6a9fad1be8e64f9b7b31 Mon Sep 17 00:00:00 2001 From: Artem Gavrilov Date: Mon, 26 Aug 2024 14:08:01 +0200 Subject: [PATCH 5/5] Fix --- Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index 5078b91bc6..a8fea65abc 100644 --- a/Makefile.include +++ b/Makefile.include @@ -30,7 +30,7 @@ release: ## Build release versions of all components gen: clean ## Generate files make -C api gen make -C api gen-alertmanager - make -C api clean_swagger + make -C api clean-swagger make -C agent gen make -C admin gen