diff --git a/.drone.star b/.drone.star index 67b0760d6..459fb85f4 100644 --- a/.drone.star +++ b/.drone.star @@ -43,22 +43,22 @@ DEFAULT_NODEJS_VERSION = "14" config = { "modules": [ # if you add a module here please also add it to the root level Makefile - "accounts", - "audit", - "glauth", - "graph-explorer", - "graph", - "idp", + "extensions/accounts", + "extensions/audit", + "extensions/glauth", + "extensions/graph-explorer", + "extensions/graph", + "extensions/idp", + "extensions/ocs", + "extensions/proxy", + "extensions/settings", + "extensions/storage", + "extensions/store", + "extensions/thumbnails", + "extensions/web", + "extensions/webdav", "ocis-pkg", "ocis", - "ocs", - "proxy", - "settings", - "storage", - "store", - "thumbnails", - "web", - "webdav", ], "cs3ApiTests": { "skip": False, @@ -301,7 +301,7 @@ def testOcisModule(ctx, module): "commands": [ "mkdir -p cache/checkstyle", "make -C %s ci-golangci-lint" % (module), - "mv %s/checkstyle.xml cache/checkstyle/%s_checkstyle.xml" % (module, module), + "mv %s/checkstyle.xml cache/checkstyle/$(basename %s)_checkstyle.xml" % (module, module), ], "volumes": [stepVolumeGo], }, @@ -311,7 +311,7 @@ def testOcisModule(ctx, module): "commands": [ "mkdir -p cache/coverage", "make -C %s test" % (module), - "mv %s/coverage.out cache/coverage/%s_coverage.out" % (module, module), + "mv %s/coverage.out cache/coverage/$(basename %s)_coverage.out" % (module, module), ], "volumes": [stepVolumeGo], }, @@ -751,7 +751,7 @@ def accountsUITests(ctx, storage = "ocis", accounts_hash_difficulty = 4): "LOCAL_UPLOAD_DIR": "/uploads", "NODE_TLS_REJECT_UNAUTHORIZED": 0, "WEB_PATH": "/srv/app/web", - "FEATURE_PATH": "/drone/src/accounts/ui/tests/acceptance/features", + "FEATURE_PATH": "/drone/src/extensions/accounts/ui/tests/acceptance/features", "MIDDLEWARE_HOST": "http://middleware:3000", }, "commands": [ @@ -762,7 +762,7 @@ def accountsUITests(ctx, storage = "ocis", accounts_hash_difficulty = 4): "git checkout $WEB_COMMITID", # TODO: settings/package.json has all the acceptance test dependencies # they shouldn't be needed since we could also use them from web:/tests/acceptance/package.json - "cd /drone/src/accounts", + "cd /drone/src/extensions/accounts", "yarn install --immutable", "make test-acceptance-webui", ], @@ -815,7 +815,7 @@ def settingsUITests(ctx, storage = "ocis", accounts_hash_difficulty = 4): "LOCAL_UPLOAD_DIR": "/uploads", "NODE_TLS_REJECT_UNAUTHORIZED": 0, "WEB_PATH": "/srv/app/web", - "FEATURE_PATH": "/drone/src/settings/ui/tests/acceptance/features", + "FEATURE_PATH": "/drone/src/extensions/settings/ui/tests/acceptance/features", "MIDDLEWARE_HOST": "http://middleware:3000", }, "commands": [ @@ -826,7 +826,7 @@ def settingsUITests(ctx, storage = "ocis", accounts_hash_difficulty = 4): "git checkout $WEB_COMMITID", # TODO: settings/package.json has all the acceptance test dependencies # they shouldn't be needed since we could also use them from web:/tests/acceptance/package.json - "cd /drone/src/settings", + "cd /drone/src/extensions/settings", "yarn install --immutable", "make test-acceptance-webui", ], @@ -1630,6 +1630,14 @@ def ocisServer(storage, accounts_hash_difficulty = 4, volumes = [], depends_on = "ACCOUNTS_DEMO_USERS_AND_GROUPS": True, # deprecated, remove after switching to LibreIDM "IDM_CREATE_DEMO_USERS": True, } + wait_for_ocis = { + "name": "wait-for-ocis-server", + "image": OC_CI_ALPINE, + "commands": [ + "curl -k -u admin:admin --fail --retry-connrefused --retry 10 --retry-all-errors 'https://ocis-server:9200/graph/v1.0/users/ddc2004c-0977-11eb-9d3f-a793888cd0f8'", + ], + "depends_on": depends_on, + } else: user = "33:33" environment = { @@ -1710,6 +1718,14 @@ def ocisServer(storage, accounts_hash_difficulty = 4, volumes = [], depends_on = "ACCOUNTS_DEMO_USERS_AND_GROUPS": True, # deprecated, remove after switching to LibreIDM "IDM_CREATE_DEMO_USERS": True, } + wait_for_ocis = { + "name": "wait-for-ocis-server", + "image": OC_CI_WAIT_FOR, + "commands": [ + "wait-for -it ocis-server:9200 -t 300", + ], + "depends_on": depends_on, + } # Pass in "default" accounts_hash_difficulty to not set this environment variable. # That will allow OCIS to use whatever its built-in default is. @@ -1731,14 +1747,7 @@ def ocisServer(storage, accounts_hash_difficulty = 4, volumes = [], depends_on = "volumes": volumes, "depends_on": depends_on, }, - { - "name": "wait-for-ocis-server", - "image": OC_CI_ALPINE, - "commands": [ - "curl -k -u admin:admin --retry 10 --retry-all-errors 'https://ocis-server:9200/graph/v1.0/users/ddc2004c-0977-11eb-9d3f-a793888cd0f8'", - ], - "depends_on": depends_on, - }, + wait_for_ocis, ] def middlewareService(): diff --git a/.gitignore b/.gitignore index f02e6663e..60b195e66 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,19 @@ */coverage.out +extensions/*/coverage.out */checkstyle.xml +extensions/*/checkstyle.xml */package-lock.json ocis/config/identifier-registration.yaml */bin +extensions/*/bin dist/ /hugo *.key *crt node_modules/ */assets +extensions/*/assets ocis/ocis ocis/cmd/ocis/__debug_bin ocis/cmd/ocis/config/ diff --git a/.make/docs.mk b/.make/docs.mk index 1b1ea2e9a..b7adfd437 100644 --- a/.make/docs.mk +++ b/.make/docs.mk @@ -1,6 +1,6 @@ SKIP_CONFIG_DOCS_GENERATE ?= 0 -CONFIG_DOCS_BASE_PATH ?= ../docs/extensions +CONFIG_DOCS_BASE_PATH ?= ../../docs/extensions .PHONY: config-docs-generate config-docs-generate: #$(FLAEX) diff --git a/.make/protobuf.mk b/.make/protobuf.mk index 52204ed97..5db6495b6 100644 --- a/.make/protobuf.mk +++ b/.make/protobuf.mk @@ -1,24 +1,24 @@ -SHA1_LOCK_FILE := $(abspath $(CURDIR)/../protogen/buf.sha1.lock) +SHA1_LOCK_FILE := $(abspath $(CURDIR)/../../protogen/buf.sha1.lock) # bingo creates symlinks from the -l option in GOBIN, from where # we can easily use it with buf. To have the symlinks inside this # repo and on a known location, we set GOBIN to .bingo in the root -# of the repository (therefore we need to cd ..) +# of the repository (therefore we need to cd ../..) .PHONY: protoc-deps protoc-deps: $(BINGO) - @cd .. && GOPATH="" GOBIN=".bingo" $(BINGO) get -l google.golang.org/protobuf/cmd/protoc-gen-go - @cd .. && GOPATH="" GOBIN=".bingo" $(BINGO) get -l github.com/asim/go-micro/cmd/protoc-gen-micro/v4 - @cd .. && GOPATH="" GOBIN=".bingo" $(BINGO) get -l github.com/owncloud/protoc-gen-microweb - @cd .. && GOPATH="" GOBIN=".bingo" $(BINGO) get -l github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 - @cd .. && GOPATH="" GOBIN=".bingo" $(BINGO) get -l github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc + @cd ../.. && GOPATH="" GOBIN=".bingo" $(BINGO) get -l google.golang.org/protobuf/cmd/protoc-gen-go + @cd ../.. && GOPATH="" GOBIN=".bingo" $(BINGO) get -l github.com/asim/go-micro/cmd/protoc-gen-micro/v4 + @cd ../.. && GOPATH="" GOBIN=".bingo" $(BINGO) get -l github.com/owncloud/protoc-gen-microweb + @cd ../.. && GOPATH="" GOBIN=".bingo" $(BINGO) get -l github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 + @cd ../.. && GOPATH="" GOBIN=".bingo" $(BINGO) get -l github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc .PHONY: buf-generate buf-generate: $(BUF) protoc-deps $(SHA1_LOCK_FILE) - @find $(abspath $(CURDIR)/../protogen/proto/) -type f -print0 | sort -z | xargs -0 sha1sum > buf.sha1.lock.tmp + @find $(abspath $(CURDIR)/../../protogen/proto/) -type f -print0 | sort -z | xargs -0 sha1sum > buf.sha1.lock.tmp @cmp $(SHA1_LOCK_FILE) buf.sha1.lock.tmp --quiet || $(MAKE) -B $(SHA1_LOCK_FILE) @rm -f buf.sha1.lock.tmp $(SHA1_LOCK_FILE): @echo "generating protobuf content" - cd ../protogen/proto && $(BUF) generate - find $(abspath $(CURDIR)/../protogen/proto/) -type f -print0 | sort -z | xargs -0 sha1sum > $(SHA1_LOCK_FILE) + cd ../../protogen/proto && $(BUF) generate + find $(abspath $(CURDIR)/../../protogen/proto/) -type f -print0 | sort -z | xargs -0 sha1sum > $(SHA1_LOCK_FILE) diff --git a/CHANGELOG.md b/CHANGELOG.md index a8d3d1707..536b4b119 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [1.20.0] (2022-04-13) -The following sections list the changes for unreleased. +The following sections list the changes for 1.20.0. -[unreleased]: https://github.com/owncloud/ocis/compare/v1.19.0...master +[1.20.0]: https://github.com/owncloud/ocis/compare/v1.19.0...v1.20.0 ## Summary diff --git a/Makefile b/Makefile index ff69dbde0..287c567d4 100644 --- a/Makefile +++ b/Makefile @@ -16,22 +16,22 @@ L10N_MODULES := $(shell find . -path '*.tx*' -name 'config' | sed 's|/[^/]*$$||' # if you add a module here please also add it to the .drone.star file OCIS_MODULES = \ - accounts \ - audit \ - glauth \ - graph \ - graph-explorer \ - idp \ + extensions/accounts \ + extensions/audit \ + extensions/glauth \ + extensions/graph \ + extensions/graph-explorer \ + extensions/idp \ + extensions/ocs \ + extensions/proxy \ + extensions/settings \ + extensions/storage \ + extensions/store \ + extensions/thumbnails \ + extensions/web \ + extensions/webdav\ ocis \ - ocis-pkg \ - ocs \ - proxy \ - settings \ - storage \ - store \ - thumbnails \ - web \ - webdav + ocis-pkg # bin file definitions PHP_CS_FIXER=php -d zend.enable_gc=0 vendor-bin/owncloud-codestyle/vendor/bin/php-cs-fixer @@ -209,6 +209,7 @@ changelog: $(CALENS) ifndef CHANGELOG_VERSION $(error CHANGELOG_VERSION is undefined) endif + mkdir -p ocis/dist $(CALENS) --version $(CHANGELOG_VERSION) -o ocis/dist/CHANGELOG.md .PHONY: l10n-push diff --git a/changelog/unreleased/add-owncloudsql-config-to-authbasic.md b/changelog/1.20.0_2022-04-13/add-owncloudsql-config-to-authbasic.md similarity index 100% rename from changelog/unreleased/add-owncloudsql-config-to-authbasic.md rename to changelog/1.20.0_2022-04-13/add-owncloudsql-config-to-authbasic.md diff --git a/changelog/unreleased/alias-links.md b/changelog/1.20.0_2022-04-13/alias-links.md similarity index 100% rename from changelog/unreleased/alias-links.md rename to changelog/1.20.0_2022-04-13/alias-links.md diff --git a/changelog/unreleased/change-config-file-keys-underscores.md b/changelog/1.20.0_2022-04-13/change-config-file-keys-underscores.md similarity index 100% rename from changelog/unreleased/change-config-file-keys-underscores.md rename to changelog/1.20.0_2022-04-13/change-config-file-keys-underscores.md diff --git a/changelog/unreleased/enhancement-replace-deprecated-substr b/changelog/1.20.0_2022-04-13/enhancement-replace-deprecated-substr.md similarity index 100% rename from changelog/unreleased/enhancement-replace-deprecated-substr rename to changelog/1.20.0_2022-04-13/enhancement-replace-deprecated-substr.md diff --git a/changelog/unreleased/fix-docs.md b/changelog/1.20.0_2022-04-13/fix-docs.md similarity index 100% rename from changelog/unreleased/fix-docs.md rename to changelog/1.20.0_2022-04-13/fix-docs.md diff --git a/changelog/unreleased/fix-ocs-config-values.md b/changelog/1.20.0_2022-04-13/fix-ocs-config-values.md similarity index 100% rename from changelog/unreleased/fix-ocs-config-values.md rename to changelog/1.20.0_2022-04-13/fix-ocs-config-values.md diff --git a/changelog/unreleased/graph-user-sort.md b/changelog/1.20.0_2022-04-13/graph-user-sort.md similarity index 100% rename from changelog/unreleased/graph-user-sort.md rename to changelog/1.20.0_2022-04-13/graph-user-sort.md diff --git a/changelog/unreleased/ldap-config.md b/changelog/1.20.0_2022-04-13/ldap-config.md similarity index 100% rename from changelog/unreleased/ldap-config.md rename to changelog/1.20.0_2022-04-13/ldap-config.md diff --git a/changelog/unreleased/make-config-dir-configurable.md b/changelog/1.20.0_2022-04-13/make-config-dir-configurable.md similarity index 100% rename from changelog/unreleased/make-config-dir-configurable.md rename to changelog/1.20.0_2022-04-13/make-config-dir-configurable.md diff --git a/changelog/unreleased/micro-ocdav.md b/changelog/1.20.0_2022-04-13/micro-ocdav.md similarity index 100% rename from changelog/unreleased/micro-ocdav.md rename to changelog/1.20.0_2022-04-13/micro-ocdav.md diff --git a/changelog/unreleased/no-demo-users.md b/changelog/1.20.0_2022-04-13/no-demo-users.md similarity index 100% rename from changelog/unreleased/no-demo-users.md rename to changelog/1.20.0_2022-04-13/no-demo-users.md diff --git a/changelog/unreleased/thumbnails-download-fix.md b/changelog/1.20.0_2022-04-13/thumbnails-download-fix.md similarity index 100% rename from changelog/unreleased/thumbnails-download-fix.md rename to changelog/1.20.0_2022-04-13/thumbnails-download-fix.md diff --git a/changelog/unreleased/update-reva.md b/changelog/1.20.0_2022-04-13/update-reva.md similarity index 100% rename from changelog/unreleased/update-reva.md rename to changelog/1.20.0_2022-04-13/update-reva.md diff --git a/changelog/unreleased/update-web-5.4.0.md b/changelog/1.20.0_2022-04-13/update-web-5.4.0.md similarity index 100% rename from changelog/unreleased/update-web-5.4.0.md rename to changelog/1.20.0_2022-04-13/update-web-5.4.0.md diff --git a/changelog/unreleased/user-group-audit.md b/changelog/1.20.0_2022-04-13/user-group-audit.md similarity index 100% rename from changelog/unreleased/user-group-audit.md rename to changelog/1.20.0_2022-04-13/user-group-audit.md diff --git a/docs/.gitignore b/docs/.gitignore index baf62f090..02053cc82 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1,3 +1,4 @@ hugo/ grpc_apis/ mutagen.yml.lock +helpers/output/* \ No newline at end of file diff --git a/docs/extensions/idm/setup.md b/docs/extensions/idm/setup.md index 3a5f728dc..6d434dd60 100644 --- a/docs/extensions/idm/setup.md +++ b/docs/extensions/idm/setup.md @@ -29,7 +29,8 @@ export LDAP_USER_OBJECTCLASS="inetOrgPerson" export LDAP_GROUP_BASE_DN="ou=groups,o=libregraph-idm" export LDAP_GROUP_SCHEMA_ID="ownclouduuid" export LDAP_GROUP_SCHEMA_MAIL="mail" -export LDAP_GROUP_SCHEMA_GROUPNAME="member" +export LDAP_GROUP_SCHEMA_GROUPNAME="cn" +export LDAP_GROUP_SCHEMA_MEMBER="member" export LDAP_GROUP_OBJECTCLASS="groupOfNames" export GRAPH_LDAP_BIND_DN="uid=libregraph,ou=sysusers,o=libregraph-idm" export GRAPH_LDAP_BIND_PASSWORD=idm diff --git a/docs/helpers/configenvextractor.go b/docs/helpers/configenvextractor.go index 1d5b9f6f8..bde518bcc 100644 --- a/docs/helpers/configenvextractor.go +++ b/docs/helpers/configenvextractor.go @@ -19,7 +19,7 @@ var targets = map[string]string{ func main() { fmt.Println("Getting relevant packages") - paths, err := filepath.Glob("../../*/pkg/config/defaults/defaultconfig.go") + paths, err := filepath.Glob("../../extensions/*/pkg/config/defaults/defaultconfig.go") if err != nil { log.Fatal(err) } diff --git a/docs/helpers/example-config-generator.go.tmpl b/docs/helpers/example-config-generator.go.tmpl index 705a5e875..6e40721c1 100644 --- a/docs/helpers/example-config-generator.go.tmpl +++ b/docs/helpers/example-config-generator.go.tmpl @@ -15,7 +15,7 @@ import ( func main() { replacer := strings.NewReplacer( - "github.com/owncloud/ocis/", "", + "github.com/owncloud/ocis/extensions/", "", "/pkg/config/defaults", "", ) cfg := map[string]string{ diff --git a/docs/helpers/extractor.go.tmpl b/docs/helpers/extractor.go.tmpl index 76ec507b3..501e1938b 100644 --- a/docs/helpers/extractor.go.tmpl +++ b/docs/helpers/extractor.go.tmpl @@ -28,7 +28,7 @@ if err != nil { log.Fatal(err) } replacer := strings.NewReplacer( - "github.com/owncloud/ocis/", "", + "github.com/owncloud/ocis/extensions/", "", "/pkg/config/defaults", "", ) var fields []ConfigField diff --git a/accounts/.dockerignore b/extensions/accounts/.dockerignore similarity index 100% rename from accounts/.dockerignore rename to extensions/accounts/.dockerignore diff --git a/accounts/.eslintrc.json b/extensions/accounts/.eslintrc.json similarity index 100% rename from accounts/.eslintrc.json rename to extensions/accounts/.eslintrc.json diff --git a/accounts/.gitignore b/extensions/accounts/.gitignore similarity index 100% rename from accounts/.gitignore rename to extensions/accounts/.gitignore diff --git a/accounts/.yarn/releases/yarn-3.1.0.cjs b/extensions/accounts/.yarn/releases/yarn-3.1.0.cjs similarity index 100% rename from accounts/.yarn/releases/yarn-3.1.0.cjs rename to extensions/accounts/.yarn/releases/yarn-3.1.0.cjs diff --git a/accounts/.yarnrc.yml b/extensions/accounts/.yarnrc.yml similarity index 100% rename from accounts/.yarnrc.yml rename to extensions/accounts/.yarnrc.yml diff --git a/accounts/Makefile b/extensions/accounts/Makefile similarity index 82% rename from accounts/Makefile rename to extensions/accounts/Makefile index 52698cda9..8f2cfa489 100644 --- a/accounts/Makefile +++ b/extensions/accounts/Makefile @@ -1,7 +1,7 @@ SHELL := bash NAME := accounts -include ../.make/recursion.mk +include ../../.make/recursion.mk .PHONY: test-acceptance-webui test-acceptance-webui: @@ -10,27 +10,27 @@ test-acceptance-webui: ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ############ -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk ############ l10n ############ -include ../.make/l10n.mk +include ../../.make/l10n.mk .PHONY: docs-generate docs-generate: config-docs-generate \ grpc-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: protobuf # CI runs ci-node-generate automatically before this target @@ -49,7 +49,7 @@ node_modules: @yarn install --immutable 2>&1 >/dev/null ############ protobuf ############ -include ../.make/protobuf.mk +include ../../.make/protobuf.mk .PHONY: protobuf protobuf: buf-generate diff --git a/accounts/accounts.go b/extensions/accounts/accounts.go similarity index 100% rename from accounts/accounts.go rename to extensions/accounts/accounts.go diff --git a/accounts/assets/.keep b/extensions/accounts/assets/.keep similarity index 100% rename from accounts/assets/.keep rename to extensions/accounts/assets/.keep diff --git a/accounts/babel.config.js b/extensions/accounts/babel.config.js similarity index 100% rename from accounts/babel.config.js rename to extensions/accounts/babel.config.js diff --git a/extensions/accounts/cmd/accounts/main.go b/extensions/accounts/cmd/accounts/main.go new file mode 100644 index 000000000..c74b5e10d --- /dev/null +++ b/extensions/accounts/cmd/accounts/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/accounts/pkg/command" + "github.com/owncloud/ocis/extensions/accounts/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/accounts/cmd/helper/defaultconfig/main.go b/extensions/accounts/cmd/helper/defaultconfig/main.go similarity index 66% rename from accounts/cmd/helper/defaultconfig/main.go rename to extensions/accounts/cmd/helper/defaultconfig/main.go index e2b574505..f60d1525d 100644 --- a/accounts/cmd/helper/defaultconfig/main.go +++ b/extensions/accounts/cmd/helper/defaultconfig/main.go @@ -3,8 +3,8 @@ package main import ( "fmt" - accountsdefaults "github.com/owncloud/ocis/accounts/pkg/config/defaults" - idpdefaults "github.com/owncloud/ocis/idp/pkg/config/defaults" + accountsdefaults "github.com/owncloud/ocis/extensions/accounts/pkg/config/defaults" + idpdefaults "github.com/owncloud/ocis/extensions/idp/pkg/config/defaults" "gopkg.in/yaml.v2" ) diff --git a/accounts/docker/Dockerfile.linux.amd64 b/extensions/accounts/docker/Dockerfile.linux.amd64 similarity index 100% rename from accounts/docker/Dockerfile.linux.amd64 rename to extensions/accounts/docker/Dockerfile.linux.amd64 diff --git a/accounts/docker/Dockerfile.linux.arm b/extensions/accounts/docker/Dockerfile.linux.arm similarity index 100% rename from accounts/docker/Dockerfile.linux.arm rename to extensions/accounts/docker/Dockerfile.linux.arm diff --git a/accounts/docker/Dockerfile.linux.arm64 b/extensions/accounts/docker/Dockerfile.linux.arm64 similarity index 100% rename from accounts/docker/Dockerfile.linux.arm64 rename to extensions/accounts/docker/Dockerfile.linux.arm64 diff --git a/accounts/docker/manifest.tmpl b/extensions/accounts/docker/manifest.tmpl similarity index 100% rename from accounts/docker/manifest.tmpl rename to extensions/accounts/docker/manifest.tmpl diff --git a/accounts/l10n/.tx/config b/extensions/accounts/l10n/.tx/config similarity index 100% rename from accounts/l10n/.tx/config rename to extensions/accounts/l10n/.tx/config diff --git a/accounts/l10n/translations.json b/extensions/accounts/l10n/translations.json similarity index 100% rename from accounts/l10n/translations.json rename to extensions/accounts/l10n/translations.json diff --git a/accounts/nightwatch.conf.js b/extensions/accounts/nightwatch.conf.js similarity index 100% rename from accounts/nightwatch.conf.js rename to extensions/accounts/nightwatch.conf.js diff --git a/accounts/package.json b/extensions/accounts/package.json similarity index 100% rename from accounts/package.json rename to extensions/accounts/package.json diff --git a/accounts/pkg/assets/option.go b/extensions/accounts/pkg/assets/option.go similarity index 90% rename from accounts/pkg/assets/option.go rename to extensions/accounts/pkg/assets/option.go index de885fba8..fb409e6aa 100644 --- a/accounts/pkg/assets/option.go +++ b/extensions/accounts/pkg/assets/option.go @@ -3,8 +3,8 @@ package assets import ( "net/http" - "github.com/owncloud/ocis/accounts" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/owncloud/ocis/ocis-pkg/assetsfs" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/accounts/pkg/command/add_account.go b/extensions/accounts/pkg/command/add_account.go similarity index 93% rename from accounts/pkg/command/add_account.go rename to extensions/accounts/pkg/command/add_account.go index 5e95f5a29..7f980f356 100644 --- a/accounts/pkg/command/add_account.go +++ b/extensions/accounts/pkg/command/add_account.go @@ -7,8 +7,8 @@ import ( accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" "github.com/asim/go-micro/plugins/client/grpc/v4" - "github.com/owncloud/ocis/accounts/pkg/config" - "github.com/owncloud/ocis/accounts/pkg/flagset" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/flagset" "github.com/urfave/cli/v2" ) diff --git a/extensions/accounts/pkg/command/health.go b/extensions/accounts/pkg/command/health.go new file mode 100644 index 000000000..287946257 --- /dev/null +++ b/extensions/accounts/pkg/command/health.go @@ -0,0 +1,53 @@ +package command + +import ( + "fmt" + "net/http" + + "github.com/owncloud/ocis/extensions/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config/parser" + "github.com/owncloud/ocis/extensions/accounts/pkg/logging" + "github.com/urfave/cli/v2" +) + +// Health is the entrypoint for the health command. +func Health(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "health", + Usage: "check health status", + Category: "info", + Before: func(c *cli.Context) error { + return parser.ParseConfig(cfg) + }, + Action: func(c *cli.Context) error { + logger := logging.Configure(cfg.Service.Name, cfg.Log) + + resp, err := http.Get( + fmt.Sprintf( + "http://%s/healthz", + cfg.Debug.Addr, + ), + ) + + if err != nil { + logger.Fatal(). + Err(err). + Msg("Failed to request health check") + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + logger.Fatal(). + Int("code", resp.StatusCode). + Msg("Health seems to be in bad state") + } + + logger.Debug(). + Int("code", resp.StatusCode). + Msg("Health got a good state") + + return nil + }, + } +} diff --git a/accounts/pkg/command/inspect_account.go b/extensions/accounts/pkg/command/inspect_account.go similarity index 95% rename from accounts/pkg/command/inspect_account.go rename to extensions/accounts/pkg/command/inspect_account.go index 07314e1d0..1a8ff410e 100644 --- a/accounts/pkg/command/inspect_account.go +++ b/extensions/accounts/pkg/command/inspect_account.go @@ -8,11 +8,11 @@ import ( accountsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/accounts/v0" accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" - "github.com/owncloud/ocis/accounts/pkg/flagset" + "github.com/owncloud/ocis/extensions/accounts/pkg/flagset" "github.com/asim/go-micro/plugins/client/grpc/v4" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/accounts/pkg/command/list_accounts.go b/extensions/accounts/pkg/command/list_accounts.go similarity index 92% rename from accounts/pkg/command/list_accounts.go rename to extensions/accounts/pkg/command/list_accounts.go index 55621c982..3edf5ed2f 100644 --- a/accounts/pkg/command/list_accounts.go +++ b/extensions/accounts/pkg/command/list_accounts.go @@ -8,11 +8,11 @@ import ( accountsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/accounts/v0" accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" - "github.com/owncloud/ocis/accounts/pkg/flagset" + "github.com/owncloud/ocis/extensions/accounts/pkg/flagset" "github.com/asim/go-micro/plugins/client/grpc/v4" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/accounts/pkg/command/rebuild_index.go b/extensions/accounts/pkg/command/rebuild_index.go similarity index 94% rename from accounts/pkg/command/rebuild_index.go rename to extensions/accounts/pkg/command/rebuild_index.go index 5536653bf..cf9ceff49 100644 --- a/accounts/pkg/command/rebuild_index.go +++ b/extensions/accounts/pkg/command/rebuild_index.go @@ -7,7 +7,7 @@ import ( accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" "github.com/asim/go-micro/plugins/client/grpc/v4" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/urfave/cli/v2" merrors "go-micro.dev/v4/errors" ) diff --git a/accounts/pkg/command/remove_account.go b/extensions/accounts/pkg/command/remove_account.go similarity index 89% rename from accounts/pkg/command/remove_account.go rename to extensions/accounts/pkg/command/remove_account.go index 38d4a495e..8508f28fd 100644 --- a/accounts/pkg/command/remove_account.go +++ b/extensions/accounts/pkg/command/remove_account.go @@ -6,10 +6,10 @@ import ( accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" - "github.com/owncloud/ocis/accounts/pkg/flagset" + "github.com/owncloud/ocis/extensions/accounts/pkg/flagset" "github.com/asim/go-micro/plugins/client/grpc/v4" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/accounts/pkg/command/root.go b/extensions/accounts/pkg/command/root.go similarity index 96% rename from accounts/pkg/command/root.go rename to extensions/accounts/pkg/command/root.go index fb0bf2883..aee23e547 100644 --- a/accounts/pkg/command/root.go +++ b/extensions/accounts/pkg/command/root.go @@ -4,7 +4,7 @@ import ( "context" "os" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/thejerf/suture/v4" diff --git a/accounts/pkg/command/server.go b/extensions/accounts/pkg/command/server.go similarity index 81% rename from accounts/pkg/command/server.go rename to extensions/accounts/pkg/command/server.go index 52fd784ee..cad240686 100644 --- a/accounts/pkg/command/server.go +++ b/extensions/accounts/pkg/command/server.go @@ -5,15 +5,15 @@ import ( "fmt" "github.com/oklog/run" - "github.com/owncloud/ocis/accounts/pkg/config" - "github.com/owncloud/ocis/accounts/pkg/config/parser" - "github.com/owncloud/ocis/accounts/pkg/logging" - "github.com/owncloud/ocis/accounts/pkg/metrics" - "github.com/owncloud/ocis/accounts/pkg/server/debug" - "github.com/owncloud/ocis/accounts/pkg/server/grpc" - "github.com/owncloud/ocis/accounts/pkg/server/http" - svc "github.com/owncloud/ocis/accounts/pkg/service/v0" - "github.com/owncloud/ocis/accounts/pkg/tracing" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config/parser" + "github.com/owncloud/ocis/extensions/accounts/pkg/logging" + "github.com/owncloud/ocis/extensions/accounts/pkg/metrics" + "github.com/owncloud/ocis/extensions/accounts/pkg/server/debug" + "github.com/owncloud/ocis/extensions/accounts/pkg/server/grpc" + "github.com/owncloud/ocis/extensions/accounts/pkg/server/http" + svc "github.com/owncloud/ocis/extensions/accounts/pkg/service/v0" + "github.com/owncloud/ocis/extensions/accounts/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/version" "github.com/urfave/cli/v2" ) diff --git a/accounts/pkg/command/update_account.go b/extensions/accounts/pkg/command/update_account.go similarity index 95% rename from accounts/pkg/command/update_account.go rename to extensions/accounts/pkg/command/update_account.go index 630edb3e9..669238f7b 100644 --- a/accounts/pkg/command/update_account.go +++ b/extensions/accounts/pkg/command/update_account.go @@ -7,10 +7,10 @@ import ( accountsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/accounts/v0" accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" - "github.com/owncloud/ocis/accounts/pkg/flagset" + "github.com/owncloud/ocis/extensions/accounts/pkg/flagset" "github.com/asim/go-micro/plugins/client/grpc/v4" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/urfave/cli/v2" "google.golang.org/genproto/protobuf/field_mask" ) diff --git a/settings/pkg/command/version.go b/extensions/accounts/pkg/command/version.go similarity index 95% rename from settings/pkg/command/version.go rename to extensions/accounts/pkg/command/version.go index 20df41a1e..bf6cf5ae7 100644 --- a/settings/pkg/command/version.go +++ b/extensions/accounts/pkg/command/version.go @@ -8,7 +8,7 @@ import ( "github.com/owncloud/ocis/ocis-pkg/version" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/settings/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/accounts/pkg/config/config.go b/extensions/accounts/pkg/config/config.go similarity index 100% rename from accounts/pkg/config/config.go rename to extensions/accounts/pkg/config/config.go diff --git a/accounts/pkg/config/debug.go b/extensions/accounts/pkg/config/debug.go similarity index 100% rename from accounts/pkg/config/debug.go rename to extensions/accounts/pkg/config/debug.go diff --git a/accounts/pkg/config/defaults/defaultconfig.go b/extensions/accounts/pkg/config/defaults/defaultconfig.go similarity index 97% rename from accounts/pkg/config/defaults/defaultconfig.go rename to extensions/accounts/pkg/config/defaults/defaultconfig.go index 25912cfa6..d44ca4aaf 100644 --- a/accounts/pkg/config/defaults/defaultconfig.go +++ b/extensions/accounts/pkg/config/defaults/defaultconfig.go @@ -4,7 +4,7 @@ import ( "path" "strings" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/defaults" ) diff --git a/accounts/pkg/config/grpc.go b/extensions/accounts/pkg/config/grpc.go similarity index 100% rename from accounts/pkg/config/grpc.go rename to extensions/accounts/pkg/config/grpc.go diff --git a/accounts/pkg/config/http.go b/extensions/accounts/pkg/config/http.go similarity index 100% rename from accounts/pkg/config/http.go rename to extensions/accounts/pkg/config/http.go diff --git a/accounts/pkg/config/log.go b/extensions/accounts/pkg/config/log.go similarity index 100% rename from accounts/pkg/config/log.go rename to extensions/accounts/pkg/config/log.go diff --git a/extensions/accounts/pkg/config/parser/parse.go b/extensions/accounts/pkg/config/parser/parse.go new file mode 100644 index 000000000..91d47c19d --- /dev/null +++ b/extensions/accounts/pkg/config/parser/parse.go @@ -0,0 +1,33 @@ +package parser + +import ( + "errors" + + "github.com/owncloud/ocis/extensions/accounts/pkg/config" + defaults "github.com/owncloud/ocis/extensions/accounts/pkg/config/defaults" + ociscfg "github.com/owncloud/ocis/ocis-pkg/config" + + "github.com/owncloud/ocis/ocis-pkg/config/envdecode" +) + +// ParseConfig loads accounts configuration from known paths. +func ParseConfig(cfg *config.Config) error { + _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) + if err != nil { + return err + } + + defaults.EnsureDefaults(cfg) + + // load all env variables relevant to the config in the current context. + if err := envdecode.Decode(cfg); err != nil { + // no environment variable set for this config is an expected "error" + if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { + return err + } + } + + defaults.Sanitize(cfg) + + return nil +} diff --git a/accounts/pkg/config/service.go b/extensions/accounts/pkg/config/service.go similarity index 100% rename from accounts/pkg/config/service.go rename to extensions/accounts/pkg/config/service.go diff --git a/accounts/pkg/config/tracing.go b/extensions/accounts/pkg/config/tracing.go similarity index 100% rename from accounts/pkg/config/tracing.go rename to extensions/accounts/pkg/config/tracing.go diff --git a/accounts/pkg/flagset/flagset.go b/extensions/accounts/pkg/flagset/flagset.go similarity index 99% rename from accounts/pkg/flagset/flagset.go rename to extensions/accounts/pkg/flagset/flagset.go index 0566a37c8..906fe7d70 100644 --- a/accounts/pkg/flagset/flagset.go +++ b/extensions/accounts/pkg/flagset/flagset.go @@ -3,7 +3,7 @@ package flagset import ( accountsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/accounts/v0" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/owncloud/ocis/ocis-pkg/flags" "github.com/urfave/cli/v2" ) diff --git a/extensions/accounts/pkg/logging/logging.go b/extensions/accounts/pkg/logging/logging.go new file mode 100644 index 000000000..d14968961 --- /dev/null +++ b/extensions/accounts/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/accounts/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/accounts/pkg/metrics/metrics.go b/extensions/accounts/pkg/metrics/metrics.go similarity index 100% rename from accounts/pkg/metrics/metrics.go rename to extensions/accounts/pkg/metrics/metrics.go diff --git a/extensions/accounts/pkg/server/debug/option.go b/extensions/accounts/pkg/server/debug/option.go new file mode 100644 index 000000000..39e577364 --- /dev/null +++ b/extensions/accounts/pkg/server/debug/option.go @@ -0,0 +1,50 @@ +package debug + +import ( + "context" + + "github.com/owncloud/ocis/extensions/accounts/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// Option defines a single option function. +type Option func(o *Options) + +// Options defines the available options for this package. +type Options struct { + Logger log.Logger + Context context.Context + Config *config.Config +} + +// newOptions initializes the available default options. +func newOptions(opts ...Option) Options { + opt := Options{} + + for _, o := range opts { + o(&opt) + } + + return opt +} + +// Logger provides a function to set the logger option. +func Logger(val log.Logger) Option { + return func(o *Options) { + o.Logger = val + } +} + +// Context provides a function to set the context option. +func Context(val context.Context) Option { + return func(o *Options) { + o.Context = val + } +} + +// Config provides a function to set the config option. +func Config(val *config.Config) Option { + return func(o *Options) { + o.Config = val + } +} diff --git a/settings/pkg/server/debug/server.go b/extensions/accounts/pkg/server/debug/server.go similarity index 96% rename from settings/pkg/server/debug/server.go rename to extensions/accounts/pkg/server/debug/server.go index 81f41de18..e6d1b26c7 100644 --- a/settings/pkg/server/debug/server.go +++ b/extensions/accounts/pkg/server/debug/server.go @@ -4,9 +4,9 @@ import ( "io" "net/http" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/owncloud/ocis/ocis-pkg/service/debug" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/settings/pkg/config" ) // Server initializes the debug service and server. diff --git a/accounts/pkg/server/grpc/option.go b/extensions/accounts/pkg/server/grpc/option.go similarity index 81% rename from accounts/pkg/server/grpc/option.go rename to extensions/accounts/pkg/server/grpc/option.go index a00017e8f..134a8b294 100644 --- a/accounts/pkg/server/grpc/option.go +++ b/extensions/accounts/pkg/server/grpc/option.go @@ -3,9 +3,9 @@ package grpc import ( "context" - "github.com/owncloud/ocis/accounts/pkg/config" - "github.com/owncloud/ocis/accounts/pkg/metrics" - svc "github.com/owncloud/ocis/accounts/pkg/service/v0" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/metrics" + svc "github.com/owncloud/ocis/extensions/accounts/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/urfave/cli/v2" ) @@ -15,13 +15,13 @@ type Option func(o *Options) // Options defines the available options for this package. type Options struct { - Name string - Logger log.Logger - Context context.Context - Config *config.Config - Metrics *metrics.Metrics - Flags []cli.Flag - Handler *svc.Service + Name string + Logger log.Logger + Context context.Context + Config *config.Config + Metrics *metrics.Metrics + Flags []cli.Flag + Handler *svc.Service } // newOptions initializes the available default options. diff --git a/accounts/pkg/server/grpc/server.go b/extensions/accounts/pkg/server/grpc/server.go similarity index 100% rename from accounts/pkg/server/grpc/server.go rename to extensions/accounts/pkg/server/grpc/server.go diff --git a/accounts/pkg/server/http/option.go b/extensions/accounts/pkg/server/http/option.go similarity index 81% rename from accounts/pkg/server/http/option.go rename to extensions/accounts/pkg/server/http/option.go index 2614c5c94..67f647b32 100644 --- a/accounts/pkg/server/http/option.go +++ b/extensions/accounts/pkg/server/http/option.go @@ -3,9 +3,9 @@ package http import ( "context" - "github.com/owncloud/ocis/accounts/pkg/config" - "github.com/owncloud/ocis/accounts/pkg/metrics" - svc "github.com/owncloud/ocis/accounts/pkg/service/v0" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/metrics" + svc "github.com/owncloud/ocis/extensions/accounts/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/urfave/cli/v2" ) @@ -15,13 +15,13 @@ type Option func(o *Options) // Options defines the available options for this package. type Options struct { - Name string - Logger log.Logger - Context context.Context - Config *config.Config - Metrics *metrics.Metrics - Flags []cli.Flag - Handler *svc.Service + Name string + Logger log.Logger + Context context.Context + Config *config.Config + Metrics *metrics.Metrics + Flags []cli.Flag + Handler *svc.Service } // newOptions initializes the available default options. diff --git a/accounts/pkg/server/http/server.go b/extensions/accounts/pkg/server/http/server.go similarity index 97% rename from accounts/pkg/server/http/server.go rename to extensions/accounts/pkg/server/http/server.go index 31b547c02..f577dc494 100644 --- a/accounts/pkg/server/http/server.go +++ b/extensions/accounts/pkg/server/http/server.go @@ -5,7 +5,7 @@ import ( "github.com/go-chi/chi/v5" chimiddleware "github.com/go-chi/chi/v5/middleware" - "github.com/owncloud/ocis/accounts/pkg/assets" + "github.com/owncloud/ocis/extensions/accounts/pkg/assets" "github.com/owncloud/ocis/ocis-pkg/account" "github.com/owncloud/ocis/ocis-pkg/cors" "github.com/owncloud/ocis/ocis-pkg/middleware" diff --git a/accounts/pkg/service/v0/accounts.go b/extensions/accounts/pkg/service/v0/accounts.go similarity index 99% rename from accounts/pkg/service/v0/accounts.go rename to extensions/accounts/pkg/service/v0/accounts.go index 7fab6a7d1..ca7a1c265 100644 --- a/accounts/pkg/service/v0/accounts.go +++ b/extensions/accounts/pkg/service/v0/accounts.go @@ -22,14 +22,14 @@ import ( "github.com/gofrs/uuid" "github.com/golang/protobuf/ptypes/empty" fieldmask_utils "github.com/mennanov/fieldmask-utils" - "github.com/owncloud/ocis/accounts/pkg/storage" - accTracing "github.com/owncloud/ocis/accounts/pkg/tracing" + "github.com/owncloud/ocis/extensions/accounts/pkg/storage" + accTracing "github.com/owncloud/ocis/extensions/accounts/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/roles" "github.com/owncloud/ocis/ocis-pkg/sync" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - settings_svc "github.com/owncloud/ocis/settings/pkg/service/v0" + settings_svc "github.com/owncloud/ocis/extensions/settings/pkg/service/v0" "github.com/rs/zerolog" merrors "go-micro.dev/v4/errors" "go-micro.dev/v4/metadata" diff --git a/accounts/pkg/service/v0/accounts_permission_test.go b/extensions/accounts/pkg/service/v0/accounts_permission_test.go similarity index 98% rename from accounts/pkg/service/v0/accounts_permission_test.go rename to extensions/accounts/pkg/service/v0/accounts_permission_test.go index e349ab6da..88eb12506 100644 --- a/accounts/pkg/service/v0/accounts_permission_test.go +++ b/extensions/accounts/pkg/service/v0/accounts_permission_test.go @@ -13,13 +13,13 @@ import ( accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" "github.com/golang/protobuf/ptypes/empty" - config "github.com/owncloud/ocis/accounts/pkg/config/defaults" + config "github.com/owncloud/ocis/extensions/accounts/pkg/config/defaults" + ssvc "github.com/owncloud/ocis/extensions/settings/pkg/service/v0" olog "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/roles" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - ssvc "github.com/owncloud/ocis/settings/pkg/service/v0" "github.com/stretchr/testify/assert" "go-micro.dev/v4/client" merrors "go-micro.dev/v4/errors" diff --git a/accounts/pkg/service/v0/groups.go b/extensions/accounts/pkg/service/v0/groups.go similarity index 99% rename from accounts/pkg/service/v0/groups.go rename to extensions/accounts/pkg/service/v0/groups.go index ad45f86ad..8ad166cdb 100644 --- a/accounts/pkg/service/v0/groups.go +++ b/extensions/accounts/pkg/service/v0/groups.go @@ -10,7 +10,7 @@ import ( "github.com/gofrs/uuid" "github.com/golang/protobuf/ptypes/empty" - "github.com/owncloud/ocis/accounts/pkg/storage" + "github.com/owncloud/ocis/extensions/accounts/pkg/storage" merrors "go-micro.dev/v4/errors" p "google.golang.org/protobuf/proto" ) diff --git a/accounts/pkg/service/v0/index.go b/extensions/accounts/pkg/service/v0/index.go similarity index 98% rename from accounts/pkg/service/v0/index.go rename to extensions/accounts/pkg/service/v0/index.go index 19a7a2138..73f35698c 100644 --- a/accounts/pkg/service/v0/index.go +++ b/extensions/accounts/pkg/service/v0/index.go @@ -7,7 +7,7 @@ import ( accountsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/accounts/v0" accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" - "github.com/owncloud/ocis/accounts/pkg/storage" + "github.com/owncloud/ocis/extensions/accounts/pkg/storage" "github.com/owncloud/ocis/ocis-pkg/indexer" "github.com/owncloud/ocis/ocis-pkg/indexer/config" diff --git a/accounts/pkg/service/v0/option.go b/extensions/accounts/pkg/service/v0/option.go similarity index 95% rename from accounts/pkg/service/v0/option.go rename to extensions/accounts/pkg/service/v0/option.go index 4658ba8b0..377e071ea 100644 --- a/accounts/pkg/service/v0/option.go +++ b/extensions/accounts/pkg/service/v0/option.go @@ -1,7 +1,7 @@ package service import ( - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/roles" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" diff --git a/accounts/pkg/service/v0/permissions.go b/extensions/accounts/pkg/service/v0/permissions.go similarity index 98% rename from accounts/pkg/service/v0/permissions.go rename to extensions/accounts/pkg/service/v0/permissions.go index 23bb4077b..4fce6cc74 100644 --- a/accounts/pkg/service/v0/permissions.go +++ b/extensions/accounts/pkg/service/v0/permissions.go @@ -5,10 +5,10 @@ import ( "github.com/owncloud/ocis/ocis-pkg/service/grpc" + ssvc "github.com/owncloud/ocis/extensions/settings/pkg/service/v0" olog "github.com/owncloud/ocis/ocis-pkg/log" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - ssvc "github.com/owncloud/ocis/settings/pkg/service/v0" ) const ( diff --git a/accounts/pkg/service/v0/service.go b/extensions/accounts/pkg/service/v0/service.go similarity index 99% rename from accounts/pkg/service/v0/service.go rename to extensions/accounts/pkg/service/v0/service.go index e79e7de10..76b36dece 100644 --- a/accounts/pkg/service/v0/service.go +++ b/extensions/accounts/pkg/service/v0/service.go @@ -13,12 +13,12 @@ import ( "github.com/owncloud/ocis/ocis-pkg/service/grpc" - "github.com/owncloud/ocis/accounts/pkg/storage" + "github.com/owncloud/ocis/extensions/accounts/pkg/storage" "github.com/owncloud/ocis/ocis-pkg/indexer" idxcfg "github.com/owncloud/ocis/ocis-pkg/indexer/config" idxerrs "github.com/owncloud/ocis/ocis-pkg/indexer/errors" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" oreg "github.com/owncloud/ocis/ocis-pkg/registry" "github.com/owncloud/ocis/ocis-pkg/roles" diff --git a/accounts/pkg/service/v0/staticcheck.conf b/extensions/accounts/pkg/service/v0/staticcheck.conf similarity index 100% rename from accounts/pkg/service/v0/staticcheck.conf rename to extensions/accounts/pkg/service/v0/staticcheck.conf diff --git a/accounts/pkg/storage/cs3.go b/extensions/accounts/pkg/storage/cs3.go similarity index 99% rename from accounts/pkg/storage/cs3.go rename to extensions/accounts/pkg/storage/cs3.go index 7e1d65e34..9992397f0 100644 --- a/accounts/pkg/storage/cs3.go +++ b/extensions/accounts/pkg/storage/cs3.go @@ -15,7 +15,7 @@ import ( "github.com/cs3org/reva/v2/pkg/token" "github.com/cs3org/reva/v2/pkg/token/manager/jwt" "github.com/cs3org/reva/v2/pkg/utils" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" olog "github.com/owncloud/ocis/ocis-pkg/log" metadatastorage "github.com/owncloud/ocis/ocis-pkg/metadata_storage" accountsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/accounts/v0" diff --git a/accounts/pkg/storage/cs3_test.go b/extensions/accounts/pkg/storage/cs3_test.go similarity index 100% rename from accounts/pkg/storage/cs3_test.go rename to extensions/accounts/pkg/storage/cs3_test.go diff --git a/accounts/pkg/storage/disk.go b/extensions/accounts/pkg/storage/disk.go similarity index 98% rename from accounts/pkg/storage/disk.go rename to extensions/accounts/pkg/storage/disk.go index 6516d5c2f..716e99c92 100644 --- a/accounts/pkg/storage/disk.go +++ b/extensions/accounts/pkg/storage/disk.go @@ -10,7 +10,7 @@ import ( accountsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/accounts/v0" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" olog "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/accounts/pkg/storage/errors.go b/extensions/accounts/pkg/storage/errors.go similarity index 100% rename from accounts/pkg/storage/errors.go rename to extensions/accounts/pkg/storage/errors.go diff --git a/accounts/pkg/storage/repo.go b/extensions/accounts/pkg/storage/repo.go similarity index 100% rename from accounts/pkg/storage/repo.go rename to extensions/accounts/pkg/storage/repo.go diff --git a/accounts/pkg/tracing/tracing.go b/extensions/accounts/pkg/tracing/tracing.go similarity index 89% rename from accounts/pkg/tracing/tracing.go rename to extensions/accounts/pkg/tracing/tracing.go index 5f9bd3b65..7896ca3f9 100644 --- a/accounts/pkg/tracing/tracing.go +++ b/extensions/accounts/pkg/tracing/tracing.go @@ -1,7 +1,7 @@ package tracing import ( - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "go.opentelemetry.io/otel/trace" ) diff --git a/accounts/reflex.conf b/extensions/accounts/reflex.conf similarity index 100% rename from accounts/reflex.conf rename to extensions/accounts/reflex.conf diff --git a/accounts/rollup.config.js b/extensions/accounts/rollup.config.js similarity index 100% rename from accounts/rollup.config.js rename to extensions/accounts/rollup.config.js diff --git a/accounts/ui/app.js b/extensions/accounts/ui/app.js similarity index 100% rename from accounts/ui/app.js rename to extensions/accounts/ui/app.js diff --git a/accounts/ui/client/accounts/index.js b/extensions/accounts/ui/client/accounts/index.js similarity index 100% rename from accounts/ui/client/accounts/index.js rename to extensions/accounts/ui/client/accounts/index.js diff --git a/accounts/ui/client/settings/index.js b/extensions/accounts/ui/client/settings/index.js similarity index 100% rename from accounts/ui/client/settings/index.js rename to extensions/accounts/ui/client/settings/index.js diff --git a/accounts/ui/components/App.vue b/extensions/accounts/ui/components/App.vue similarity index 100% rename from accounts/ui/components/App.vue rename to extensions/accounts/ui/components/App.vue diff --git a/accounts/ui/components/accounts/AccountsBatchActions.vue b/extensions/accounts/ui/components/accounts/AccountsBatchActions.vue similarity index 100% rename from accounts/ui/components/accounts/AccountsBatchActions.vue rename to extensions/accounts/ui/components/accounts/AccountsBatchActions.vue diff --git a/accounts/ui/components/accounts/AccountsCreate.vue b/extensions/accounts/ui/components/accounts/AccountsCreate.vue similarity index 100% rename from accounts/ui/components/accounts/AccountsCreate.vue rename to extensions/accounts/ui/components/accounts/AccountsCreate.vue diff --git a/accounts/ui/components/accounts/AccountsList.vue b/extensions/accounts/ui/components/accounts/AccountsList.vue similarity index 100% rename from accounts/ui/components/accounts/AccountsList.vue rename to extensions/accounts/ui/components/accounts/AccountsList.vue diff --git a/accounts/ui/components/accounts/AccountsListRow.vue b/extensions/accounts/ui/components/accounts/AccountsListRow.vue similarity index 100% rename from accounts/ui/components/accounts/AccountsListRow.vue rename to extensions/accounts/ui/components/accounts/AccountsListRow.vue diff --git a/accounts/ui/components/accounts/Avatar.vue b/extensions/accounts/ui/components/accounts/Avatar.vue similarity index 100% rename from accounts/ui/components/accounts/Avatar.vue rename to extensions/accounts/ui/components/accounts/Avatar.vue diff --git a/accounts/ui/dictionary.js b/extensions/accounts/ui/dictionary.js similarity index 100% rename from accounts/ui/dictionary.js rename to extensions/accounts/ui/dictionary.js diff --git a/accounts/ui/helpers/auth.js b/extensions/accounts/ui/helpers/auth.js similarity index 100% rename from accounts/ui/helpers/auth.js rename to extensions/accounts/ui/helpers/auth.js diff --git a/accounts/ui/helpers/utils.js b/extensions/accounts/ui/helpers/utils.js similarity index 100% rename from accounts/ui/helpers/utils.js rename to extensions/accounts/ui/helpers/utils.js diff --git a/accounts/ui/store/index.js b/extensions/accounts/ui/store/index.js similarity index 100% rename from accounts/ui/store/index.js rename to extensions/accounts/ui/store/index.js diff --git a/accounts/ui/tests/acceptance/features/accounts.feature b/extensions/accounts/ui/tests/acceptance/features/accounts.feature similarity index 100% rename from accounts/ui/tests/acceptance/features/accounts.feature rename to extensions/accounts/ui/tests/acceptance/features/accounts.feature diff --git a/accounts/ui/tests/acceptance/pageobjects/accountsPage.js b/extensions/accounts/ui/tests/acceptance/pageobjects/accountsPage.js similarity index 100% rename from accounts/ui/tests/acceptance/pageobjects/accountsPage.js rename to extensions/accounts/ui/tests/acceptance/pageobjects/accountsPage.js diff --git a/accounts/ui/tests/acceptance/stepDefinitions/accountsContext.js b/extensions/accounts/ui/tests/acceptance/stepDefinitions/accountsContext.js similarity index 100% rename from accounts/ui/tests/acceptance/stepDefinitions/accountsContext.js rename to extensions/accounts/ui/tests/acceptance/stepDefinitions/accountsContext.js diff --git a/accounts/ui/tests/run-acceptance-test.sh b/extensions/accounts/ui/tests/run-acceptance-test.sh similarity index 100% rename from accounts/ui/tests/run-acceptance-test.sh rename to extensions/accounts/ui/tests/run-acceptance-test.sh diff --git a/accounts/yarn.lock b/extensions/accounts/yarn.lock similarity index 100% rename from accounts/yarn.lock rename to extensions/accounts/yarn.lock diff --git a/audit/Makefile b/extensions/audit/Makefile similarity index 78% rename from audit/Makefile rename to extensions/audit/Makefile index c95031e52..522b7bfcb 100644 --- a/audit/Makefile +++ b/extensions/audit/Makefile @@ -1,27 +1,27 @@ SHELL := bash NAME := audit -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ############ -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: # CI runs ci-node-generate automatically before this target diff --git a/extensions/audit/cmd/audit/main.go b/extensions/audit/cmd/audit/main.go new file mode 100644 index 000000000..82da7af3a --- /dev/null +++ b/extensions/audit/cmd/audit/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/audit/pkg/command" + "github.com/owncloud/ocis/extensions/audit/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/notifications/pkg/command/health.go b/extensions/audit/pkg/command/health.go similarity index 84% rename from notifications/pkg/command/health.go rename to extensions/audit/pkg/command/health.go index 7f2adb85b..6dfbc30b7 100644 --- a/notifications/pkg/command/health.go +++ b/extensions/audit/pkg/command/health.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/notifications/pkg/config" + "github.com/owncloud/ocis/extensions/audit/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/audit/pkg/command/root.go b/extensions/audit/pkg/command/root.go similarity index 95% rename from audit/pkg/command/root.go rename to extensions/audit/pkg/command/root.go index 5c2124f18..d3cd62ee4 100644 --- a/audit/pkg/command/root.go +++ b/extensions/audit/pkg/command/root.go @@ -4,7 +4,7 @@ import ( "context" "os" - "github.com/owncloud/ocis/audit/pkg/config" + "github.com/owncloud/ocis/extensions/audit/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/thejerf/suture/v4" diff --git a/audit/pkg/command/server.go b/extensions/audit/pkg/command/server.go similarity index 80% rename from audit/pkg/command/server.go rename to extensions/audit/pkg/command/server.go index 74518348d..25a031da0 100644 --- a/audit/pkg/command/server.go +++ b/extensions/audit/pkg/command/server.go @@ -7,11 +7,11 @@ import ( "github.com/asim/go-micro/plugins/events/natsjs/v4" "github.com/cs3org/reva/v2/pkg/events" "github.com/cs3org/reva/v2/pkg/events/server" - "github.com/owncloud/ocis/audit/pkg/config" - "github.com/owncloud/ocis/audit/pkg/config/parser" - "github.com/owncloud/ocis/audit/pkg/logging" - svc "github.com/owncloud/ocis/audit/pkg/service" - "github.com/owncloud/ocis/audit/pkg/types" + "github.com/owncloud/ocis/extensions/audit/pkg/config" + "github.com/owncloud/ocis/extensions/audit/pkg/config/parser" + "github.com/owncloud/ocis/extensions/audit/pkg/logging" + svc "github.com/owncloud/ocis/extensions/audit/pkg/service" + "github.com/owncloud/ocis/extensions/audit/pkg/types" "github.com/urfave/cli/v2" ) diff --git a/nats/pkg/command/version.go b/extensions/audit/pkg/command/version.go similarity index 87% rename from nats/pkg/command/version.go rename to extensions/audit/pkg/command/version.go index 0d29013b7..83bccd714 100644 --- a/nats/pkg/command/version.go +++ b/extensions/audit/pkg/command/version.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/nats/pkg/config" + "github.com/owncloud/ocis/extensions/audit/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/audit/pkg/config/config.go b/extensions/audit/pkg/config/config.go similarity index 100% rename from audit/pkg/config/config.go rename to extensions/audit/pkg/config/config.go diff --git a/audit/pkg/config/debug.go b/extensions/audit/pkg/config/debug.go similarity index 100% rename from audit/pkg/config/debug.go rename to extensions/audit/pkg/config/debug.go diff --git a/audit/pkg/config/defaults/defaultconfig.go b/extensions/audit/pkg/config/defaults/defaultconfig.go similarity index 94% rename from audit/pkg/config/defaults/defaultconfig.go rename to extensions/audit/pkg/config/defaults/defaultconfig.go index ed1c1a822..27b94a814 100644 --- a/audit/pkg/config/defaults/defaultconfig.go +++ b/extensions/audit/pkg/config/defaults/defaultconfig.go @@ -1,7 +1,7 @@ package defaults import ( - "github.com/owncloud/ocis/audit/pkg/config" + "github.com/owncloud/ocis/extensions/audit/pkg/config" ) func FullDefaultConfig() *config.Config { diff --git a/audit/pkg/config/log.go b/extensions/audit/pkg/config/log.go similarity index 100% rename from audit/pkg/config/log.go rename to extensions/audit/pkg/config/log.go diff --git a/extensions/audit/pkg/config/parser/parse.go b/extensions/audit/pkg/config/parser/parse.go new file mode 100644 index 000000000..7c9179761 --- /dev/null +++ b/extensions/audit/pkg/config/parser/parse.go @@ -0,0 +1,33 @@ +package parser + +import ( + "errors" + + "github.com/owncloud/ocis/extensions/audit/pkg/config" + "github.com/owncloud/ocis/extensions/audit/pkg/config/defaults" + ociscfg "github.com/owncloud/ocis/ocis-pkg/config" + + "github.com/owncloud/ocis/ocis-pkg/config/envdecode" +) + +// ParseConfig loads accounts configuration from known paths. +func ParseConfig(cfg *config.Config) error { + _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) + if err != nil { + return err + } + + defaults.EnsureDefaults(cfg) + + // load all env variables relevant to the config in the current context. + if err := envdecode.Decode(cfg); err != nil { + // no environment variable set for this config is an expected "error" + if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { + return err + } + } + + defaults.Sanitize(cfg) + + return nil +} diff --git a/audit/pkg/config/service.go b/extensions/audit/pkg/config/service.go similarity index 100% rename from audit/pkg/config/service.go rename to extensions/audit/pkg/config/service.go diff --git a/extensions/audit/pkg/logging/logging.go b/extensions/audit/pkg/logging/logging.go new file mode 100644 index 000000000..c87d7f328 --- /dev/null +++ b/extensions/audit/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/audit/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/audit/pkg/service/service.go b/extensions/audit/pkg/service/service.go similarity index 97% rename from audit/pkg/service/service.go rename to extensions/audit/pkg/service/service.go index adf16f291..6d42a3b04 100644 --- a/audit/pkg/service/service.go +++ b/extensions/audit/pkg/service/service.go @@ -7,8 +7,8 @@ import ( "os" "github.com/cs3org/reva/v2/pkg/events" - "github.com/owncloud/ocis/audit/pkg/config" - "github.com/owncloud/ocis/audit/pkg/types" + "github.com/owncloud/ocis/extensions/audit/pkg/config" + "github.com/owncloud/ocis/extensions/audit/pkg/types" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/audit/pkg/service/service_test.go b/extensions/audit/pkg/service/service_test.go similarity index 99% rename from audit/pkg/service/service_test.go rename to extensions/audit/pkg/service/service_test.go index 2849ca699..6fb5dc1ea 100644 --- a/audit/pkg/service/service_test.go +++ b/extensions/audit/pkg/service/service_test.go @@ -6,7 +6,7 @@ import ( "testing" "github.com/cs3org/reva/v2/pkg/events" - "github.com/owncloud/ocis/audit/pkg/types" + "github.com/owncloud/ocis/extensions/audit/pkg/types" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/test-go/testify/require" diff --git a/audit/pkg/types/constants.go b/extensions/audit/pkg/types/constants.go similarity index 100% rename from audit/pkg/types/constants.go rename to extensions/audit/pkg/types/constants.go diff --git a/audit/pkg/types/conversion.go b/extensions/audit/pkg/types/conversion.go similarity index 100% rename from audit/pkg/types/conversion.go rename to extensions/audit/pkg/types/conversion.go diff --git a/audit/pkg/types/events.go b/extensions/audit/pkg/types/events.go similarity index 100% rename from audit/pkg/types/events.go rename to extensions/audit/pkg/types/events.go diff --git a/audit/pkg/types/types.go b/extensions/audit/pkg/types/types.go similarity index 100% rename from audit/pkg/types/types.go rename to extensions/audit/pkg/types/types.go diff --git a/glauth/.dockerignore b/extensions/glauth/.dockerignore similarity index 100% rename from glauth/.dockerignore rename to extensions/glauth/.dockerignore diff --git a/glauth/.gitignore b/extensions/glauth/.gitignore similarity index 100% rename from glauth/.gitignore rename to extensions/glauth/.gitignore diff --git a/glauth/Makefile b/extensions/glauth/Makefile similarity index 78% rename from glauth/Makefile rename to extensions/glauth/Makefile index 534484c5c..d95096425 100644 --- a/glauth/Makefile +++ b/extensions/glauth/Makefile @@ -1,27 +1,27 @@ SHELL := bash NAME := glauth -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ############ -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: # CI runs ci-node-generate automatically before this target diff --git a/extensions/glauth/cmd/glauth/main.go b/extensions/glauth/cmd/glauth/main.go new file mode 100644 index 000000000..ecc96b082 --- /dev/null +++ b/extensions/glauth/cmd/glauth/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/glauth/pkg/command" + "github.com/owncloud/ocis/extensions/glauth/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/glauth/docker/Dockerfile.linux.amd64 b/extensions/glauth/docker/Dockerfile.linux.amd64 similarity index 100% rename from glauth/docker/Dockerfile.linux.amd64 rename to extensions/glauth/docker/Dockerfile.linux.amd64 diff --git a/glauth/docker/Dockerfile.linux.arm b/extensions/glauth/docker/Dockerfile.linux.arm similarity index 100% rename from glauth/docker/Dockerfile.linux.arm rename to extensions/glauth/docker/Dockerfile.linux.arm diff --git a/glauth/docker/Dockerfile.linux.arm64 b/extensions/glauth/docker/Dockerfile.linux.arm64 similarity index 100% rename from glauth/docker/Dockerfile.linux.arm64 rename to extensions/glauth/docker/Dockerfile.linux.arm64 diff --git a/glauth/docker/manifest.tmpl b/extensions/glauth/docker/manifest.tmpl similarity index 100% rename from glauth/docker/manifest.tmpl rename to extensions/glauth/docker/manifest.tmpl diff --git a/extensions/glauth/pkg/command/health.go b/extensions/glauth/pkg/command/health.go new file mode 100644 index 000000000..c6e54893c --- /dev/null +++ b/extensions/glauth/pkg/command/health.go @@ -0,0 +1,53 @@ +package command + +import ( + "fmt" + "net/http" + + "github.com/owncloud/ocis/extensions/glauth/pkg/config" + "github.com/owncloud/ocis/extensions/glauth/pkg/config/parser" + "github.com/owncloud/ocis/extensions/glauth/pkg/logging" + "github.com/urfave/cli/v2" +) + +// Health is the entrypoint for the health command. +func Health(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "health", + Usage: "check health status", + Category: "info", + Before: func(c *cli.Context) error { + return parser.ParseConfig(cfg) + }, + Action: func(c *cli.Context) error { + logger := logging.Configure(cfg.Service.Name, cfg.Log) + + resp, err := http.Get( + fmt.Sprintf( + "http://%s/healthz", + cfg.Debug.Addr, + ), + ) + + if err != nil { + logger.Fatal(). + Err(err). + Msg("Failed to request health check") + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + logger.Fatal(). + Int("code", resp.StatusCode). + Msg("Health seems to be in bad state") + } + + logger.Debug(). + Int("code", resp.StatusCode). + Msg("Health got a good state") + + return nil + }, + } +} diff --git a/glauth/pkg/command/root.go b/extensions/glauth/pkg/command/root.go similarity index 95% rename from glauth/pkg/command/root.go rename to extensions/glauth/pkg/command/root.go index 7b1dc51d9..5fbfbf576 100644 --- a/glauth/pkg/command/root.go +++ b/extensions/glauth/pkg/command/root.go @@ -4,7 +4,7 @@ import ( "context" "os" - "github.com/owncloud/ocis/glauth/pkg/config" + "github.com/owncloud/ocis/extensions/glauth/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/thejerf/suture/v4" diff --git a/glauth/pkg/command/server.go b/extensions/glauth/pkg/command/server.go similarity index 91% rename from glauth/pkg/command/server.go rename to extensions/glauth/pkg/command/server.go index d8da2cabb..fda86d30c 100644 --- a/glauth/pkg/command/server.go +++ b/extensions/glauth/pkg/command/server.go @@ -8,13 +8,13 @@ import ( glauthcfg "github.com/glauth/glauth/v2/pkg/config" "github.com/oklog/run" - "github.com/owncloud/ocis/glauth/pkg/config" - "github.com/owncloud/ocis/glauth/pkg/config/parser" - "github.com/owncloud/ocis/glauth/pkg/logging" - "github.com/owncloud/ocis/glauth/pkg/metrics" - "github.com/owncloud/ocis/glauth/pkg/server/debug" - "github.com/owncloud/ocis/glauth/pkg/server/glauth" - "github.com/owncloud/ocis/glauth/pkg/tracing" + "github.com/owncloud/ocis/extensions/glauth/pkg/config" + "github.com/owncloud/ocis/extensions/glauth/pkg/config/parser" + "github.com/owncloud/ocis/extensions/glauth/pkg/logging" + "github.com/owncloud/ocis/extensions/glauth/pkg/metrics" + "github.com/owncloud/ocis/extensions/glauth/pkg/server/debug" + "github.com/owncloud/ocis/extensions/glauth/pkg/server/glauth" + "github.com/owncloud/ocis/extensions/glauth/pkg/tracing" pkgcrypto "github.com/owncloud/ocis/ocis-pkg/crypto" "github.com/owncloud/ocis/ocis-pkg/service/grpc" "github.com/owncloud/ocis/ocis-pkg/version" diff --git a/glauth/pkg/command/version.go b/extensions/glauth/pkg/command/version.go similarity index 95% rename from glauth/pkg/command/version.go rename to extensions/glauth/pkg/command/version.go index c8e149daf..a14d81acc 100644 --- a/glauth/pkg/command/version.go +++ b/extensions/glauth/pkg/command/version.go @@ -8,7 +8,7 @@ import ( "github.com/owncloud/ocis/ocis-pkg/version" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/glauth/pkg/config" + "github.com/owncloud/ocis/extensions/glauth/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/glauth/pkg/config/config.go b/extensions/glauth/pkg/config/config.go similarity index 100% rename from glauth/pkg/config/config.go rename to extensions/glauth/pkg/config/config.go diff --git a/glauth/pkg/config/debug.go b/extensions/glauth/pkg/config/debug.go similarity index 100% rename from glauth/pkg/config/debug.go rename to extensions/glauth/pkg/config/debug.go diff --git a/glauth/pkg/config/defaults/defaultconfig.go b/extensions/glauth/pkg/config/defaults/defaultconfig.go similarity index 97% rename from glauth/pkg/config/defaults/defaultconfig.go rename to extensions/glauth/pkg/config/defaults/defaultconfig.go index 12774c488..4ed303cb3 100644 --- a/glauth/pkg/config/defaults/defaultconfig.go +++ b/extensions/glauth/pkg/config/defaults/defaultconfig.go @@ -3,7 +3,7 @@ package defaults import ( "path" - "github.com/owncloud/ocis/glauth/pkg/config" + "github.com/owncloud/ocis/extensions/glauth/pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/defaults" ) diff --git a/glauth/pkg/config/ldap.go b/extensions/glauth/pkg/config/ldap.go similarity index 100% rename from glauth/pkg/config/ldap.go rename to extensions/glauth/pkg/config/ldap.go diff --git a/glauth/pkg/config/ldaps.go b/extensions/glauth/pkg/config/ldaps.go similarity index 100% rename from glauth/pkg/config/ldaps.go rename to extensions/glauth/pkg/config/ldaps.go diff --git a/glauth/pkg/config/log.go b/extensions/glauth/pkg/config/log.go similarity index 100% rename from glauth/pkg/config/log.go rename to extensions/glauth/pkg/config/log.go diff --git a/glauth/pkg/config/parser/parse.go b/extensions/glauth/pkg/config/parser/parse.go similarity index 85% rename from glauth/pkg/config/parser/parse.go rename to extensions/glauth/pkg/config/parser/parse.go index 1d9326a72..532fb5149 100644 --- a/glauth/pkg/config/parser/parse.go +++ b/extensions/glauth/pkg/config/parser/parse.go @@ -3,8 +3,8 @@ package parser import ( "errors" - "github.com/owncloud/ocis/glauth/pkg/config" - "github.com/owncloud/ocis/glauth/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/glauth/pkg/config" + "github.com/owncloud/ocis/extensions/glauth/pkg/config/defaults" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/envdecode" diff --git a/glauth/pkg/config/service.go b/extensions/glauth/pkg/config/service.go similarity index 100% rename from glauth/pkg/config/service.go rename to extensions/glauth/pkg/config/service.go diff --git a/glauth/pkg/config/tracing.go b/extensions/glauth/pkg/config/tracing.go similarity index 100% rename from glauth/pkg/config/tracing.go rename to extensions/glauth/pkg/config/tracing.go diff --git a/extensions/glauth/pkg/logging/logging.go b/extensions/glauth/pkg/logging/logging.go new file mode 100644 index 000000000..cb8b54ad6 --- /dev/null +++ b/extensions/glauth/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/glauth/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/glauth/pkg/metrics/metrics.go b/extensions/glauth/pkg/metrics/metrics.go similarity index 100% rename from glauth/pkg/metrics/metrics.go rename to extensions/glauth/pkg/metrics/metrics.go diff --git a/glauth/pkg/mlogr/mlogr.go b/extensions/glauth/pkg/mlogr/mlogr.go similarity index 100% rename from glauth/pkg/mlogr/mlogr.go rename to extensions/glauth/pkg/mlogr/mlogr.go diff --git a/extensions/glauth/pkg/server/debug/option.go b/extensions/glauth/pkg/server/debug/option.go new file mode 100644 index 000000000..2ad68fb5d --- /dev/null +++ b/extensions/glauth/pkg/server/debug/option.go @@ -0,0 +1,50 @@ +package debug + +import ( + "context" + + "github.com/owncloud/ocis/extensions/glauth/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// Option defines a single option function. +type Option func(o *Options) + +// Options defines the available options for this package. +type Options struct { + Logger log.Logger + Context context.Context + Config *config.Config +} + +// newOptions initializes the available default options. +func newOptions(opts ...Option) Options { + opt := Options{} + + for _, o := range opts { + o(&opt) + } + + return opt +} + +// Logger provides a function to set the logger option. +func Logger(val log.Logger) Option { + return func(o *Options) { + o.Logger = val + } +} + +// Context provides a function to set the context option. +func Context(val context.Context) Option { + return func(o *Options) { + o.Context = val + } +} + +// Config provides a function to set the config option. +func Config(val *config.Config) Option { + return func(o *Options) { + o.Config = val + } +} diff --git a/extensions/glauth/pkg/server/debug/server.go b/extensions/glauth/pkg/server/debug/server.go new file mode 100644 index 000000000..984358a3b --- /dev/null +++ b/extensions/glauth/pkg/server/debug/server.go @@ -0,0 +1,59 @@ +package debug + +import ( + "io" + "net/http" + + "github.com/owncloud/ocis/extensions/glauth/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/service/debug" + "github.com/owncloud/ocis/ocis-pkg/version" +) + +// Server initializes the debug service and server. +func Server(opts ...Option) (*http.Server, error) { + options := newOptions(opts...) + + return debug.NewService( + debug.Logger(options.Logger), + debug.Name(options.Config.Service.Name), + debug.Version(version.String), + debug.Address(options.Config.Debug.Addr), + debug.Token(options.Config.Debug.Token), + debug.Pprof(options.Config.Debug.Pprof), + debug.Zpages(options.Config.Debug.Zpages), + debug.Health(health(options.Config)), + debug.Ready(ready(options.Config)), + ), nil +} + +// health implements the health check. +func health(cfg *config.Config) func(http.ResponseWriter, *http.Request) { + return func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/plain") + w.WriteHeader(http.StatusOK) + + // TODO: check if services are up and running + + _, err := io.WriteString(w, http.StatusText(http.StatusOK)) + // io.WriteString should not fail but if it does we want to know. + if err != nil { + panic(err) + } + } +} + +// ready implements the ready check. +func ready(cfg *config.Config) func(http.ResponseWriter, *http.Request) { + return func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/plain") + w.WriteHeader(http.StatusOK) + + // TODO: check if services are up and running + + _, err := io.WriteString(w, http.StatusText(http.StatusOK)) + // io.WriteString should not fail but if it does we want to know. + if err != nil { + panic(err) + } + } +} diff --git a/glauth/pkg/server/glauth/chain.go b/extensions/glauth/pkg/server/glauth/chain.go similarity index 100% rename from glauth/pkg/server/glauth/chain.go rename to extensions/glauth/pkg/server/glauth/chain.go diff --git a/glauth/pkg/server/glauth/ocis.go b/extensions/glauth/pkg/server/glauth/ocis.go similarity index 100% rename from glauth/pkg/server/glauth/ocis.go rename to extensions/glauth/pkg/server/glauth/ocis.go diff --git a/glauth/pkg/server/glauth/option.go b/extensions/glauth/pkg/server/glauth/option.go similarity index 100% rename from glauth/pkg/server/glauth/option.go rename to extensions/glauth/pkg/server/glauth/option.go diff --git a/glauth/pkg/server/glauth/server.go b/extensions/glauth/pkg/server/glauth/server.go similarity index 98% rename from glauth/pkg/server/glauth/server.go rename to extensions/glauth/pkg/server/glauth/server.go index df88d10aa..2e6394be7 100644 --- a/glauth/pkg/server/glauth/server.go +++ b/extensions/glauth/pkg/server/glauth/server.go @@ -9,7 +9,7 @@ import ( "github.com/glauth/glauth/v2/pkg/handler" "github.com/go-logr/logr" "github.com/nmcclain/ldap" - "github.com/owncloud/ocis/glauth/pkg/mlogr" + "github.com/owncloud/ocis/extensions/glauth/pkg/mlogr" ) // LdapSvc holds the ldap server struct diff --git a/glauth/pkg/tracing/tracing.go b/extensions/glauth/pkg/tracing/tracing.go similarity index 89% rename from glauth/pkg/tracing/tracing.go rename to extensions/glauth/pkg/tracing/tracing.go index 734fd1d52..c2e19cce6 100644 --- a/glauth/pkg/tracing/tracing.go +++ b/extensions/glauth/pkg/tracing/tracing.go @@ -1,7 +1,7 @@ package tracing import ( - "github.com/owncloud/ocis/glauth/pkg/config" + "github.com/owncloud/ocis/extensions/glauth/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "go.opentelemetry.io/otel/trace" ) diff --git a/glauth/reflex.conf b/extensions/glauth/reflex.conf similarity index 100% rename from glauth/reflex.conf rename to extensions/glauth/reflex.conf diff --git a/graph-explorer/.dockerignore b/extensions/graph-explorer/.dockerignore similarity index 100% rename from graph-explorer/.dockerignore rename to extensions/graph-explorer/.dockerignore diff --git a/graph-explorer/Makefile b/extensions/graph-explorer/Makefile similarity index 83% rename from graph-explorer/Makefile rename to extensions/graph-explorer/Makefile index 6c7099980..e83211bd5 100644 --- a/graph-explorer/Makefile +++ b/extensions/graph-explorer/Makefile @@ -1,27 +1,27 @@ SHELL := bash NAME := graph-explorer -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ############ -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: # CI runs ci-node-generate automatically before this target diff --git a/graph-explorer/assets/.keep b/extensions/graph-explorer/assets/.keep similarity index 100% rename from graph-explorer/assets/.keep rename to extensions/graph-explorer/assets/.keep diff --git a/extensions/graph-explorer/cmd/graph-explorer/main.go b/extensions/graph-explorer/cmd/graph-explorer/main.go new file mode 100644 index 000000000..7ef911df6 --- /dev/null +++ b/extensions/graph-explorer/cmd/graph-explorer/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/command" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/graph-explorer/docker/Dockerfile.linux.amd64 b/extensions/graph-explorer/docker/Dockerfile.linux.amd64 similarity index 100% rename from graph-explorer/docker/Dockerfile.linux.amd64 rename to extensions/graph-explorer/docker/Dockerfile.linux.amd64 diff --git a/graph-explorer/docker/Dockerfile.linux.arm b/extensions/graph-explorer/docker/Dockerfile.linux.arm similarity index 100% rename from graph-explorer/docker/Dockerfile.linux.arm rename to extensions/graph-explorer/docker/Dockerfile.linux.arm diff --git a/graph-explorer/docker/Dockerfile.linux.arm64 b/extensions/graph-explorer/docker/Dockerfile.linux.arm64 similarity index 100% rename from graph-explorer/docker/Dockerfile.linux.arm64 rename to extensions/graph-explorer/docker/Dockerfile.linux.arm64 diff --git a/graph-explorer/docker/manifest.tmpl b/extensions/graph-explorer/docker/manifest.tmpl similarity index 100% rename from graph-explorer/docker/manifest.tmpl rename to extensions/graph-explorer/docker/manifest.tmpl diff --git a/graph-explorer/graph_explorer.go b/extensions/graph-explorer/graph_explorer.go similarity index 100% rename from graph-explorer/graph_explorer.go rename to extensions/graph-explorer/graph_explorer.go diff --git a/graph-explorer/pkg/assets/option.go b/extensions/graph-explorer/pkg/assets/option.go similarity index 88% rename from graph-explorer/pkg/assets/option.go rename to extensions/graph-explorer/pkg/assets/option.go index 228dff7fc..7b6d12a34 100644 --- a/graph-explorer/pkg/assets/option.go +++ b/extensions/graph-explorer/pkg/assets/option.go @@ -3,8 +3,8 @@ package assets import ( "net/http" - graphexplorer "github.com/owncloud/ocis/graph-explorer" - "github.com/owncloud/ocis/graph-explorer/pkg/config" + graphexplorer "github.com/owncloud/ocis/extensions/graph-explorer" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" "github.com/owncloud/ocis/ocis-pkg/assetsfs" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/extensions/graph-explorer/pkg/command/health.go b/extensions/graph-explorer/pkg/command/health.go new file mode 100644 index 000000000..a6122e5af --- /dev/null +++ b/extensions/graph-explorer/pkg/command/health.go @@ -0,0 +1,53 @@ +package command + +import ( + "fmt" + "net/http" + + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config/parser" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/logging" + "github.com/urfave/cli/v2" +) + +// Health is the entrypoint for the health command. +func Health(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "health", + Usage: "check health status", + Category: "info", + Before: func(c *cli.Context) error { + return parser.ParseConfig(cfg) + }, + Action: func(c *cli.Context) error { + logger := logging.Configure(cfg.Service.Name, cfg.Log) + + resp, err := http.Get( + fmt.Sprintf( + "http://%s/healthz", + cfg.Debug.Addr, + ), + ) + + if err != nil { + logger.Fatal(). + Err(err). + Msg("Failed to request health check") + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + logger.Fatal(). + Int("code", resp.StatusCode). + Msg("Health seems to be in bad state") + } + + logger.Debug(). + Int("code", resp.StatusCode). + Msg("Health got a good state") + + return nil + }, + } +} diff --git a/graph-explorer/pkg/command/root.go b/extensions/graph-explorer/pkg/command/root.go similarity index 95% rename from graph-explorer/pkg/command/root.go rename to extensions/graph-explorer/pkg/command/root.go index f2acd3460..34bc27c09 100644 --- a/graph-explorer/pkg/command/root.go +++ b/extensions/graph-explorer/pkg/command/root.go @@ -4,7 +4,7 @@ import ( "context" "os" - "github.com/owncloud/ocis/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/thejerf/suture/v4" diff --git a/graph-explorer/pkg/command/server.go b/extensions/graph-explorer/pkg/command/server.go similarity index 81% rename from graph-explorer/pkg/command/server.go rename to extensions/graph-explorer/pkg/command/server.go index 711ae3a0b..093cbe60b 100644 --- a/graph-explorer/pkg/command/server.go +++ b/extensions/graph-explorer/pkg/command/server.go @@ -5,13 +5,13 @@ import ( "fmt" "github.com/oklog/run" - "github.com/owncloud/ocis/graph-explorer/pkg/config" - "github.com/owncloud/ocis/graph-explorer/pkg/config/parser" - "github.com/owncloud/ocis/graph-explorer/pkg/logging" - "github.com/owncloud/ocis/graph-explorer/pkg/metrics" - "github.com/owncloud/ocis/graph-explorer/pkg/server/debug" - "github.com/owncloud/ocis/graph-explorer/pkg/server/http" - "github.com/owncloud/ocis/graph-explorer/pkg/tracing" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config/parser" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/logging" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/metrics" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/server/debug" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/server/http" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/version" "github.com/urfave/cli/v2" ) diff --git a/extensions/graph-explorer/pkg/command/version.go b/extensions/graph-explorer/pkg/command/version.go new file mode 100644 index 000000000..a6e086632 --- /dev/null +++ b/extensions/graph-explorer/pkg/command/version.go @@ -0,0 +1,50 @@ +package command + +import ( + "fmt" + "os" + + "github.com/owncloud/ocis/ocis-pkg/registry" + "github.com/owncloud/ocis/ocis-pkg/version" + + tw "github.com/olekukonko/tablewriter" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" + "github.com/urfave/cli/v2" +) + +// Version prints the service versions of all running instances. +func Version(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "version", + Usage: "print the version of this binary and the running extension instances", + Category: "info", + Action: func(c *cli.Context) error { + fmt.Println("Version: " + version.String) + fmt.Printf("Compiled: %s\n", version.Compiled()) + fmt.Println("") + + reg := registry.GetRegistry() + services, err := reg.GetService(cfg.HTTP.Namespace + "." + cfg.Service.Name) + if err != nil { + fmt.Println(fmt.Errorf("could not get %s services from the registry: %v", cfg.Service.Name, err)) + return err + } + + if len(services) == 0 { + fmt.Println("No running " + cfg.Service.Name + " service found.") + return nil + } + + table := tw.NewWriter(os.Stdout) + table.SetHeader([]string{"Version", "Address", "Id"}) + table.SetAutoFormatHeaders(false) + for _, s := range services { + for _, n := range s.Nodes { + table.Append([]string{s.Version, n.Address, n.Id}) + } + } + table.Render() + return nil + }, + } +} diff --git a/graph-explorer/pkg/config/config.go b/extensions/graph-explorer/pkg/config/config.go similarity index 100% rename from graph-explorer/pkg/config/config.go rename to extensions/graph-explorer/pkg/config/config.go diff --git a/graph-explorer/pkg/config/debug.go b/extensions/graph-explorer/pkg/config/debug.go similarity index 100% rename from graph-explorer/pkg/config/debug.go rename to extensions/graph-explorer/pkg/config/debug.go diff --git a/graph-explorer/pkg/config/defaults/defaultconfig.go b/extensions/graph-explorer/pkg/config/defaults/defaultconfig.go similarity index 96% rename from graph-explorer/pkg/config/defaults/defaultconfig.go rename to extensions/graph-explorer/pkg/config/defaults/defaultconfig.go index 860d0fdf3..a343da50a 100644 --- a/graph-explorer/pkg/config/defaults/defaultconfig.go +++ b/extensions/graph-explorer/pkg/config/defaults/defaultconfig.go @@ -3,7 +3,7 @@ package defaults import ( "strings" - "github.com/owncloud/ocis/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" ) func FullDefaultConfig() *config.Config { diff --git a/graph-explorer/pkg/config/http.go b/extensions/graph-explorer/pkg/config/http.go similarity index 100% rename from graph-explorer/pkg/config/http.go rename to extensions/graph-explorer/pkg/config/http.go diff --git a/graph-explorer/pkg/config/log.go b/extensions/graph-explorer/pkg/config/log.go similarity index 100% rename from graph-explorer/pkg/config/log.go rename to extensions/graph-explorer/pkg/config/log.go diff --git a/store/pkg/config/parser/parse.go b/extensions/graph-explorer/pkg/config/parser/parse.go similarity index 83% rename from store/pkg/config/parser/parse.go rename to extensions/graph-explorer/pkg/config/parser/parse.go index 3538a608f..499fbb8f3 100644 --- a/store/pkg/config/parser/parse.go +++ b/extensions/graph-explorer/pkg/config/parser/parse.go @@ -3,9 +3,9 @@ package parser import ( "errors" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config/defaults" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/store/pkg/config" - "github.com/owncloud/ocis/store/pkg/config/defaults" "github.com/owncloud/ocis/ocis-pkg/config/envdecode" ) @@ -29,5 +29,6 @@ func ParseConfig(cfg *config.Config) error { // sanitize config defaults.Sanitize(cfg) + return nil } diff --git a/graph-explorer/pkg/config/service.go b/extensions/graph-explorer/pkg/config/service.go similarity index 100% rename from graph-explorer/pkg/config/service.go rename to extensions/graph-explorer/pkg/config/service.go diff --git a/graph-explorer/pkg/config/tracing.go b/extensions/graph-explorer/pkg/config/tracing.go similarity index 100% rename from graph-explorer/pkg/config/tracing.go rename to extensions/graph-explorer/pkg/config/tracing.go diff --git a/extensions/graph-explorer/pkg/logging/logging.go b/extensions/graph-explorer/pkg/logging/logging.go new file mode 100644 index 000000000..506cb623d --- /dev/null +++ b/extensions/graph-explorer/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/graph-explorer/pkg/metrics/metrics.go b/extensions/graph-explorer/pkg/metrics/metrics.go similarity index 100% rename from graph-explorer/pkg/metrics/metrics.go rename to extensions/graph-explorer/pkg/metrics/metrics.go diff --git a/extensions/graph-explorer/pkg/server/debug/option.go b/extensions/graph-explorer/pkg/server/debug/option.go new file mode 100644 index 000000000..8f8078e34 --- /dev/null +++ b/extensions/graph-explorer/pkg/server/debug/option.go @@ -0,0 +1,50 @@ +package debug + +import ( + "context" + + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// Option defines a single option function. +type Option func(o *Options) + +// Options defines the available options for this package. +type Options struct { + Logger log.Logger + Context context.Context + Config *config.Config +} + +// newOptions initializes the available default options. +func newOptions(opts ...Option) Options { + opt := Options{} + + for _, o := range opts { + o(&opt) + } + + return opt +} + +// Logger provides a function to set the logger option. +func Logger(val log.Logger) Option { + return func(o *Options) { + o.Logger = val + } +} + +// Context provides a function to set the context option. +func Context(val context.Context) Option { + return func(o *Options) { + o.Context = val + } +} + +// Config provides a function to set the config option. +func Config(val *config.Config) Option { + return func(o *Options) { + o.Config = val + } +} diff --git a/extensions/graph-explorer/pkg/server/debug/server.go b/extensions/graph-explorer/pkg/server/debug/server.go new file mode 100644 index 000000000..84ffb3caf --- /dev/null +++ b/extensions/graph-explorer/pkg/server/debug/server.go @@ -0,0 +1,59 @@ +package debug + +import ( + "io" + "net/http" + + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/service/debug" + "github.com/owncloud/ocis/ocis-pkg/version" +) + +// Server initializes the debug service and server. +func Server(opts ...Option) (*http.Server, error) { + options := newOptions(opts...) + + return debug.NewService( + debug.Logger(options.Logger), + debug.Name(options.Config.Service.Name), + debug.Version(version.String), + debug.Address(options.Config.Debug.Addr), + debug.Token(options.Config.Debug.Token), + debug.Pprof(options.Config.Debug.Pprof), + debug.Zpages(options.Config.Debug.Zpages), + debug.Health(health(options.Config)), + debug.Ready(ready(options.Config)), + ), nil +} + +// health implements the health check. +func health(cfg *config.Config) func(http.ResponseWriter, *http.Request) { + return func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/plain") + w.WriteHeader(http.StatusOK) + + // TODO: check if services are up and running + + _, err := io.WriteString(w, http.StatusText(http.StatusOK)) + // io.WriteString should not fail but if it does we want to know. + if err != nil { + panic(err) + } + } +} + +// ready implements the ready check. +func ready(cfg *config.Config) func(http.ResponseWriter, *http.Request) { + return func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/plain") + w.WriteHeader(http.StatusOK) + + // TODO: check if services are up and running + + _, err := io.WriteString(w, http.StatusText(http.StatusOK)) + // io.WriteString should not fail but if it does we want to know. + if err != nil { + panic(err) + } + } +} diff --git a/graph/pkg/server/http/option.go b/extensions/graph-explorer/pkg/server/http/option.go similarity index 91% rename from graph/pkg/server/http/option.go rename to extensions/graph-explorer/pkg/server/http/option.go index e1404d374..327f6968e 100644 --- a/graph/pkg/server/http/option.go +++ b/extensions/graph-explorer/pkg/server/http/option.go @@ -3,8 +3,8 @@ package http import ( "context" - "github.com/owncloud/ocis/graph/pkg/config" - "github.com/owncloud/ocis/graph/pkg/metrics" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/urfave/cli/v2" ) diff --git a/graph-explorer/pkg/server/http/server.go b/extensions/graph-explorer/pkg/server/http/server.go similarity index 94% rename from graph-explorer/pkg/server/http/server.go rename to extensions/graph-explorer/pkg/server/http/server.go index 33c85458e..3883399a6 100644 --- a/graph-explorer/pkg/server/http/server.go +++ b/extensions/graph-explorer/pkg/server/http/server.go @@ -2,7 +2,7 @@ package http import ( chimiddleware "github.com/go-chi/chi/v5/middleware" - svc "github.com/owncloud/ocis/graph-explorer/pkg/service/v0" + svc "github.com/owncloud/ocis/extensions/graph-explorer/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" "github.com/owncloud/ocis/ocis-pkg/version" diff --git a/graph-explorer/pkg/service/v0/instrument.go b/extensions/graph-explorer/pkg/service/v0/instrument.go similarity index 89% rename from graph-explorer/pkg/service/v0/instrument.go rename to extensions/graph-explorer/pkg/service/v0/instrument.go index 1a97f9046..72407096e 100644 --- a/graph-explorer/pkg/service/v0/instrument.go +++ b/extensions/graph-explorer/pkg/service/v0/instrument.go @@ -3,7 +3,7 @@ package svc import ( "net/http" - "github.com/owncloud/ocis/graph-explorer/pkg/metrics" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/metrics" ) // NewInstrument returns a service that instruments metrics. diff --git a/graph-explorer/pkg/service/v0/logging.go b/extensions/graph-explorer/pkg/service/v0/logging.go similarity index 100% rename from graph-explorer/pkg/service/v0/logging.go rename to extensions/graph-explorer/pkg/service/v0/logging.go diff --git a/graph-explorer/pkg/service/v0/option.go b/extensions/graph-explorer/pkg/service/v0/option.go similarity index 93% rename from graph-explorer/pkg/service/v0/option.go rename to extensions/graph-explorer/pkg/service/v0/option.go index 3207c74db..06a2b1fc7 100644 --- a/graph-explorer/pkg/service/v0/option.go +++ b/extensions/graph-explorer/pkg/service/v0/option.go @@ -3,7 +3,7 @@ package svc import ( "net/http" - "github.com/owncloud/ocis/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/graph-explorer/pkg/service/v0/service.go b/extensions/graph-explorer/pkg/service/v0/service.go similarity index 95% rename from graph-explorer/pkg/service/v0/service.go rename to extensions/graph-explorer/pkg/service/v0/service.go index d2d0820bd..cb1f210d9 100644 --- a/graph-explorer/pkg/service/v0/service.go +++ b/extensions/graph-explorer/pkg/service/v0/service.go @@ -7,8 +7,8 @@ import ( "strings" "github.com/go-chi/chi/v5" - "github.com/owncloud/ocis/graph-explorer/pkg/assets" - "github.com/owncloud/ocis/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/assets" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/graph-explorer/pkg/service/v0/tracing.go b/extensions/graph-explorer/pkg/service/v0/tracing.go similarity index 100% rename from graph-explorer/pkg/service/v0/tracing.go rename to extensions/graph-explorer/pkg/service/v0/tracing.go diff --git a/extensions/graph-explorer/pkg/tracing/tracing.go b/extensions/graph-explorer/pkg/tracing/tracing.go new file mode 100644 index 000000000..1825338f0 --- /dev/null +++ b/extensions/graph-explorer/pkg/tracing/tracing.go @@ -0,0 +1,23 @@ +package tracing + +import ( + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" + "go.opentelemetry.io/otel/trace" +) + +var ( + // TraceProvider is the global trace provider for the proxy service. + TraceProvider = trace.NewNoopTracerProvider() +) + +func Configure(cfg *config.Config) error { + var err error + if cfg.Tracing.Enabled { + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Endpoint, cfg.Tracing.Collector, cfg.Service.Name, cfg.Tracing.Type); err != nil { + return err + } + } + + return nil +} diff --git a/graph-explorer/reflex.conf b/extensions/graph-explorer/reflex.conf similarity index 100% rename from graph-explorer/reflex.conf rename to extensions/graph-explorer/reflex.conf diff --git a/graph/.dockerignore b/extensions/graph/.dockerignore similarity index 100% rename from graph/.dockerignore rename to extensions/graph/.dockerignore diff --git a/graph/Makefile b/extensions/graph/Makefile similarity index 82% rename from graph/Makefile rename to extensions/graph/Makefile index 40bb0caca..df59c1a1d 100644 --- a/graph/Makefile +++ b/extensions/graph/Makefile @@ -1,27 +1,27 @@ SHELL := bash NAME := graph -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ############ -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: $(MOCKERY) # CI runs ci-node-generate automatically before this target diff --git a/extensions/graph/cmd/graph/main.go b/extensions/graph/cmd/graph/main.go new file mode 100644 index 000000000..4f4377ad1 --- /dev/null +++ b/extensions/graph/cmd/graph/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/graph/pkg/command" + "github.com/owncloud/ocis/extensions/graph/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/graph/docker/Dockerfile.linux.amd64 b/extensions/graph/docker/Dockerfile.linux.amd64 similarity index 100% rename from graph/docker/Dockerfile.linux.amd64 rename to extensions/graph/docker/Dockerfile.linux.amd64 diff --git a/graph/docker/Dockerfile.linux.arm b/extensions/graph/docker/Dockerfile.linux.arm similarity index 100% rename from graph/docker/Dockerfile.linux.arm rename to extensions/graph/docker/Dockerfile.linux.arm diff --git a/graph/docker/Dockerfile.linux.arm64 b/extensions/graph/docker/Dockerfile.linux.arm64 similarity index 100% rename from graph/docker/Dockerfile.linux.arm64 rename to extensions/graph/docker/Dockerfile.linux.arm64 diff --git a/graph/docker/manifest.tmpl b/extensions/graph/docker/manifest.tmpl similarity index 100% rename from graph/docker/manifest.tmpl rename to extensions/graph/docker/manifest.tmpl diff --git a/graph/mocks/gateway_client.go b/extensions/graph/mocks/gateway_client.go similarity index 100% rename from graph/mocks/gateway_client.go rename to extensions/graph/mocks/gateway_client.go diff --git a/graph/mocks/http_client.go b/extensions/graph/mocks/http_client.go similarity index 100% rename from graph/mocks/http_client.go rename to extensions/graph/mocks/http_client.go diff --git a/graph/mocks/publisher.go b/extensions/graph/mocks/publisher.go similarity index 93% rename from graph/mocks/publisher.go rename to extensions/graph/mocks/publisher.go index 88c802e6d..e4cd64aaa 100644 --- a/graph/mocks/publisher.go +++ b/extensions/graph/mocks/publisher.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.9.4. DO NOT EDIT. +// Code generated by mockery v2.10.4. DO NOT EDIT. package mocks diff --git a/extensions/graph/pkg/command/health.go b/extensions/graph/pkg/command/health.go new file mode 100644 index 000000000..0de581298 --- /dev/null +++ b/extensions/graph/pkg/command/health.go @@ -0,0 +1,53 @@ +package command + +import ( + "fmt" + "net/http" + + "github.com/owncloud/ocis/extensions/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/config/parser" + "github.com/owncloud/ocis/extensions/graph/pkg/logging" + "github.com/urfave/cli/v2" +) + +// Health is the entrypoint for the health command. +func Health(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "health", + Usage: "check health status", + Category: "info", + Before: func(c *cli.Context) error { + return parser.ParseConfig(cfg) + }, + Action: func(c *cli.Context) error { + logger := logging.Configure(cfg.Service.Name, cfg.Log) + + resp, err := http.Get( + fmt.Sprintf( + "http://%s/healthz", + cfg.Debug.Addr, + ), + ) + + if err != nil { + logger.Fatal(). + Err(err). + Msg("Failed to request health check") + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + logger.Fatal(). + Int("code", resp.StatusCode). + Msg("Health seems to be in bad state") + } + + logger.Debug(). + Int("code", resp.StatusCode). + Msg("Health got a good state") + + return nil + }, + } +} diff --git a/graph/pkg/command/root.go b/extensions/graph/pkg/command/root.go similarity index 95% rename from graph/pkg/command/root.go rename to extensions/graph/pkg/command/root.go index 60c389880..ecfeb2d15 100644 --- a/graph/pkg/command/root.go +++ b/extensions/graph/pkg/command/root.go @@ -7,7 +7,7 @@ import ( "github.com/owncloud/ocis/ocis-pkg/clihelper" "github.com/thejerf/suture/v4" - "github.com/owncloud/ocis/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/config" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/urfave/cli/v2" ) diff --git a/graph/pkg/command/server.go b/extensions/graph/pkg/command/server.go similarity index 81% rename from graph/pkg/command/server.go rename to extensions/graph/pkg/command/server.go index 38c012a20..c7e3e317a 100644 --- a/graph/pkg/command/server.go +++ b/extensions/graph/pkg/command/server.go @@ -5,13 +5,13 @@ import ( "fmt" "github.com/oklog/run" - "github.com/owncloud/ocis/graph/pkg/config" - "github.com/owncloud/ocis/graph/pkg/config/parser" - "github.com/owncloud/ocis/graph/pkg/logging" - "github.com/owncloud/ocis/graph/pkg/metrics" - "github.com/owncloud/ocis/graph/pkg/server/debug" - "github.com/owncloud/ocis/graph/pkg/server/http" - "github.com/owncloud/ocis/graph/pkg/tracing" + "github.com/owncloud/ocis/extensions/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/config/parser" + "github.com/owncloud/ocis/extensions/graph/pkg/logging" + "github.com/owncloud/ocis/extensions/graph/pkg/metrics" + "github.com/owncloud/ocis/extensions/graph/pkg/server/debug" + "github.com/owncloud/ocis/extensions/graph/pkg/server/http" + "github.com/owncloud/ocis/extensions/graph/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/version" "github.com/urfave/cli/v2" ) diff --git a/graph/pkg/command/version.go b/extensions/graph/pkg/command/version.go similarity index 95% rename from graph/pkg/command/version.go rename to extensions/graph/pkg/command/version.go index 8e85a27dd..d7db81a43 100644 --- a/graph/pkg/command/version.go +++ b/extensions/graph/pkg/command/version.go @@ -8,7 +8,7 @@ import ( "github.com/owncloud/ocis/ocis-pkg/version" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/graph/pkg/config/config.go b/extensions/graph/pkg/config/config.go similarity index 100% rename from graph/pkg/config/config.go rename to extensions/graph/pkg/config/config.go diff --git a/graph/pkg/config/debug.go b/extensions/graph/pkg/config/debug.go similarity index 100% rename from graph/pkg/config/debug.go rename to extensions/graph/pkg/config/debug.go diff --git a/graph/pkg/config/defaults/defaultconfig.go b/extensions/graph/pkg/config/defaults/defaultconfig.go similarity index 98% rename from graph/pkg/config/defaults/defaultconfig.go rename to extensions/graph/pkg/config/defaults/defaultconfig.go index 7ea8774cf..49cd9916b 100644 --- a/graph/pkg/config/defaults/defaultconfig.go +++ b/extensions/graph/pkg/config/defaults/defaultconfig.go @@ -3,7 +3,7 @@ package defaults import ( "strings" - "github.com/owncloud/ocis/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/config" ) func DefaultConfig() *config.Config { diff --git a/graph/pkg/config/http.go b/extensions/graph/pkg/config/http.go similarity index 100% rename from graph/pkg/config/http.go rename to extensions/graph/pkg/config/http.go diff --git a/graph/pkg/config/log.go b/extensions/graph/pkg/config/log.go similarity index 100% rename from graph/pkg/config/log.go rename to extensions/graph/pkg/config/log.go diff --git a/extensions/graph/pkg/config/parser/parse.go b/extensions/graph/pkg/config/parser/parse.go new file mode 100644 index 000000000..cf4612cc8 --- /dev/null +++ b/extensions/graph/pkg/config/parser/parse.go @@ -0,0 +1,33 @@ +package parser + +import ( + "errors" + + "github.com/owncloud/ocis/extensions/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/config/defaults" + ociscfg "github.com/owncloud/ocis/ocis-pkg/config" + + "github.com/owncloud/ocis/ocis-pkg/config/envdecode" +) + +// ParseConfig loads accounts configuration from known paths. +func ParseConfig(cfg *config.Config) error { + _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) + if err != nil { + return err + } + + defaults.EnsureDefaults(cfg) + + // load all env variables relevant to the config in the current context. + if err := envdecode.Decode(cfg); err != nil { + // no environment variable set for this config is an expected "error" + if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { + return err + } + } + + defaults.Sanitize(cfg) + + return nil +} diff --git a/graph/pkg/config/reva.go b/extensions/graph/pkg/config/reva.go similarity index 100% rename from graph/pkg/config/reva.go rename to extensions/graph/pkg/config/reva.go diff --git a/graph/pkg/config/service.go b/extensions/graph/pkg/config/service.go similarity index 100% rename from graph/pkg/config/service.go rename to extensions/graph/pkg/config/service.go diff --git a/graph/pkg/config/tracing.go b/extensions/graph/pkg/config/tracing.go similarity index 100% rename from graph/pkg/config/tracing.go rename to extensions/graph/pkg/config/tracing.go diff --git a/graph/pkg/identity/backend.go b/extensions/graph/pkg/identity/backend.go similarity index 100% rename from graph/pkg/identity/backend.go rename to extensions/graph/pkg/identity/backend.go diff --git a/graph/pkg/identity/cs3.go b/extensions/graph/pkg/identity/cs3.go similarity index 98% rename from graph/pkg/identity/cs3.go rename to extensions/graph/pkg/identity/cs3.go index ac3aea6d0..e5c0760a6 100644 --- a/graph/pkg/identity/cs3.go +++ b/extensions/graph/pkg/identity/cs3.go @@ -10,8 +10,8 @@ import ( "github.com/cs3org/reva/v2/pkg/rgrpc/todo/pool" libregraph "github.com/owncloud/libre-graph-api-go" - "github.com/owncloud/ocis/graph/pkg/config" - "github.com/owncloud/ocis/graph/pkg/service/v0/errorcode" + "github.com/owncloud/ocis/extensions/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/service/v0/errorcode" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/graph/pkg/identity/ldap.go b/extensions/graph/pkg/identity/ldap.go similarity index 99% rename from graph/pkg/identity/ldap.go rename to extensions/graph/pkg/identity/ldap.go index 882ea91af..afbecb7ed 100644 --- a/graph/pkg/identity/ldap.go +++ b/extensions/graph/pkg/identity/ldap.go @@ -11,8 +11,8 @@ import ( ldapdn "github.com/libregraph/idm/pkg/ldapdn" libregraph "github.com/owncloud/libre-graph-api-go" - "github.com/owncloud/ocis/graph/pkg/config" - "github.com/owncloud/ocis/graph/pkg/service/v0/errorcode" + "github.com/owncloud/ocis/extensions/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/service/v0/errorcode" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/graph/pkg/identity/ldap/reconnect.go b/extensions/graph/pkg/identity/ldap/reconnect.go similarity index 100% rename from graph/pkg/identity/ldap/reconnect.go rename to extensions/graph/pkg/identity/ldap/reconnect.go diff --git a/graph/pkg/identity/ldap_test.go b/extensions/graph/pkg/identity/ldap_test.go similarity index 99% rename from graph/pkg/identity/ldap_test.go rename to extensions/graph/pkg/identity/ldap_test.go index baf1eae53..13937f66c 100644 --- a/graph/pkg/identity/ldap_test.go +++ b/extensions/graph/pkg/identity/ldap_test.go @@ -10,7 +10,7 @@ import ( "time" "github.com/go-ldap/ldap/v3" - "github.com/owncloud/ocis/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/extensions/graph/pkg/logging/logging.go b/extensions/graph/pkg/logging/logging.go new file mode 100644 index 000000000..97179a8ee --- /dev/null +++ b/extensions/graph/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/graph/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/graph/pkg/metrics/metrics.go b/extensions/graph/pkg/metrics/metrics.go similarity index 100% rename from graph/pkg/metrics/metrics.go rename to extensions/graph/pkg/metrics/metrics.go diff --git a/graph/pkg/middleware/auth.go b/extensions/graph/pkg/middleware/auth.go similarity index 97% rename from graph/pkg/middleware/auth.go rename to extensions/graph/pkg/middleware/auth.go index 275db9bc4..364cc6e3d 100644 --- a/graph/pkg/middleware/auth.go +++ b/extensions/graph/pkg/middleware/auth.go @@ -6,7 +6,7 @@ import ( "github.com/cs3org/reva/v2/pkg/auth/scope" revactx "github.com/cs3org/reva/v2/pkg/ctx" "github.com/cs3org/reva/v2/pkg/token/manager/jwt" - "github.com/owncloud/ocis/graph/pkg/service/v0/errorcode" + "github.com/owncloud/ocis/extensions/graph/pkg/service/v0/errorcode" "github.com/owncloud/ocis/ocis-pkg/account" "google.golang.org/grpc/metadata" ) diff --git a/graph/pkg/middleware/requireadmin.go b/extensions/graph/pkg/middleware/requireadmin.go similarity index 92% rename from graph/pkg/middleware/requireadmin.go rename to extensions/graph/pkg/middleware/requireadmin.go index b439c8887..8d637959f 100644 --- a/graph/pkg/middleware/requireadmin.go +++ b/extensions/graph/pkg/middleware/requireadmin.go @@ -4,8 +4,8 @@ import ( "net/http" revactx "github.com/cs3org/reva/v2/pkg/ctx" - accounts "github.com/owncloud/ocis/accounts/pkg/service/v0" - "github.com/owncloud/ocis/graph/pkg/service/v0/errorcode" + accounts "github.com/owncloud/ocis/extensions/accounts/pkg/service/v0" + "github.com/owncloud/ocis/extensions/graph/pkg/service/v0/errorcode" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/roles" ) diff --git a/extensions/graph/pkg/server/debug/option.go b/extensions/graph/pkg/server/debug/option.go new file mode 100644 index 000000000..eaf70143e --- /dev/null +++ b/extensions/graph/pkg/server/debug/option.go @@ -0,0 +1,50 @@ +package debug + +import ( + "context" + + "github.com/owncloud/ocis/extensions/graph/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// Option defines a single option function. +type Option func(o *Options) + +// Options defines the available options for this package. +type Options struct { + Logger log.Logger + Context context.Context + Config *config.Config +} + +// newOptions initializes the available default options. +func newOptions(opts ...Option) Options { + opt := Options{} + + for _, o := range opts { + o(&opt) + } + + return opt +} + +// Logger provides a function to set the logger option. +func Logger(val log.Logger) Option { + return func(o *Options) { + o.Logger = val + } +} + +// Context provides a function to set the context option. +func Context(val context.Context) Option { + return func(o *Options) { + o.Context = val + } +} + +// Config provides a function to set the config option. +func Config(val *config.Config) Option { + return func(o *Options) { + o.Config = val + } +} diff --git a/glauth/pkg/server/debug/server.go b/extensions/graph/pkg/server/debug/server.go similarity index 96% rename from glauth/pkg/server/debug/server.go rename to extensions/graph/pkg/server/debug/server.go index 5cc9fab7b..ae3c1e2dd 100644 --- a/glauth/pkg/server/debug/server.go +++ b/extensions/graph/pkg/server/debug/server.go @@ -4,7 +4,7 @@ import ( "io" "net/http" - "github.com/owncloud/ocis/glauth/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/config" "github.com/owncloud/ocis/ocis-pkg/service/debug" "github.com/owncloud/ocis/ocis-pkg/version" ) diff --git a/ocs/pkg/server/http/option.go b/extensions/graph/pkg/server/http/option.go similarity index 92% rename from ocs/pkg/server/http/option.go rename to extensions/graph/pkg/server/http/option.go index 3486588e3..920c7e4cc 100644 --- a/ocs/pkg/server/http/option.go +++ b/extensions/graph/pkg/server/http/option.go @@ -3,9 +3,9 @@ package http import ( "context" + "github.com/owncloud/ocis/extensions/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/ocs/pkg/config" - "github.com/owncloud/ocis/ocs/pkg/metrics" "github.com/urfave/cli/v2" ) @@ -14,12 +14,12 @@ type Option func(o *Options) // Options defines the available options for this package. type Options struct { - Namespace string Logger log.Logger Context context.Context Config *config.Config Metrics *metrics.Metrics Flags []cli.Flag + Namespace string } // newOptions initializes the available default options. diff --git a/graph/pkg/server/http/server.go b/extensions/graph/pkg/server/http/server.go similarity index 92% rename from graph/pkg/server/http/server.go rename to extensions/graph/pkg/server/http/server.go index 0456e1bcb..b9cfec656 100644 --- a/graph/pkg/server/http/server.go +++ b/extensions/graph/pkg/server/http/server.go @@ -4,8 +4,8 @@ import ( "github.com/asim/go-micro/plugins/events/natsjs/v4" "github.com/cs3org/reva/v2/pkg/events/server" chimiddleware "github.com/go-chi/chi/v5/middleware" - graphMiddleware "github.com/owncloud/ocis/graph/pkg/middleware" - svc "github.com/owncloud/ocis/graph/pkg/service/v0" + graphMiddleware "github.com/owncloud/ocis/extensions/graph/pkg/middleware" + svc "github.com/owncloud/ocis/extensions/graph/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/account" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" diff --git a/graph/pkg/service/v0/driveitems.go b/extensions/graph/pkg/service/v0/driveitems.go similarity index 99% rename from graph/pkg/service/v0/driveitems.go rename to extensions/graph/pkg/service/v0/driveitems.go index ce801aaf2..c449f9922 100644 --- a/graph/pkg/service/v0/driveitems.go +++ b/extensions/graph/pkg/service/v0/driveitems.go @@ -15,7 +15,7 @@ import ( "github.com/cs3org/reva/v2/pkg/utils/resourceid" "github.com/go-chi/render" libregraph "github.com/owncloud/libre-graph-api-go" - "github.com/owncloud/ocis/graph/pkg/service/v0/errorcode" + "github.com/owncloud/ocis/extensions/graph/pkg/service/v0/errorcode" ) // GetRootDriveChildren implements the Service interface. diff --git a/graph/pkg/service/v0/drives.go b/extensions/graph/pkg/service/v0/drives.go similarity index 99% rename from graph/pkg/service/v0/drives.go rename to extensions/graph/pkg/service/v0/drives.go index 0c1fda57c..02c3be146 100644 --- a/graph/pkg/service/v0/drives.go +++ b/extensions/graph/pkg/service/v0/drives.go @@ -23,11 +23,11 @@ import ( "github.com/go-chi/chi/v5" "github.com/go-chi/render" libregraph "github.com/owncloud/libre-graph-api-go" - "github.com/owncloud/ocis/graph/pkg/service/v0/errorcode" + "github.com/owncloud/ocis/extensions/graph/pkg/service/v0/errorcode" + settingsServiceExt "github.com/owncloud/ocis/extensions/settings/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/service/grpc" v0 "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - settingsServiceExt "github.com/owncloud/ocis/settings/pkg/service/v0" merrors "go-micro.dev/v4/errors" ) diff --git a/graph/pkg/service/v0/drives_test.go b/extensions/graph/pkg/service/v0/drives_test.go similarity index 100% rename from graph/pkg/service/v0/drives_test.go rename to extensions/graph/pkg/service/v0/drives_test.go diff --git a/graph/pkg/service/v0/errorcode/errorcode.go b/extensions/graph/pkg/service/v0/errorcode/errorcode.go similarity index 100% rename from graph/pkg/service/v0/errorcode/errorcode.go rename to extensions/graph/pkg/service/v0/errorcode/errorcode.go diff --git a/graph/pkg/service/v0/graph.go b/extensions/graph/pkg/service/v0/graph.go similarity index 97% rename from graph/pkg/service/v0/graph.go rename to extensions/graph/pkg/service/v0/graph.go index 3d2ef13b8..6389fc7db 100644 --- a/graph/pkg/service/v0/graph.go +++ b/extensions/graph/pkg/service/v0/graph.go @@ -9,8 +9,8 @@ import ( provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" "github.com/cs3org/reva/v2/pkg/events" "github.com/go-chi/chi/v5" - "github.com/owncloud/ocis/graph/pkg/config" - "github.com/owncloud/ocis/graph/pkg/identity" + "github.com/owncloud/ocis/extensions/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/identity" "github.com/owncloud/ocis/ocis-pkg/log" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" mevents "go-micro.dev/v4/events" diff --git a/graph/pkg/service/v0/graph_suite_test.go b/extensions/graph/pkg/service/v0/graph_suite_test.go similarity index 100% rename from graph/pkg/service/v0/graph_suite_test.go rename to extensions/graph/pkg/service/v0/graph_suite_test.go diff --git a/graph/pkg/service/v0/graph_test.go b/extensions/graph/pkg/service/v0/graph_test.go similarity index 97% rename from graph/pkg/service/v0/graph_test.go rename to extensions/graph/pkg/service/v0/graph_test.go index e63ca3d4e..fe328d93a 100644 --- a/graph/pkg/service/v0/graph_test.go +++ b/extensions/graph/pkg/service/v0/graph_test.go @@ -16,10 +16,10 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" libregraph "github.com/owncloud/libre-graph-api-go" - "github.com/owncloud/ocis/graph/mocks" - "github.com/owncloud/ocis/graph/pkg/config/defaults" - service "github.com/owncloud/ocis/graph/pkg/service/v0" - "github.com/owncloud/ocis/graph/pkg/service/v0/errorcode" + "github.com/owncloud/ocis/extensions/graph/mocks" + "github.com/owncloud/ocis/extensions/graph/pkg/config/defaults" + service "github.com/owncloud/ocis/extensions/graph/pkg/service/v0" + "github.com/owncloud/ocis/extensions/graph/pkg/service/v0/errorcode" "github.com/stretchr/testify/mock" ) diff --git a/graph/pkg/service/v0/groups.go b/extensions/graph/pkg/service/v0/groups.go similarity index 99% rename from graph/pkg/service/v0/groups.go rename to extensions/graph/pkg/service/v0/groups.go index 9e53b8cfd..363e36936 100644 --- a/graph/pkg/service/v0/groups.go +++ b/extensions/graph/pkg/service/v0/groups.go @@ -11,7 +11,7 @@ import ( "github.com/CiscoM31/godata" libregraph "github.com/owncloud/libre-graph-api-go" - "github.com/owncloud/ocis/graph/pkg/service/v0/errorcode" + "github.com/owncloud/ocis/extensions/graph/pkg/service/v0/errorcode" "github.com/cs3org/reva/v2/pkg/events" "github.com/go-chi/chi/v5" diff --git a/graph/pkg/service/v0/instrument.go b/extensions/graph/pkg/service/v0/instrument.go similarity index 97% rename from graph/pkg/service/v0/instrument.go rename to extensions/graph/pkg/service/v0/instrument.go index 96b0183e5..f651a6f5b 100644 --- a/graph/pkg/service/v0/instrument.go +++ b/extensions/graph/pkg/service/v0/instrument.go @@ -3,7 +3,7 @@ package svc import ( "net/http" - "github.com/owncloud/ocis/graph/pkg/metrics" + "github.com/owncloud/ocis/extensions/graph/pkg/metrics" ) // NewInstrument returns a service that instruments metrics. diff --git a/graph/pkg/service/v0/logging.go b/extensions/graph/pkg/service/v0/logging.go similarity index 100% rename from graph/pkg/service/v0/logging.go rename to extensions/graph/pkg/service/v0/logging.go diff --git a/graph/pkg/service/v0/net/headers.go b/extensions/graph/pkg/service/v0/net/headers.go similarity index 100% rename from graph/pkg/service/v0/net/headers.go rename to extensions/graph/pkg/service/v0/net/headers.go diff --git a/graph/pkg/service/v0/option.go b/extensions/graph/pkg/service/v0/option.go similarity index 97% rename from graph/pkg/service/v0/option.go rename to extensions/graph/pkg/service/v0/option.go index 39c0765ce..cf3c993e8 100644 --- a/graph/pkg/service/v0/option.go +++ b/extensions/graph/pkg/service/v0/option.go @@ -4,7 +4,7 @@ import ( "net/http" "github.com/cs3org/reva/v2/pkg/events" - "github.com/owncloud/ocis/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/roles" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" diff --git a/graph/pkg/service/v0/ordering.go b/extensions/graph/pkg/service/v0/ordering.go similarity index 100% rename from graph/pkg/service/v0/ordering.go rename to extensions/graph/pkg/service/v0/ordering.go diff --git a/graph/pkg/service/v0/service.go b/extensions/graph/pkg/service/v0/service.go similarity index 96% rename from graph/pkg/service/v0/service.go rename to extensions/graph/pkg/service/v0/service.go index 7833d4fd6..11fe37c2f 100644 --- a/graph/pkg/service/v0/service.go +++ b/extensions/graph/pkg/service/v0/service.go @@ -11,9 +11,9 @@ import ( "github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5/middleware" - "github.com/owncloud/ocis/graph/pkg/identity" - "github.com/owncloud/ocis/graph/pkg/identity/ldap" - graphm "github.com/owncloud/ocis/graph/pkg/middleware" + "github.com/owncloud/ocis/extensions/graph/pkg/identity" + "github.com/owncloud/ocis/extensions/graph/pkg/identity/ldap" + graphm "github.com/owncloud/ocis/extensions/graph/pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/account" opkgm "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/roles" diff --git a/graph/pkg/service/v0/service_test.go b/extensions/graph/pkg/service/v0/service_test.go similarity index 100% rename from graph/pkg/service/v0/service_test.go rename to extensions/graph/pkg/service/v0/service_test.go diff --git a/graph/pkg/service/v0/tracing.go b/extensions/graph/pkg/service/v0/tracing.go similarity index 100% rename from graph/pkg/service/v0/tracing.go rename to extensions/graph/pkg/service/v0/tracing.go diff --git a/graph/pkg/service/v0/users.go b/extensions/graph/pkg/service/v0/users.go similarity index 97% rename from graph/pkg/service/v0/users.go rename to extensions/graph/pkg/service/v0/users.go index d124da3fd..e35b632ed 100644 --- a/graph/pkg/service/v0/users.go +++ b/extensions/graph/pkg/service/v0/users.go @@ -16,10 +16,10 @@ import ( "github.com/go-chi/chi/v5" "github.com/go-chi/render" libregraph "github.com/owncloud/libre-graph-api-go" - "github.com/owncloud/ocis/graph/pkg/identity" - "github.com/owncloud/ocis/graph/pkg/service/v0/errorcode" + "github.com/owncloud/ocis/extensions/graph/pkg/identity" + "github.com/owncloud/ocis/extensions/graph/pkg/service/v0/errorcode" + settingssvc "github.com/owncloud/ocis/extensions/settings/pkg/service/v0" settings "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - settingssvc "github.com/owncloud/ocis/settings/pkg/service/v0" ) // GetMe implements the Service interface. diff --git a/graph/pkg/tracing/tracing.go b/extensions/graph/pkg/tracing/tracing.go similarity index 90% rename from graph/pkg/tracing/tracing.go rename to extensions/graph/pkg/tracing/tracing.go index 3f2d775a5..f43926d8c 100644 --- a/graph/pkg/tracing/tracing.go +++ b/extensions/graph/pkg/tracing/tracing.go @@ -1,7 +1,7 @@ package tracing import ( - "github.com/owncloud/ocis/graph/pkg/config" + "github.com/owncloud/ocis/extensions/graph/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "go.opentelemetry.io/otel/trace" ) diff --git a/graph/reflex.conf b/extensions/graph/reflex.conf similarity index 100% rename from graph/reflex.conf rename to extensions/graph/reflex.conf diff --git a/idm/Makefile b/extensions/idm/Makefile similarity index 77% rename from idm/Makefile rename to extensions/idm/Makefile index 4da8f773e..0d04550af 100644 --- a/idm/Makefile +++ b/extensions/idm/Makefile @@ -1,29 +1,29 @@ SHELL := bash -NAME := ocs +NAME := idm TAGS := disable_crypt -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ############ -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: # CI runs ci-node-generate automatically before this target diff --git a/glauth/cmd/glauth/main.go b/extensions/idm/cmd/idm/main.go similarity index 52% rename from glauth/cmd/glauth/main.go rename to extensions/idm/cmd/idm/main.go index 4ecc5b53d..53727af5b 100644 --- a/glauth/cmd/glauth/main.go +++ b/extensions/idm/cmd/idm/main.go @@ -3,8 +3,8 @@ package main import ( "os" - "github.com/owncloud/ocis/glauth/pkg/command" - "github.com/owncloud/ocis/glauth/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/idm/pkg/command" + "github.com/owncloud/ocis/extensions/idm/pkg/config/defaults" ) func main() { diff --git a/idm/idm.go b/extensions/idm/idm.go similarity index 100% rename from idm/idm.go rename to extensions/idm/idm.go diff --git a/idm/ldif/base.ldif.tmpl b/extensions/idm/ldif/base.ldif.tmpl similarity index 100% rename from idm/ldif/base.ldif.tmpl rename to extensions/idm/ldif/base.ldif.tmpl diff --git a/idm/ldif/demousers.ldif b/extensions/idm/ldif/demousers.ldif similarity index 100% rename from idm/ldif/demousers.ldif rename to extensions/idm/ldif/demousers.ldif diff --git a/graph-explorer/pkg/command/health.go b/extensions/idm/pkg/command/health.go similarity index 84% rename from graph-explorer/pkg/command/health.go rename to extensions/idm/pkg/command/health.go index b25e795c2..cc61b7c1d 100644 --- a/graph-explorer/pkg/command/health.go +++ b/extensions/idm/pkg/command/health.go @@ -4,9 +4,9 @@ import ( "fmt" "net/http" - "github.com/owncloud/ocis/graph-explorer/pkg/config" - "github.com/owncloud/ocis/graph-explorer/pkg/config/parser" - "github.com/owncloud/ocis/graph-explorer/pkg/logging" + "github.com/owncloud/ocis/extensions/idm/pkg/config" + "github.com/owncloud/ocis/extensions/idm/pkg/config/parser" + "github.com/owncloud/ocis/extensions/idm/pkg/logging" "github.com/urfave/cli/v2" ) diff --git a/idm/pkg/command/root.go b/extensions/idm/pkg/command/root.go similarity index 96% rename from idm/pkg/command/root.go rename to extensions/idm/pkg/command/root.go index 2be9e0a17..50f644434 100644 --- a/idm/pkg/command/root.go +++ b/extensions/idm/pkg/command/root.go @@ -4,7 +4,7 @@ import ( "context" "os" - "github.com/owncloud/ocis/idm/pkg/config" + "github.com/owncloud/ocis/extensions/idm/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/thejerf/suture/v4" diff --git a/idm/pkg/command/server.go b/extensions/idm/pkg/command/server.go similarity index 95% rename from idm/pkg/command/server.go rename to extensions/idm/pkg/command/server.go index 68a4fef9c..c63b0f2af 100644 --- a/idm/pkg/command/server.go +++ b/extensions/idm/pkg/command/server.go @@ -13,10 +13,10 @@ import ( "github.com/libregraph/idm/pkg/ldappassword" "github.com/libregraph/idm/pkg/ldbbolt" "github.com/libregraph/idm/server" - "github.com/owncloud/ocis/idm" - "github.com/owncloud/ocis/idm/pkg/config" - "github.com/owncloud/ocis/idm/pkg/config/parser" - "github.com/owncloud/ocis/idm/pkg/logging" + "github.com/owncloud/ocis/extensions/idm" + "github.com/owncloud/ocis/extensions/idm/pkg/config" + "github.com/owncloud/ocis/extensions/idm/pkg/config/parser" + "github.com/owncloud/ocis/extensions/idm/pkg/logging" pkgcrypto "github.com/owncloud/ocis/ocis-pkg/crypto" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/urfave/cli/v2" diff --git a/idm/pkg/command/version.go b/extensions/idm/pkg/command/version.go similarity index 88% rename from idm/pkg/command/version.go rename to extensions/idm/pkg/command/version.go index 4a6faa0c9..bb49863ba 100644 --- a/idm/pkg/command/version.go +++ b/extensions/idm/pkg/command/version.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/idm/pkg/config" + "github.com/owncloud/ocis/extensions/idm/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/idm/pkg/config/config.go b/extensions/idm/pkg/config/config.go similarity index 100% rename from idm/pkg/config/config.go rename to extensions/idm/pkg/config/config.go diff --git a/idm/pkg/config/debug.go b/extensions/idm/pkg/config/debug.go similarity index 100% rename from idm/pkg/config/debug.go rename to extensions/idm/pkg/config/debug.go diff --git a/idm/pkg/config/defaults/defaultconfig.go b/extensions/idm/pkg/config/defaults/defaultconfig.go similarity index 96% rename from idm/pkg/config/defaults/defaultconfig.go rename to extensions/idm/pkg/config/defaults/defaultconfig.go index 4945ac2e3..983db3c07 100644 --- a/idm/pkg/config/defaults/defaultconfig.go +++ b/extensions/idm/pkg/config/defaults/defaultconfig.go @@ -3,7 +3,7 @@ package defaults import ( "path" - "github.com/owncloud/ocis/idm/pkg/config" + "github.com/owncloud/ocis/extensions/idm/pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/defaults" ) diff --git a/idm/pkg/config/log.go b/extensions/idm/pkg/config/log.go similarity index 100% rename from idm/pkg/config/log.go rename to extensions/idm/pkg/config/log.go diff --git a/idm/pkg/config/parser/parse.go b/extensions/idm/pkg/config/parser/parse.go similarity index 85% rename from idm/pkg/config/parser/parse.go rename to extensions/idm/pkg/config/parser/parse.go index 9847623cf..0998543ad 100644 --- a/idm/pkg/config/parser/parse.go +++ b/extensions/idm/pkg/config/parser/parse.go @@ -3,8 +3,8 @@ package parser import ( "errors" - "github.com/owncloud/ocis/idm/pkg/config" - "github.com/owncloud/ocis/idm/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/idm/pkg/config" + "github.com/owncloud/ocis/extensions/idm/pkg/config/defaults" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/envdecode" diff --git a/idm/pkg/config/service.go b/extensions/idm/pkg/config/service.go similarity index 100% rename from idm/pkg/config/service.go rename to extensions/idm/pkg/config/service.go diff --git a/idm/pkg/config/tracing.go b/extensions/idm/pkg/config/tracing.go similarity index 100% rename from idm/pkg/config/tracing.go rename to extensions/idm/pkg/config/tracing.go diff --git a/accounts/pkg/logging/logging.go b/extensions/idm/pkg/logging/logging.go similarity index 86% rename from accounts/pkg/logging/logging.go rename to extensions/idm/pkg/logging/logging.go index 4836eaec4..9a957b589 100644 --- a/accounts/pkg/logging/logging.go +++ b/extensions/idm/pkg/logging/logging.go @@ -1,7 +1,7 @@ package logging import ( - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/idm/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/glauth/pkg/server/debug/option.go b/extensions/idm/pkg/server/debug/option.go similarity index 94% rename from glauth/pkg/server/debug/option.go rename to extensions/idm/pkg/server/debug/option.go index 7167499f3..e7ebae29f 100644 --- a/glauth/pkg/server/debug/option.go +++ b/extensions/idm/pkg/server/debug/option.go @@ -3,7 +3,7 @@ package debug import ( "context" - "github.com/owncloud/ocis/glauth/pkg/config" + "github.com/owncloud/ocis/extensions/idm/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/idm/pkg/server/debug/server.go b/extensions/idm/pkg/server/debug/server.go similarity index 96% rename from idm/pkg/server/debug/server.go rename to extensions/idm/pkg/server/debug/server.go index 426f95a62..af1160c2c 100644 --- a/idm/pkg/server/debug/server.go +++ b/extensions/idm/pkg/server/debug/server.go @@ -4,7 +4,7 @@ import ( "io" "net/http" - "github.com/owncloud/ocis/idm/pkg/config" + "github.com/owncloud/ocis/extensions/idm/pkg/config" "github.com/owncloud/ocis/ocis-pkg/service/debug" "github.com/owncloud/ocis/ocis-pkg/version" ) diff --git a/idp/.dockerignore b/extensions/idp/.dockerignore similarity index 100% rename from idp/.dockerignore rename to extensions/idp/.dockerignore diff --git a/idp/.env b/extensions/idp/.env similarity index 100% rename from idp/.env rename to extensions/idp/.env diff --git a/idp/.eslintignore b/extensions/idp/.eslintignore similarity index 100% rename from idp/.eslintignore rename to extensions/idp/.eslintignore diff --git a/idp/.eslintrc.json b/extensions/idp/.eslintrc.json similarity index 100% rename from idp/.eslintrc.json rename to extensions/idp/.eslintrc.json diff --git a/idp/.gitignore b/extensions/idp/.gitignore similarity index 100% rename from idp/.gitignore rename to extensions/idp/.gitignore diff --git a/idp/.yarn/releases/yarn-3.1.0.cjs b/extensions/idp/.yarn/releases/yarn-3.1.0.cjs similarity index 100% rename from idp/.yarn/releases/yarn-3.1.0.cjs rename to extensions/idp/.yarn/releases/yarn-3.1.0.cjs diff --git a/idp/.yarnrc.yml b/extensions/idp/.yarnrc.yml similarity index 100% rename from idp/.yarnrc.yml rename to extensions/idp/.yarnrc.yml diff --git a/idp/Makefile b/extensions/idp/Makefile similarity index 89% rename from idp/Makefile rename to extensions/idp/Makefile index c0c891992..425e6fe86 100644 --- a/idp/Makefile +++ b/extensions/idp/Makefile @@ -1,27 +1,27 @@ SHELL := bash NAME := idp -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ############ -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: # CI runs ci-node-generate automatically before this target diff --git a/idp/assets/identifier-registration.yaml b/extensions/idp/assets/identifier-registration.yaml similarity index 100% rename from idp/assets/identifier-registration.yaml rename to extensions/idp/assets/identifier-registration.yaml diff --git a/accounts/cmd/accounts/main.go b/extensions/idp/cmd/idp/main.go similarity index 52% rename from accounts/cmd/accounts/main.go rename to extensions/idp/cmd/idp/main.go index d7788426b..07489cb70 100644 --- a/accounts/cmd/accounts/main.go +++ b/extensions/idp/cmd/idp/main.go @@ -3,8 +3,8 @@ package main import ( "os" - "github.com/owncloud/ocis/accounts/pkg/command" - "github.com/owncloud/ocis/accounts/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/idp/pkg/command" + "github.com/owncloud/ocis/extensions/idp/pkg/config/defaults" ) func main() { diff --git a/idp/docker/Dockerfile.linux.amd64 b/extensions/idp/docker/Dockerfile.linux.amd64 similarity index 100% rename from idp/docker/Dockerfile.linux.amd64 rename to extensions/idp/docker/Dockerfile.linux.amd64 diff --git a/idp/docker/Dockerfile.linux.arm b/extensions/idp/docker/Dockerfile.linux.arm similarity index 100% rename from idp/docker/Dockerfile.linux.arm rename to extensions/idp/docker/Dockerfile.linux.arm diff --git a/idp/docker/Dockerfile.linux.arm64 b/extensions/idp/docker/Dockerfile.linux.arm64 similarity index 100% rename from idp/docker/Dockerfile.linux.arm64 rename to extensions/idp/docker/Dockerfile.linux.arm64 diff --git a/idp/docker/manifest.tmpl b/extensions/idp/docker/manifest.tmpl similarity index 100% rename from idp/docker/manifest.tmpl rename to extensions/idp/docker/manifest.tmpl diff --git a/idp/idp.go b/extensions/idp/idp.go similarity index 100% rename from idp/idp.go rename to extensions/idp/idp.go diff --git a/idp/package.json b/extensions/idp/package.json similarity index 100% rename from idp/package.json rename to extensions/idp/package.json diff --git a/idp/pkg/assets/option.go b/extensions/idp/pkg/assets/option.go similarity index 91% rename from idp/pkg/assets/option.go rename to extensions/idp/pkg/assets/option.go index e2b4e3a23..5fe2871d0 100644 --- a/idp/pkg/assets/option.go +++ b/extensions/idp/pkg/assets/option.go @@ -3,8 +3,8 @@ package assets import ( "net/http" - "github.com/owncloud/ocis/idp" - "github.com/owncloud/ocis/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp" + "github.com/owncloud/ocis/extensions/idp/pkg/config" "github.com/owncloud/ocis/ocis-pkg/assetsfs" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/accounts/pkg/command/health.go b/extensions/idp/pkg/command/health.go similarity index 84% rename from accounts/pkg/command/health.go rename to extensions/idp/pkg/command/health.go index bba020b88..cd282e8ba 100644 --- a/accounts/pkg/command/health.go +++ b/extensions/idp/pkg/command/health.go @@ -4,9 +4,9 @@ import ( "fmt" "net/http" - "github.com/owncloud/ocis/accounts/pkg/config" - "github.com/owncloud/ocis/accounts/pkg/config/parser" - "github.com/owncloud/ocis/accounts/pkg/logging" + "github.com/owncloud/ocis/extensions/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/config/parser" + "github.com/owncloud/ocis/extensions/idp/pkg/logging" "github.com/urfave/cli/v2" ) diff --git a/idp/pkg/command/root.go b/extensions/idp/pkg/command/root.go similarity index 96% rename from idp/pkg/command/root.go rename to extensions/idp/pkg/command/root.go index 787381c7e..120e84713 100644 --- a/idp/pkg/command/root.go +++ b/extensions/idp/pkg/command/root.go @@ -4,7 +4,7 @@ import ( "context" "os" - "github.com/owncloud/ocis/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/thejerf/suture/v4" diff --git a/idp/pkg/command/server.go b/extensions/idp/pkg/command/server.go similarity index 82% rename from idp/pkg/command/server.go rename to extensions/idp/pkg/command/server.go index c3bdfec70..c541245d0 100644 --- a/idp/pkg/command/server.go +++ b/extensions/idp/pkg/command/server.go @@ -5,13 +5,13 @@ import ( "fmt" "github.com/oklog/run" - "github.com/owncloud/ocis/idp/pkg/config" - "github.com/owncloud/ocis/idp/pkg/config/parser" - "github.com/owncloud/ocis/idp/pkg/logging" - "github.com/owncloud/ocis/idp/pkg/metrics" - "github.com/owncloud/ocis/idp/pkg/server/debug" - "github.com/owncloud/ocis/idp/pkg/server/http" - "github.com/owncloud/ocis/idp/pkg/tracing" + "github.com/owncloud/ocis/extensions/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/config/parser" + "github.com/owncloud/ocis/extensions/idp/pkg/logging" + "github.com/owncloud/ocis/extensions/idp/pkg/metrics" + "github.com/owncloud/ocis/extensions/idp/pkg/server/debug" + "github.com/owncloud/ocis/extensions/idp/pkg/server/http" + "github.com/owncloud/ocis/extensions/idp/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/version" "github.com/urfave/cli/v2" ) diff --git a/idp/pkg/command/version.go b/extensions/idp/pkg/command/version.go similarity index 96% rename from idp/pkg/command/version.go rename to extensions/idp/pkg/command/version.go index 22d4f4ce6..bcdea66df 100644 --- a/idp/pkg/command/version.go +++ b/extensions/idp/pkg/command/version.go @@ -8,7 +8,7 @@ import ( "github.com/owncloud/ocis/ocis-pkg/version" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/idp/pkg/config/config.go b/extensions/idp/pkg/config/config.go similarity index 100% rename from idp/pkg/config/config.go rename to extensions/idp/pkg/config/config.go diff --git a/idp/pkg/config/debug.go b/extensions/idp/pkg/config/debug.go similarity index 100% rename from idp/pkg/config/debug.go rename to extensions/idp/pkg/config/debug.go diff --git a/idp/pkg/config/defaults/defaultconfig.go b/extensions/idp/pkg/config/defaults/defaultconfig.go similarity index 98% rename from idp/pkg/config/defaults/defaultconfig.go rename to extensions/idp/pkg/config/defaults/defaultconfig.go index f35a70a6c..2be18b92a 100644 --- a/idp/pkg/config/defaults/defaultconfig.go +++ b/extensions/idp/pkg/config/defaults/defaultconfig.go @@ -4,7 +4,7 @@ import ( "path" "strings" - "github.com/owncloud/ocis/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/defaults" ) diff --git a/idp/pkg/config/http.go b/extensions/idp/pkg/config/http.go similarity index 100% rename from idp/pkg/config/http.go rename to extensions/idp/pkg/config/http.go diff --git a/idp/pkg/config/log.go b/extensions/idp/pkg/config/log.go similarity index 100% rename from idp/pkg/config/log.go rename to extensions/idp/pkg/config/log.go diff --git a/idp/pkg/config/parser/parse.go b/extensions/idp/pkg/config/parser/parse.go similarity index 85% rename from idp/pkg/config/parser/parse.go rename to extensions/idp/pkg/config/parser/parse.go index 07732d41e..101ea85bd 100644 --- a/idp/pkg/config/parser/parse.go +++ b/extensions/idp/pkg/config/parser/parse.go @@ -3,8 +3,8 @@ package parser import ( "errors" - "github.com/owncloud/ocis/idp/pkg/config" - "github.com/owncloud/ocis/idp/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/config/defaults" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/envdecode" diff --git a/idp/pkg/config/service.go b/extensions/idp/pkg/config/service.go similarity index 100% rename from idp/pkg/config/service.go rename to extensions/idp/pkg/config/service.go diff --git a/idp/pkg/config/tracing.go b/extensions/idp/pkg/config/tracing.go similarity index 100% rename from idp/pkg/config/tracing.go rename to extensions/idp/pkg/config/tracing.go diff --git a/audit/pkg/logging/logging.go b/extensions/idp/pkg/logging/logging.go similarity index 86% rename from audit/pkg/logging/logging.go rename to extensions/idp/pkg/logging/logging.go index 4b415776f..e6c0535d6 100644 --- a/audit/pkg/logging/logging.go +++ b/extensions/idp/pkg/logging/logging.go @@ -1,7 +1,7 @@ package logging import ( - "github.com/owncloud/ocis/audit/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/idp/pkg/metrics/metrics.go b/extensions/idp/pkg/metrics/metrics.go similarity index 100% rename from idp/pkg/metrics/metrics.go rename to extensions/idp/pkg/metrics/metrics.go diff --git a/idp/pkg/middleware/static.go b/extensions/idp/pkg/middleware/static.go similarity index 95% rename from idp/pkg/middleware/static.go rename to extensions/idp/pkg/middleware/static.go index 87c4de9fe..df659b874 100644 --- a/idp/pkg/middleware/static.go +++ b/extensions/idp/pkg/middleware/static.go @@ -4,7 +4,7 @@ import ( "net/http" "strings" - idpTracing "github.com/owncloud/ocis/idp/pkg/tracing" + idpTracing "github.com/owncloud/ocis/extensions/idp/pkg/tracing" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/codes" ) diff --git a/accounts/pkg/server/debug/option.go b/extensions/idp/pkg/server/debug/option.go similarity index 94% rename from accounts/pkg/server/debug/option.go rename to extensions/idp/pkg/server/debug/option.go index 0fd139d24..5b0eedf12 100644 --- a/accounts/pkg/server/debug/option.go +++ b/extensions/idp/pkg/server/debug/option.go @@ -3,7 +3,7 @@ package debug import ( "context" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/idp/pkg/server/debug/server.go b/extensions/idp/pkg/server/debug/server.go similarity index 97% rename from idp/pkg/server/debug/server.go rename to extensions/idp/pkg/server/debug/server.go index fab17857f..515ef645b 100644 --- a/idp/pkg/server/debug/server.go +++ b/extensions/idp/pkg/server/debug/server.go @@ -5,7 +5,7 @@ import ( "net/http" "net/url" - "github.com/owncloud/ocis/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/service/debug" "github.com/owncloud/ocis/ocis-pkg/shared" diff --git a/webdav/pkg/server/http/option.go b/extensions/idp/pkg/server/http/option.go similarity index 93% rename from webdav/pkg/server/http/option.go rename to extensions/idp/pkg/server/http/option.go index f18d3faf0..148c426d1 100644 --- a/webdav/pkg/server/http/option.go +++ b/extensions/idp/pkg/server/http/option.go @@ -3,9 +3,9 @@ package http import ( "context" + "github.com/owncloud/ocis/extensions/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/webdav/pkg/config" - "github.com/owncloud/ocis/webdav/pkg/metrics" "github.com/urfave/cli/v2" ) diff --git a/idp/pkg/server/http/server.go b/extensions/idp/pkg/server/http/server.go similarity index 97% rename from idp/pkg/server/http/server.go rename to extensions/idp/pkg/server/http/server.go index 08a1c550c..4f97249b1 100644 --- a/idp/pkg/server/http/server.go +++ b/extensions/idp/pkg/server/http/server.go @@ -5,7 +5,7 @@ import ( "os" chimiddleware "github.com/go-chi/chi/v5/middleware" - svc "github.com/owncloud/ocis/idp/pkg/service/v0" + svc "github.com/owncloud/ocis/extensions/idp/pkg/service/v0" pkgcrypto "github.com/owncloud/ocis/ocis-pkg/crypto" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" diff --git a/idp/pkg/service/v0/instrument.go b/extensions/idp/pkg/service/v0/instrument.go similarity index 89% rename from idp/pkg/service/v0/instrument.go rename to extensions/idp/pkg/service/v0/instrument.go index 1f5eac3e9..f3f587816 100644 --- a/idp/pkg/service/v0/instrument.go +++ b/extensions/idp/pkg/service/v0/instrument.go @@ -3,7 +3,7 @@ package svc import ( "net/http" - "github.com/owncloud/ocis/idp/pkg/metrics" + "github.com/owncloud/ocis/extensions/idp/pkg/metrics" ) // NewInstrument returns a service that instruments metrics. diff --git a/idp/pkg/service/v0/logging.go b/extensions/idp/pkg/service/v0/logging.go similarity index 100% rename from idp/pkg/service/v0/logging.go rename to extensions/idp/pkg/service/v0/logging.go diff --git a/idp/pkg/service/v0/option.go b/extensions/idp/pkg/service/v0/option.go similarity index 94% rename from idp/pkg/service/v0/option.go rename to extensions/idp/pkg/service/v0/option.go index 5ddc77d77..7cb1ba07e 100644 --- a/idp/pkg/service/v0/option.go +++ b/extensions/idp/pkg/service/v0/option.go @@ -3,7 +3,7 @@ package svc import ( "net/http" - "github.com/owncloud/ocis/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/idp/pkg/service/v0/service.go b/extensions/idp/pkg/service/v0/service.go similarity index 97% rename from idp/pkg/service/v0/service.go rename to extensions/idp/pkg/service/v0/service.go index 3d4bd80ee..71270f0c4 100644 --- a/idp/pkg/service/v0/service.go +++ b/extensions/idp/pkg/service/v0/service.go @@ -19,9 +19,9 @@ import ( ldapBackendSupport "github.com/libregraph/lico/bootstrap/backends/ldap" licoconfig "github.com/libregraph/lico/config" "github.com/libregraph/lico/server" - "github.com/owncloud/ocis/idp/pkg/assets" - "github.com/owncloud/ocis/idp/pkg/config" - "github.com/owncloud/ocis/idp/pkg/middleware" + "github.com/owncloud/ocis/extensions/idp/pkg/assets" + "github.com/owncloud/ocis/extensions/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/log" "stash.kopano.io/kgol/rndm" ) diff --git a/idp/pkg/service/v0/tracing.go b/extensions/idp/pkg/service/v0/tracing.go similarity index 100% rename from idp/pkg/service/v0/tracing.go rename to extensions/idp/pkg/service/v0/tracing.go diff --git a/idp/pkg/tracing/tracing.go b/extensions/idp/pkg/tracing/tracing.go similarity index 90% rename from idp/pkg/tracing/tracing.go rename to extensions/idp/pkg/tracing/tracing.go index 756b6210c..722d27b6a 100644 --- a/idp/pkg/tracing/tracing.go +++ b/extensions/idp/pkg/tracing/tracing.go @@ -1,7 +1,7 @@ package tracing import ( - "github.com/owncloud/ocis/idp/pkg/config" + "github.com/owncloud/ocis/extensions/idp/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "go.opentelemetry.io/otel/trace" ) diff --git a/idp/reflex.conf b/extensions/idp/reflex.conf similarity index 100% rename from idp/reflex.conf rename to extensions/idp/reflex.conf diff --git a/idp/scripts/build.js b/extensions/idp/scripts/build.js similarity index 100% rename from idp/scripts/build.js rename to extensions/idp/scripts/build.js diff --git a/idp/scripts/start.js b/extensions/idp/scripts/start.js similarity index 100% rename from idp/scripts/start.js rename to extensions/idp/scripts/start.js diff --git a/idp/scripts/test.js b/extensions/idp/scripts/test.js similarity index 100% rename from idp/scripts/test.js rename to extensions/idp/scripts/test.js diff --git a/idp/ui/i18n/Makefile b/extensions/idp/ui/i18n/Makefile similarity index 100% rename from idp/ui/i18n/Makefile rename to extensions/idp/ui/i18n/Makefile diff --git a/idp/ui/i18n/de.po b/extensions/idp/ui/i18n/de.po similarity index 100% rename from idp/ui/i18n/de.po rename to extensions/idp/ui/i18n/de.po diff --git a/idp/ui/i18n/es.po b/extensions/idp/ui/i18n/es.po similarity index 100% rename from idp/ui/i18n/es.po rename to extensions/idp/ui/i18n/es.po diff --git a/idp/ui/i18n/fr.po b/extensions/idp/ui/i18n/fr.po similarity index 100% rename from idp/ui/i18n/fr.po rename to extensions/idp/ui/i18n/fr.po diff --git a/idp/ui/i18n/hi.po b/extensions/idp/ui/i18n/hi.po similarity index 100% rename from idp/ui/i18n/hi.po rename to extensions/idp/ui/i18n/hi.po diff --git a/idp/ui/i18n/hr.po b/extensions/idp/ui/i18n/hr.po similarity index 100% rename from idp/ui/i18n/hr.po rename to extensions/idp/ui/i18n/hr.po diff --git a/idp/ui/i18n/hu.po b/extensions/idp/ui/i18n/hu.po similarity index 100% rename from idp/ui/i18n/hu.po rename to extensions/idp/ui/i18n/hu.po diff --git a/idp/ui/i18n/is.po b/extensions/idp/ui/i18n/is.po similarity index 100% rename from idp/ui/i18n/is.po rename to extensions/idp/ui/i18n/is.po diff --git a/idp/ui/i18n/it.po b/extensions/idp/ui/i18n/it.po similarity index 100% rename from idp/ui/i18n/it.po rename to extensions/idp/ui/i18n/it.po diff --git a/idp/ui/i18n/ja.po b/extensions/idp/ui/i18n/ja.po similarity index 100% rename from idp/ui/i18n/ja.po rename to extensions/idp/ui/i18n/ja.po diff --git a/idp/ui/i18n/konnect-identifier.pot b/extensions/idp/ui/i18n/konnect-identifier.pot similarity index 100% rename from idp/ui/i18n/konnect-identifier.pot rename to extensions/idp/ui/i18n/konnect-identifier.pot diff --git a/idp/ui/i18n/nb.po b/extensions/idp/ui/i18n/nb.po similarity index 100% rename from idp/ui/i18n/nb.po rename to extensions/idp/ui/i18n/nb.po diff --git a/idp/ui/i18n/nl.po b/extensions/idp/ui/i18n/nl.po similarity index 100% rename from idp/ui/i18n/nl.po rename to extensions/idp/ui/i18n/nl.po diff --git a/idp/ui/i18n/pl.po b/extensions/idp/ui/i18n/pl.po similarity index 100% rename from idp/ui/i18n/pl.po rename to extensions/idp/ui/i18n/pl.po diff --git a/idp/ui/i18n/pt_PT.po b/extensions/idp/ui/i18n/pt_PT.po similarity index 100% rename from idp/ui/i18n/pt_PT.po rename to extensions/idp/ui/i18n/pt_PT.po diff --git a/idp/ui/i18n/ru.po b/extensions/idp/ui/i18n/ru.po similarity index 100% rename from idp/ui/i18n/ru.po rename to extensions/idp/ui/i18n/ru.po diff --git a/idp/ui/i18n/sl.po b/extensions/idp/ui/i18n/sl.po similarity index 100% rename from idp/ui/i18n/sl.po rename to extensions/idp/ui/i18n/sl.po diff --git a/idp/ui/i18n/src/messages.json b/extensions/idp/ui/i18n/src/messages.json similarity index 100% rename from idp/ui/i18n/src/messages.json rename to extensions/idp/ui/i18n/src/messages.json diff --git a/idp/ui/public/index.html b/extensions/idp/ui/public/index.html similarity index 100% rename from idp/ui/public/index.html rename to extensions/idp/ui/public/index.html diff --git a/idp/ui/public/static/logo.svg b/extensions/idp/ui/public/static/logo.svg similarity index 100% rename from idp/ui/public/static/logo.svg rename to extensions/idp/ui/public/static/logo.svg diff --git a/idp/ui/src/Main.js b/extensions/idp/ui/src/Main.js similarity index 100% rename from idp/ui/src/Main.js rename to extensions/idp/ui/src/Main.js diff --git a/idp/ui/src/Main.test.js b/extensions/idp/ui/src/Main.test.js similarity index 100% rename from idp/ui/src/Main.test.js rename to extensions/idp/ui/src/Main.test.js diff --git a/idp/ui/src/Routes.js b/extensions/idp/ui/src/Routes.js similarity index 100% rename from idp/ui/src/Routes.js rename to extensions/idp/ui/src/Routes.js diff --git a/idp/ui/src/actions/common.js b/extensions/idp/ui/src/actions/common.js similarity index 100% rename from idp/ui/src/actions/common.js rename to extensions/idp/ui/src/actions/common.js diff --git a/idp/ui/src/actions/login.js b/extensions/idp/ui/src/actions/login.js similarity index 100% rename from idp/ui/src/actions/login.js rename to extensions/idp/ui/src/actions/login.js diff --git a/idp/ui/src/actions/types.js b/extensions/idp/ui/src/actions/types.js similarity index 100% rename from idp/ui/src/actions/types.js rename to extensions/idp/ui/src/actions/types.js diff --git a/idp/ui/src/actions/utils.js b/extensions/idp/ui/src/actions/utils.js similarity index 100% rename from idp/ui/src/actions/utils.js rename to extensions/idp/ui/src/actions/utils.js diff --git a/idp/ui/src/app.css b/extensions/idp/ui/src/app.css similarity index 100% rename from idp/ui/src/app.css rename to extensions/idp/ui/src/app.css diff --git a/idp/ui/src/app.js b/extensions/idp/ui/src/app.js similarity index 100% rename from idp/ui/src/app.js rename to extensions/idp/ui/src/app.js diff --git a/idp/ui/src/components/ClientDisplayName.js b/extensions/idp/ui/src/components/ClientDisplayName.js similarity index 100% rename from idp/ui/src/components/ClientDisplayName.js rename to extensions/idp/ui/src/components/ClientDisplayName.js diff --git a/idp/ui/src/components/Loading.js b/extensions/idp/ui/src/components/Loading.js similarity index 100% rename from idp/ui/src/components/Loading.js rename to extensions/idp/ui/src/components/Loading.js diff --git a/idp/ui/src/components/PrivateRoute.js b/extensions/idp/ui/src/components/PrivateRoute.js similarity index 100% rename from idp/ui/src/components/PrivateRoute.js rename to extensions/idp/ui/src/components/PrivateRoute.js diff --git a/idp/ui/src/components/RedirectWithQuery.js b/extensions/idp/ui/src/components/RedirectWithQuery.js similarity index 100% rename from idp/ui/src/components/RedirectWithQuery.js rename to extensions/idp/ui/src/components/RedirectWithQuery.js diff --git a/idp/ui/src/components/ResponsiveScreen.js b/extensions/idp/ui/src/components/ResponsiveScreen.js similarity index 100% rename from idp/ui/src/components/ResponsiveScreen.js rename to extensions/idp/ui/src/components/ResponsiveScreen.js diff --git a/idp/ui/src/components/ScopesList.js b/extensions/idp/ui/src/components/ScopesList.js similarity index 100% rename from idp/ui/src/components/ScopesList.js rename to extensions/idp/ui/src/components/ScopesList.js diff --git a/idp/ui/src/components/TextInput.js b/extensions/idp/ui/src/components/TextInput.js similarity index 100% rename from idp/ui/src/components/TextInput.js rename to extensions/idp/ui/src/components/TextInput.js diff --git a/idp/ui/src/containers/Goodbye/Goodbyescreen.js b/extensions/idp/ui/src/containers/Goodbye/Goodbyescreen.js similarity index 100% rename from idp/ui/src/containers/Goodbye/Goodbyescreen.js rename to extensions/idp/ui/src/containers/Goodbye/Goodbyescreen.js diff --git a/idp/ui/src/containers/Goodbye/index.js b/extensions/idp/ui/src/containers/Goodbye/index.js similarity index 100% rename from idp/ui/src/containers/Goodbye/index.js rename to extensions/idp/ui/src/containers/Goodbye/index.js diff --git a/idp/ui/src/containers/Login/Chooseaccount.js b/extensions/idp/ui/src/containers/Login/Chooseaccount.js similarity index 100% rename from idp/ui/src/containers/Login/Chooseaccount.js rename to extensions/idp/ui/src/containers/Login/Chooseaccount.js diff --git a/idp/ui/src/containers/Login/Consent.js b/extensions/idp/ui/src/containers/Login/Consent.js similarity index 100% rename from idp/ui/src/containers/Login/Consent.js rename to extensions/idp/ui/src/containers/Login/Consent.js diff --git a/idp/ui/src/containers/Login/Login.js b/extensions/idp/ui/src/containers/Login/Login.js similarity index 100% rename from idp/ui/src/containers/Login/Login.js rename to extensions/idp/ui/src/containers/Login/Login.js diff --git a/idp/ui/src/containers/Login/Loginscreen.js b/extensions/idp/ui/src/containers/Login/Loginscreen.js similarity index 100% rename from idp/ui/src/containers/Login/Loginscreen.js rename to extensions/idp/ui/src/containers/Login/Loginscreen.js diff --git a/idp/ui/src/containers/Login/index.js b/extensions/idp/ui/src/containers/Login/index.js similarity index 100% rename from idp/ui/src/containers/Login/index.js rename to extensions/idp/ui/src/containers/Login/index.js diff --git a/idp/ui/src/containers/Welcome/Welcomescreen.js b/extensions/idp/ui/src/containers/Welcome/Welcomescreen.js similarity index 100% rename from idp/ui/src/containers/Welcome/Welcomescreen.js rename to extensions/idp/ui/src/containers/Welcome/Welcomescreen.js diff --git a/idp/ui/src/containers/Welcome/index.js b/extensions/idp/ui/src/containers/Welcome/index.js similarity index 100% rename from idp/ui/src/containers/Welcome/index.js rename to extensions/idp/ui/src/containers/Welcome/index.js diff --git a/idp/ui/src/errors/index.js b/extensions/idp/ui/src/errors/index.js similarity index 100% rename from idp/ui/src/errors/index.js rename to extensions/idp/ui/src/errors/index.js diff --git a/idp/ui/src/images/background.jpg b/extensions/idp/ui/src/images/background.jpg similarity index 100% rename from idp/ui/src/images/background.jpg rename to extensions/idp/ui/src/images/background.jpg diff --git a/idp/ui/src/index.js b/extensions/idp/ui/src/index.js similarity index 100% rename from idp/ui/src/index.js rename to extensions/idp/ui/src/index.js diff --git a/idp/ui/src/locales/de.json b/extensions/idp/ui/src/locales/de.json similarity index 100% rename from idp/ui/src/locales/de.json rename to extensions/idp/ui/src/locales/de.json diff --git a/idp/ui/src/locales/es.json b/extensions/idp/ui/src/locales/es.json similarity index 100% rename from idp/ui/src/locales/es.json rename to extensions/idp/ui/src/locales/es.json diff --git a/idp/ui/src/locales/fr.json b/extensions/idp/ui/src/locales/fr.json similarity index 100% rename from idp/ui/src/locales/fr.json rename to extensions/idp/ui/src/locales/fr.json diff --git a/idp/ui/src/locales/hi.json b/extensions/idp/ui/src/locales/hi.json similarity index 100% rename from idp/ui/src/locales/hi.json rename to extensions/idp/ui/src/locales/hi.json diff --git a/idp/ui/src/locales/hr.json b/extensions/idp/ui/src/locales/hr.json similarity index 100% rename from idp/ui/src/locales/hr.json rename to extensions/idp/ui/src/locales/hr.json diff --git a/idp/ui/src/locales/hu.json b/extensions/idp/ui/src/locales/hu.json similarity index 100% rename from idp/ui/src/locales/hu.json rename to extensions/idp/ui/src/locales/hu.json diff --git a/idp/ui/src/locales/index.js b/extensions/idp/ui/src/locales/index.js similarity index 100% rename from idp/ui/src/locales/index.js rename to extensions/idp/ui/src/locales/index.js diff --git a/idp/ui/src/locales/is.json b/extensions/idp/ui/src/locales/is.json similarity index 100% rename from idp/ui/src/locales/is.json rename to extensions/idp/ui/src/locales/is.json diff --git a/idp/ui/src/locales/it.json b/extensions/idp/ui/src/locales/it.json similarity index 100% rename from idp/ui/src/locales/it.json rename to extensions/idp/ui/src/locales/it.json diff --git a/idp/ui/src/locales/ja.json b/extensions/idp/ui/src/locales/ja.json similarity index 100% rename from idp/ui/src/locales/ja.json rename to extensions/idp/ui/src/locales/ja.json diff --git a/idp/ui/src/locales/nb.json b/extensions/idp/ui/src/locales/nb.json similarity index 100% rename from idp/ui/src/locales/nb.json rename to extensions/idp/ui/src/locales/nb.json diff --git a/idp/ui/src/locales/nl.json b/extensions/idp/ui/src/locales/nl.json similarity index 100% rename from idp/ui/src/locales/nl.json rename to extensions/idp/ui/src/locales/nl.json diff --git a/idp/ui/src/locales/pl.json b/extensions/idp/ui/src/locales/pl.json similarity index 100% rename from idp/ui/src/locales/pl.json rename to extensions/idp/ui/src/locales/pl.json diff --git a/idp/ui/src/locales/pt_PT.json b/extensions/idp/ui/src/locales/pt_PT.json similarity index 100% rename from idp/ui/src/locales/pt_PT.json rename to extensions/idp/ui/src/locales/pt_PT.json diff --git a/idp/ui/src/locales/ru.json b/extensions/idp/ui/src/locales/ru.json similarity index 100% rename from idp/ui/src/locales/ru.json rename to extensions/idp/ui/src/locales/ru.json diff --git a/idp/ui/src/locales/sl.json b/extensions/idp/ui/src/locales/sl.json similarity index 100% rename from idp/ui/src/locales/sl.json rename to extensions/idp/ui/src/locales/sl.json diff --git a/idp/ui/src/models/hello.js b/extensions/idp/ui/src/models/hello.js similarity index 100% rename from idp/ui/src/models/hello.js rename to extensions/idp/ui/src/models/hello.js diff --git a/idp/ui/src/reducers/common.js b/extensions/idp/ui/src/reducers/common.js similarity index 100% rename from idp/ui/src/reducers/common.js rename to extensions/idp/ui/src/reducers/common.js diff --git a/idp/ui/src/reducers/index.js b/extensions/idp/ui/src/reducers/index.js similarity index 100% rename from idp/ui/src/reducers/index.js rename to extensions/idp/ui/src/reducers/index.js diff --git a/idp/ui/src/reducers/login.js b/extensions/idp/ui/src/reducers/login.js similarity index 100% rename from idp/ui/src/reducers/login.js rename to extensions/idp/ui/src/reducers/login.js diff --git a/idp/ui/src/store.js b/extensions/idp/ui/src/store.js similarity index 100% rename from idp/ui/src/store.js rename to extensions/idp/ui/src/store.js diff --git a/idp/ui/src/utils.js b/extensions/idp/ui/src/utils.js similarity index 100% rename from idp/ui/src/utils.js rename to extensions/idp/ui/src/utils.js diff --git a/idp/ui/src/version.js b/extensions/idp/ui/src/version.js similarity index 100% rename from idp/ui/src/version.js rename to extensions/idp/ui/src/version.js diff --git a/idp/ui_config/env.js b/extensions/idp/ui_config/env.js similarity index 100% rename from idp/ui_config/env.js rename to extensions/idp/ui_config/env.js diff --git a/idp/ui_config/jest/cssTransform.js b/extensions/idp/ui_config/jest/cssTransform.js similarity index 100% rename from idp/ui_config/jest/cssTransform.js rename to extensions/idp/ui_config/jest/cssTransform.js diff --git a/idp/ui_config/jest/fileTransform.js b/extensions/idp/ui_config/jest/fileTransform.js similarity index 100% rename from idp/ui_config/jest/fileTransform.js rename to extensions/idp/ui_config/jest/fileTransform.js diff --git a/idp/ui_config/modules.js b/extensions/idp/ui_config/modules.js similarity index 100% rename from idp/ui_config/modules.js rename to extensions/idp/ui_config/modules.js diff --git a/idp/ui_config/paths.js b/extensions/idp/ui_config/paths.js similarity index 100% rename from idp/ui_config/paths.js rename to extensions/idp/ui_config/paths.js diff --git a/idp/ui_config/pnpTs.js b/extensions/idp/ui_config/pnpTs.js similarity index 100% rename from idp/ui_config/pnpTs.js rename to extensions/idp/ui_config/pnpTs.js diff --git a/idp/ui_config/webpack.config.js b/extensions/idp/ui_config/webpack.config.js similarity index 100% rename from idp/ui_config/webpack.config.js rename to extensions/idp/ui_config/webpack.config.js diff --git a/idp/ui_config/webpackDevServer.config.js b/extensions/idp/ui_config/webpackDevServer.config.js similarity index 100% rename from idp/ui_config/webpackDevServer.config.js rename to extensions/idp/ui_config/webpackDevServer.config.js diff --git a/idp/yarn.lock b/extensions/idp/yarn.lock similarity index 100% rename from idp/yarn.lock rename to extensions/idp/yarn.lock diff --git a/extensions/nats/cmd/nats/main.go b/extensions/nats/cmd/nats/main.go new file mode 100644 index 000000000..f0bab9d6a --- /dev/null +++ b/extensions/nats/cmd/nats/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/nats/pkg/command" + "github.com/owncloud/ocis/extensions/nats/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/nats/pkg/command/health.go b/extensions/nats/pkg/command/health.go similarity index 85% rename from nats/pkg/command/health.go rename to extensions/nats/pkg/command/health.go index e81307406..9a211848f 100644 --- a/nats/pkg/command/health.go +++ b/extensions/nats/pkg/command/health.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/nats/pkg/config" + "github.com/owncloud/ocis/extensions/nats/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/nats/pkg/command/root.go b/extensions/nats/pkg/command/root.go similarity index 95% rename from nats/pkg/command/root.go rename to extensions/nats/pkg/command/root.go index d21919a55..44e27d167 100644 --- a/nats/pkg/command/root.go +++ b/extensions/nats/pkg/command/root.go @@ -4,7 +4,7 @@ import ( "context" "os" - "github.com/owncloud/ocis/nats/pkg/config" + "github.com/owncloud/ocis/extensions/nats/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/thejerf/suture/v4" diff --git a/nats/pkg/command/server.go b/extensions/nats/pkg/command/server.go similarity index 85% rename from nats/pkg/command/server.go rename to extensions/nats/pkg/command/server.go index 8a46c2125..79f3f7f44 100644 --- a/nats/pkg/command/server.go +++ b/extensions/nats/pkg/command/server.go @@ -6,10 +6,10 @@ import ( "github.com/oklog/run" - "github.com/owncloud/ocis/nats/pkg/config" - "github.com/owncloud/ocis/nats/pkg/config/parser" - "github.com/owncloud/ocis/nats/pkg/logging" - "github.com/owncloud/ocis/nats/pkg/server/nats" + "github.com/owncloud/ocis/extensions/nats/pkg/config" + "github.com/owncloud/ocis/extensions/nats/pkg/config/parser" + "github.com/owncloud/ocis/extensions/nats/pkg/logging" + "github.com/owncloud/ocis/extensions/nats/pkg/server/nats" "github.com/urfave/cli/v2" ) diff --git a/audit/pkg/command/version.go b/extensions/nats/pkg/command/version.go similarity index 88% rename from audit/pkg/command/version.go rename to extensions/nats/pkg/command/version.go index db018de57..f310fc76a 100644 --- a/audit/pkg/command/version.go +++ b/extensions/nats/pkg/command/version.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/audit/pkg/config" + "github.com/owncloud/ocis/extensions/nats/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/nats/pkg/config/config.go b/extensions/nats/pkg/config/config.go similarity index 100% rename from nats/pkg/config/config.go rename to extensions/nats/pkg/config/config.go diff --git a/nats/pkg/config/debug.go b/extensions/nats/pkg/config/debug.go similarity index 100% rename from nats/pkg/config/debug.go rename to extensions/nats/pkg/config/debug.go diff --git a/nats/pkg/config/defaults/defaultconfig.go b/extensions/nats/pkg/config/defaults/defaultconfig.go similarity index 95% rename from nats/pkg/config/defaults/defaultconfig.go rename to extensions/nats/pkg/config/defaults/defaultconfig.go index d7a37996d..f9435ff4d 100644 --- a/nats/pkg/config/defaults/defaultconfig.go +++ b/extensions/nats/pkg/config/defaults/defaultconfig.go @@ -3,7 +3,7 @@ package defaults import ( "path" - "github.com/owncloud/ocis/nats/pkg/config" + "github.com/owncloud/ocis/extensions/nats/pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/defaults" ) diff --git a/nats/pkg/config/log.go b/extensions/nats/pkg/config/log.go similarity index 100% rename from nats/pkg/config/log.go rename to extensions/nats/pkg/config/log.go diff --git a/audit/pkg/config/parser/parse.go b/extensions/nats/pkg/config/parser/parse.go similarity index 85% rename from audit/pkg/config/parser/parse.go rename to extensions/nats/pkg/config/parser/parse.go index 51be3a53c..2a427a3bd 100644 --- a/audit/pkg/config/parser/parse.go +++ b/extensions/nats/pkg/config/parser/parse.go @@ -3,8 +3,8 @@ package parser import ( "errors" - "github.com/owncloud/ocis/audit/pkg/config" - "github.com/owncloud/ocis/audit/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/nats/pkg/config" + "github.com/owncloud/ocis/extensions/nats/pkg/config/defaults" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/envdecode" diff --git a/nats/pkg/config/service.go b/extensions/nats/pkg/config/service.go similarity index 100% rename from nats/pkg/config/service.go rename to extensions/nats/pkg/config/service.go diff --git a/extensions/nats/pkg/logging/logging.go b/extensions/nats/pkg/logging/logging.go new file mode 100644 index 000000000..9fe01c4ee --- /dev/null +++ b/extensions/nats/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/nats/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/nats/pkg/logging/nats.go b/extensions/nats/pkg/logging/nats.go similarity index 100% rename from nats/pkg/logging/nats.go rename to extensions/nats/pkg/logging/nats.go diff --git a/nats/pkg/server/nats/nats.go b/extensions/nats/pkg/server/nats/nats.go similarity index 100% rename from nats/pkg/server/nats/nats.go rename to extensions/nats/pkg/server/nats/nats.go diff --git a/nats/pkg/server/nats/options.go b/extensions/nats/pkg/server/nats/options.go similarity index 100% rename from nats/pkg/server/nats/options.go rename to extensions/nats/pkg/server/nats/options.go diff --git a/extensions/notifications/cmd/notifications/main.go b/extensions/notifications/cmd/notifications/main.go new file mode 100644 index 000000000..1ce61dec5 --- /dev/null +++ b/extensions/notifications/cmd/notifications/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/notifications/pkg/command" + "github.com/owncloud/ocis/extensions/notifications/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/notifications/pkg/channels/channels.go b/extensions/notifications/pkg/channels/channels.go similarity index 98% rename from notifications/pkg/channels/channels.go rename to extensions/notifications/pkg/channels/channels.go index f13914da4..2d6d9203e 100644 --- a/notifications/pkg/channels/channels.go +++ b/extensions/notifications/pkg/channels/channels.go @@ -9,7 +9,7 @@ import ( groups "github.com/cs3org/go-cs3apis/cs3/identity/group/v1beta1" rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" "github.com/cs3org/reva/v2/pkg/rgrpc/todo/pool" - "github.com/owncloud/ocis/notifications/pkg/config" + "github.com/owncloud/ocis/extensions/notifications/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/pkg/errors" ) diff --git a/audit/pkg/command/health.go b/extensions/notifications/pkg/command/health.go similarity index 83% rename from audit/pkg/command/health.go rename to extensions/notifications/pkg/command/health.go index 4dbaa30fb..bbaffa27e 100644 --- a/audit/pkg/command/health.go +++ b/extensions/notifications/pkg/command/health.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/audit/pkg/config" + "github.com/owncloud/ocis/extensions/notifications/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/notifications/pkg/command/root.go b/extensions/notifications/pkg/command/root.go similarity index 95% rename from notifications/pkg/command/root.go rename to extensions/notifications/pkg/command/root.go index 805d8cec3..7a38a24d4 100644 --- a/notifications/pkg/command/root.go +++ b/extensions/notifications/pkg/command/root.go @@ -4,7 +4,7 @@ import ( "context" "os" - "github.com/owncloud/ocis/notifications/pkg/config" + "github.com/owncloud/ocis/extensions/notifications/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/thejerf/suture/v4" diff --git a/notifications/pkg/command/server.go b/extensions/notifications/pkg/command/server.go similarity index 78% rename from notifications/pkg/command/server.go rename to extensions/notifications/pkg/command/server.go index df4c49b69..ad7eda613 100644 --- a/notifications/pkg/command/server.go +++ b/extensions/notifications/pkg/command/server.go @@ -6,11 +6,11 @@ import ( "github.com/asim/go-micro/plugins/events/natsjs/v4" "github.com/cs3org/reva/v2/pkg/events" "github.com/cs3org/reva/v2/pkg/events/server" - "github.com/owncloud/ocis/notifications/pkg/channels" - "github.com/owncloud/ocis/notifications/pkg/config" - "github.com/owncloud/ocis/notifications/pkg/config/parser" - "github.com/owncloud/ocis/notifications/pkg/logging" - "github.com/owncloud/ocis/notifications/pkg/service" + "github.com/owncloud/ocis/extensions/notifications/pkg/channels" + "github.com/owncloud/ocis/extensions/notifications/pkg/config" + "github.com/owncloud/ocis/extensions/notifications/pkg/config/parser" + "github.com/owncloud/ocis/extensions/notifications/pkg/logging" + "github.com/owncloud/ocis/extensions/notifications/pkg/service" "github.com/urfave/cli/v2" ) diff --git a/notifications/pkg/command/version.go b/extensions/notifications/pkg/command/version.go similarity index 86% rename from notifications/pkg/command/version.go rename to extensions/notifications/pkg/command/version.go index f2d47a569..2b635d640 100644 --- a/notifications/pkg/command/version.go +++ b/extensions/notifications/pkg/command/version.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/notifications/pkg/config" + "github.com/owncloud/ocis/extensions/notifications/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/notifications/pkg/config/config.go b/extensions/notifications/pkg/config/config.go similarity index 100% rename from notifications/pkg/config/config.go rename to extensions/notifications/pkg/config/config.go diff --git a/notifications/pkg/config/debug.go b/extensions/notifications/pkg/config/debug.go similarity index 100% rename from notifications/pkg/config/debug.go rename to extensions/notifications/pkg/config/debug.go diff --git a/notifications/pkg/config/defaults/defaultconfig.go b/extensions/notifications/pkg/config/defaults/defaultconfig.go similarity index 94% rename from notifications/pkg/config/defaults/defaultconfig.go rename to extensions/notifications/pkg/config/defaults/defaultconfig.go index c2cfa8334..19c3cc2df 100644 --- a/notifications/pkg/config/defaults/defaultconfig.go +++ b/extensions/notifications/pkg/config/defaults/defaultconfig.go @@ -1,6 +1,6 @@ package defaults -import "github.com/owncloud/ocis/notifications/pkg/config" +import "github.com/owncloud/ocis/extensions/notifications/pkg/config" func FullDefaultConfig() *config.Config { cfg := DefaultConfig() diff --git a/notifications/pkg/config/log.go b/extensions/notifications/pkg/config/log.go similarity index 100% rename from notifications/pkg/config/log.go rename to extensions/notifications/pkg/config/log.go diff --git a/extensions/notifications/pkg/config/parser/parse.go b/extensions/notifications/pkg/config/parser/parse.go new file mode 100644 index 000000000..2a4876a33 --- /dev/null +++ b/extensions/notifications/pkg/config/parser/parse.go @@ -0,0 +1,33 @@ +package parser + +import ( + "errors" + + "github.com/owncloud/ocis/extensions/notifications/pkg/config" + "github.com/owncloud/ocis/extensions/notifications/pkg/config/defaults" + ociscfg "github.com/owncloud/ocis/ocis-pkg/config" + + "github.com/owncloud/ocis/ocis-pkg/config/envdecode" +) + +// ParseConfig loads accounts configuration from known paths. +func ParseConfig(cfg *config.Config) error { + _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) + if err != nil { + return err + } + + defaults.EnsureDefaults(cfg) + + // load all env variables relevant to the config in the current context. + if err := envdecode.Decode(cfg); err != nil { + // no environment variable set for this config is an expected "error" + if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { + return err + } + } + + defaults.Sanitize(cfg) + + return nil +} diff --git a/notifications/pkg/config/service.go b/extensions/notifications/pkg/config/service.go similarity index 100% rename from notifications/pkg/config/service.go rename to extensions/notifications/pkg/config/service.go diff --git a/extensions/notifications/pkg/logging/logging.go b/extensions/notifications/pkg/logging/logging.go new file mode 100644 index 000000000..72a752311 --- /dev/null +++ b/extensions/notifications/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/notifications/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/notifications/pkg/service/service.go b/extensions/notifications/pkg/service/service.go similarity index 95% rename from notifications/pkg/service/service.go rename to extensions/notifications/pkg/service/service.go index 970052b3d..09414a1b7 100644 --- a/notifications/pkg/service/service.go +++ b/extensions/notifications/pkg/service/service.go @@ -6,7 +6,7 @@ import ( "syscall" "github.com/cs3org/reva/v2/pkg/events" - "github.com/owncloud/ocis/notifications/pkg/channels" + "github.com/owncloud/ocis/extensions/notifications/pkg/channels" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/ocs/.dockerignore b/extensions/ocs/.dockerignore similarity index 100% rename from ocs/.dockerignore rename to extensions/ocs/.dockerignore diff --git a/ocs/Makefile b/extensions/ocs/Makefile similarity index 78% rename from ocs/Makefile rename to extensions/ocs/Makefile index ba3cb5065..51243d83f 100644 --- a/ocs/Makefile +++ b/extensions/ocs/Makefile @@ -1,27 +1,27 @@ SHELL := bash NAME := ocs -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ############ -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: # CI runs ci-node-generate automatically before this target diff --git a/graph-explorer/cmd/graph-explorer/main.go b/extensions/ocs/cmd/ocs/main.go similarity index 52% rename from graph-explorer/cmd/graph-explorer/main.go rename to extensions/ocs/cmd/ocs/main.go index aca5c050f..2a4d9bfdb 100644 --- a/graph-explorer/cmd/graph-explorer/main.go +++ b/extensions/ocs/cmd/ocs/main.go @@ -3,8 +3,8 @@ package main import ( "os" - "github.com/owncloud/ocis/graph-explorer/pkg/command" - "github.com/owncloud/ocis/graph-explorer/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/ocs/pkg/command" + "github.com/owncloud/ocis/extensions/ocs/pkg/config/defaults" ) func main() { diff --git a/ocs/config/.gitignore b/extensions/ocs/config/.gitignore similarity index 100% rename from ocs/config/.gitignore rename to extensions/ocs/config/.gitignore diff --git a/ocs/docker/Dockerfile.linux.amd64 b/extensions/ocs/docker/Dockerfile.linux.amd64 similarity index 100% rename from ocs/docker/Dockerfile.linux.amd64 rename to extensions/ocs/docker/Dockerfile.linux.amd64 diff --git a/ocs/docker/Dockerfile.linux.arm b/extensions/ocs/docker/Dockerfile.linux.arm similarity index 100% rename from ocs/docker/Dockerfile.linux.arm rename to extensions/ocs/docker/Dockerfile.linux.arm diff --git a/ocs/docker/Dockerfile.linux.arm64 b/extensions/ocs/docker/Dockerfile.linux.arm64 similarity index 100% rename from ocs/docker/Dockerfile.linux.arm64 rename to extensions/ocs/docker/Dockerfile.linux.arm64 diff --git a/ocs/docker/manifest.tmpl b/extensions/ocs/docker/manifest.tmpl similarity index 100% rename from ocs/docker/manifest.tmpl rename to extensions/ocs/docker/manifest.tmpl diff --git a/graph/pkg/command/health.go b/extensions/ocs/pkg/command/health.go similarity index 84% rename from graph/pkg/command/health.go rename to extensions/ocs/pkg/command/health.go index 27c8ef9e9..515f38408 100644 --- a/graph/pkg/command/health.go +++ b/extensions/ocs/pkg/command/health.go @@ -4,9 +4,9 @@ import ( "fmt" "net/http" - "github.com/owncloud/ocis/graph/pkg/config" - "github.com/owncloud/ocis/graph/pkg/config/parser" - "github.com/owncloud/ocis/graph/pkg/logging" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" + "github.com/owncloud/ocis/extensions/ocs/pkg/config/parser" + "github.com/owncloud/ocis/extensions/ocs/pkg/logging" "github.com/urfave/cli/v2" ) diff --git a/ocs/pkg/command/root.go b/extensions/ocs/pkg/command/root.go similarity index 96% rename from ocs/pkg/command/root.go rename to extensions/ocs/pkg/command/root.go index cac620e67..61b65c748 100644 --- a/ocs/pkg/command/root.go +++ b/extensions/ocs/pkg/command/root.go @@ -4,9 +4,9 @@ import ( "context" "os" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/ocs/pkg/config" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/ocs/pkg/command/server.go b/extensions/ocs/pkg/command/server.go similarity index 82% rename from ocs/pkg/command/server.go rename to extensions/ocs/pkg/command/server.go index d8d0acfe4..0b88c9972 100644 --- a/ocs/pkg/command/server.go +++ b/extensions/ocs/pkg/command/server.go @@ -4,16 +4,16 @@ import ( "context" "fmt" + "github.com/owncloud/ocis/extensions/ocs/pkg/config/parser" + "github.com/owncloud/ocis/extensions/ocs/pkg/logging" + "github.com/owncloud/ocis/extensions/ocs/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/ocs/pkg/config/parser" - "github.com/owncloud/ocis/ocs/pkg/logging" - "github.com/owncloud/ocis/ocs/pkg/tracing" "github.com/oklog/run" - "github.com/owncloud/ocis/ocs/pkg/config" - "github.com/owncloud/ocis/ocs/pkg/metrics" - "github.com/owncloud/ocis/ocs/pkg/server/debug" - "github.com/owncloud/ocis/ocs/pkg/server/http" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" + "github.com/owncloud/ocis/extensions/ocs/pkg/metrics" + "github.com/owncloud/ocis/extensions/ocs/pkg/server/debug" + "github.com/owncloud/ocis/extensions/ocs/pkg/server/http" "github.com/urfave/cli/v2" ) diff --git a/graph-explorer/pkg/command/version.go b/extensions/ocs/pkg/command/version.go similarity index 96% rename from graph-explorer/pkg/command/version.go rename to extensions/ocs/pkg/command/version.go index 39b1cadb4..388a8989c 100644 --- a/graph-explorer/pkg/command/version.go +++ b/extensions/ocs/pkg/command/version.go @@ -8,7 +8,7 @@ import ( "github.com/owncloud/ocis/ocis-pkg/version" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/ocs/pkg/config/config.go b/extensions/ocs/pkg/config/config.go similarity index 100% rename from ocs/pkg/config/config.go rename to extensions/ocs/pkg/config/config.go diff --git a/ocs/pkg/config/debug.go b/extensions/ocs/pkg/config/debug.go similarity index 100% rename from ocs/pkg/config/debug.go rename to extensions/ocs/pkg/config/debug.go diff --git a/ocs/pkg/config/defaults/defaultconfig.go b/extensions/ocs/pkg/config/defaults/defaultconfig.go similarity index 97% rename from ocs/pkg/config/defaults/defaultconfig.go rename to extensions/ocs/pkg/config/defaults/defaultconfig.go index 9c57e897f..90edea71e 100644 --- a/ocs/pkg/config/defaults/defaultconfig.go +++ b/extensions/ocs/pkg/config/defaults/defaultconfig.go @@ -3,7 +3,7 @@ package defaults import ( "strings" - "github.com/owncloud/ocis/ocs/pkg/config" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" ) func FullDefaultConfig() *config.Config { diff --git a/ocs/pkg/config/http.go b/extensions/ocs/pkg/config/http.go similarity index 100% rename from ocs/pkg/config/http.go rename to extensions/ocs/pkg/config/http.go diff --git a/ocs/pkg/config/log.go b/extensions/ocs/pkg/config/log.go similarity index 100% rename from ocs/pkg/config/log.go rename to extensions/ocs/pkg/config/log.go diff --git a/accounts/pkg/config/parser/parse.go b/extensions/ocs/pkg/config/parser/parse.go similarity index 85% rename from accounts/pkg/config/parser/parse.go rename to extensions/ocs/pkg/config/parser/parse.go index f689ee528..b9c312ca3 100644 --- a/accounts/pkg/config/parser/parse.go +++ b/extensions/ocs/pkg/config/parser/parse.go @@ -3,8 +3,8 @@ package parser import ( "errors" - "github.com/owncloud/ocis/accounts/pkg/config" - defaults "github.com/owncloud/ocis/accounts/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" + "github.com/owncloud/ocis/extensions/ocs/pkg/config/defaults" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/envdecode" diff --git a/ocs/pkg/config/reva.go b/extensions/ocs/pkg/config/reva.go similarity index 100% rename from ocs/pkg/config/reva.go rename to extensions/ocs/pkg/config/reva.go diff --git a/ocs/pkg/config/service.go b/extensions/ocs/pkg/config/service.go similarity index 100% rename from ocs/pkg/config/service.go rename to extensions/ocs/pkg/config/service.go diff --git a/ocs/pkg/config/tracing.go b/extensions/ocs/pkg/config/tracing.go similarity index 100% rename from ocs/pkg/config/tracing.go rename to extensions/ocs/pkg/config/tracing.go diff --git a/glauth/pkg/logging/logging.go b/extensions/ocs/pkg/logging/logging.go similarity index 86% rename from glauth/pkg/logging/logging.go rename to extensions/ocs/pkg/logging/logging.go index 5282014a6..abd3615c9 100644 --- a/glauth/pkg/logging/logging.go +++ b/extensions/ocs/pkg/logging/logging.go @@ -1,7 +1,7 @@ package logging import ( - "github.com/owncloud/ocis/glauth/pkg/config" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/ocs/pkg/metrics/metrics.go b/extensions/ocs/pkg/metrics/metrics.go similarity index 100% rename from ocs/pkg/metrics/metrics.go rename to extensions/ocs/pkg/metrics/metrics.go diff --git a/ocs/pkg/middleware/format.go b/extensions/ocs/pkg/middleware/format.go similarity index 100% rename from ocs/pkg/middleware/format.go rename to extensions/ocs/pkg/middleware/format.go diff --git a/ocs/pkg/middleware/logtrace.go b/extensions/ocs/pkg/middleware/logtrace.go similarity index 89% rename from ocs/pkg/middleware/logtrace.go rename to extensions/ocs/pkg/middleware/logtrace.go index d35bd2930..2786ba5f3 100644 --- a/ocs/pkg/middleware/logtrace.go +++ b/extensions/ocs/pkg/middleware/logtrace.go @@ -3,7 +3,7 @@ package middleware import ( "net/http" - ocstracing "github.com/owncloud/ocis/ocs/pkg/tracing" + ocstracing "github.com/owncloud/ocis/extensions/ocs/pkg/tracing" "go.opentelemetry.io/otel/propagation" ) diff --git a/ocs/pkg/middleware/options.go b/extensions/ocs/pkg/middleware/options.go similarity index 100% rename from ocs/pkg/middleware/options.go rename to extensions/ocs/pkg/middleware/options.go diff --git a/ocs/pkg/middleware/requireadmin.go b/extensions/ocs/pkg/middleware/requireadmin.go similarity index 86% rename from ocs/pkg/middleware/requireadmin.go rename to extensions/ocs/pkg/middleware/requireadmin.go index 4d8dba19c..b46b6c0ba 100644 --- a/ocs/pkg/middleware/requireadmin.go +++ b/extensions/ocs/pkg/middleware/requireadmin.go @@ -4,10 +4,10 @@ import ( "net/http" "github.com/go-chi/render" - accounts "github.com/owncloud/ocis/accounts/pkg/service/v0" + accounts "github.com/owncloud/ocis/extensions/accounts/pkg/service/v0" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/data" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/response" "github.com/owncloud/ocis/ocis-pkg/roles" - "github.com/owncloud/ocis/ocs/pkg/service/v0/data" - "github.com/owncloud/ocis/ocs/pkg/service/v0/response" ) // RequireAdmin middleware is used to require the user in context to be an admin / have account management permissions diff --git a/ocs/pkg/middleware/requireselforadmin.go b/extensions/ocs/pkg/middleware/requireselforadmin.go similarity index 91% rename from ocs/pkg/middleware/requireselforadmin.go rename to extensions/ocs/pkg/middleware/requireselforadmin.go index b063ce9d0..b1be692c3 100644 --- a/ocs/pkg/middleware/requireselforadmin.go +++ b/extensions/ocs/pkg/middleware/requireselforadmin.go @@ -7,11 +7,11 @@ import ( revactx "github.com/cs3org/reva/v2/pkg/ctx" "github.com/go-chi/chi/v5" "github.com/go-chi/render" - accounts "github.com/owncloud/ocis/accounts/pkg/service/v0" + accounts "github.com/owncloud/ocis/extensions/accounts/pkg/service/v0" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/data" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/response" + settingsService "github.com/owncloud/ocis/extensions/settings/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/roles" - "github.com/owncloud/ocis/ocs/pkg/service/v0/data" - "github.com/owncloud/ocis/ocs/pkg/service/v0/response" - settingsService "github.com/owncloud/ocis/settings/pkg/service/v0" ) // RequireSelfOrAdmin middleware is used to require the requesting user to be an admin or the requested user himself diff --git a/ocs/pkg/middleware/requireuser.go b/extensions/ocs/pkg/middleware/requireuser.go similarity index 88% rename from ocs/pkg/middleware/requireuser.go rename to extensions/ocs/pkg/middleware/requireuser.go index ed8d5e4a2..ce9633dcd 100644 --- a/ocs/pkg/middleware/requireuser.go +++ b/extensions/ocs/pkg/middleware/requireuser.go @@ -5,8 +5,8 @@ import ( revactx "github.com/cs3org/reva/v2/pkg/ctx" "github.com/go-chi/render" - "github.com/owncloud/ocis/ocs/pkg/service/v0/data" - "github.com/owncloud/ocis/ocs/pkg/service/v0/response" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/data" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/response" ) // RequireUser middleware is used to require a user in context diff --git a/graph-explorer/pkg/server/debug/option.go b/extensions/ocs/pkg/server/debug/option.go similarity index 94% rename from graph-explorer/pkg/server/debug/option.go rename to extensions/ocs/pkg/server/debug/option.go index b74a46e04..2d068fb26 100644 --- a/graph-explorer/pkg/server/debug/option.go +++ b/extensions/ocs/pkg/server/debug/option.go @@ -3,7 +3,7 @@ package debug import ( "context" - "github.com/owncloud/ocis/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/ocs/pkg/server/debug/server.go b/extensions/ocs/pkg/server/debug/server.go similarity index 97% rename from ocs/pkg/server/debug/server.go rename to extensions/ocs/pkg/server/debug/server.go index 7a7b69d80..445d61b9f 100644 --- a/ocs/pkg/server/debug/server.go +++ b/extensions/ocs/pkg/server/debug/server.go @@ -4,9 +4,9 @@ import ( "io" "net/http" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" "github.com/owncloud/ocis/ocis-pkg/service/debug" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/ocs/pkg/config" ) // Server initializes the debug service and server. diff --git a/graph-explorer/pkg/server/http/option.go b/extensions/ocs/pkg/server/http/option.go similarity index 93% rename from graph-explorer/pkg/server/http/option.go rename to extensions/ocs/pkg/server/http/option.go index 92b4e268c..c1185e1d1 100644 --- a/graph-explorer/pkg/server/http/option.go +++ b/extensions/ocs/pkg/server/http/option.go @@ -3,8 +3,8 @@ package http import ( "context" - "github.com/owncloud/ocis/graph-explorer/pkg/config" - "github.com/owncloud/ocis/graph-explorer/pkg/metrics" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" + "github.com/owncloud/ocis/extensions/ocs/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/urfave/cli/v2" ) @@ -14,12 +14,12 @@ type Option func(o *Options) // Options defines the available options for this package. type Options struct { + Namespace string Logger log.Logger Context context.Context Config *config.Config Metrics *metrics.Metrics Flags []cli.Flag - Namespace string } // newOptions initializes the available default options. diff --git a/ocs/pkg/server/http/server.go b/extensions/ocs/pkg/server/http/server.go similarity index 92% rename from ocs/pkg/server/http/server.go rename to extensions/ocs/pkg/server/http/server.go index 06d380184..0541b3d8c 100644 --- a/ocs/pkg/server/http/server.go +++ b/extensions/ocs/pkg/server/http/server.go @@ -2,12 +2,12 @@ package http import ( chimiddleware "github.com/go-chi/chi/v5/middleware" + ocsmw "github.com/owncloud/ocis/extensions/ocs/pkg/middleware" + svc "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/cors" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" "github.com/owncloud/ocis/ocis-pkg/version" - ocsmw "github.com/owncloud/ocis/ocs/pkg/middleware" - svc "github.com/owncloud/ocis/ocs/pkg/service/v0" "go-micro.dev/v4" ) diff --git a/ocs/pkg/server/http/svc_test.go b/extensions/ocs/pkg/server/http/svc_test.go similarity index 98% rename from ocs/pkg/server/http/svc_test.go rename to extensions/ocs/pkg/server/http/svc_test.go index a8158dc1b..3c30212a8 100644 --- a/ocs/pkg/server/http/svc_test.go +++ b/extensions/ocs/pkg/server/http/svc_test.go @@ -20,18 +20,18 @@ import ( "github.com/cs3org/reva/v2/pkg/token" "github.com/cs3org/reva/v2/pkg/token/manager/jwt" "github.com/golang/protobuf/ptypes/empty" - accountsCfg "github.com/owncloud/ocis/accounts/pkg/config" - accountsLogging "github.com/owncloud/ocis/accounts/pkg/logging" - accountsServiceExt "github.com/owncloud/ocis/accounts/pkg/service/v0" + accountsCfg "github.com/owncloud/ocis/extensions/accounts/pkg/config" + accountsLogging "github.com/owncloud/ocis/extensions/accounts/pkg/logging" + accountsServiceExt "github.com/owncloud/ocis/extensions/accounts/pkg/service/v0" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" + svc "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0" + ssvc "github.com/owncloud/ocis/extensions/settings/pkg/service/v0" ocisLog "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/service/grpc" - "github.com/owncloud/ocis/ocs/pkg/config" - svc "github.com/owncloud/ocis/ocs/pkg/service/v0" accountsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/accounts/v0" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - ssvc "github.com/owncloud/ocis/settings/pkg/service/v0" "github.com/stretchr/testify/assert" "go-micro.dev/v4/client" ) @@ -1502,7 +1502,7 @@ func TestGetSingleUser(t *testing.T) { } // This is a bug demonstration test for endpoint '/cloud/user' -// Link to the issue: https://github.com/owncloud/ocis/ocs/issues/53 +// Link to the issue: https://github.com/owncloud/ocis/issues/53 func TestGetUserSigningKey(t *testing.T) { user := User{ Enabled: "true", @@ -1829,7 +1829,7 @@ func TestAddUsersToGroupInvalidGroup(t *testing.T) { cleanUp(t) } -// Issue: https://github.com/owncloud/ocis/ocs/issues/57 - cannot remove user from group +// Issue: https://github.com/owncloud/ocis/issues/57 - cannot remove user from group func TestRemoveUserFromGroup(t *testing.T) { user := User{ Enabled: "true", diff --git a/ocs/pkg/service/v0/config.go b/extensions/ocs/pkg/service/v0/config.go similarity index 76% rename from ocs/pkg/service/v0/config.go rename to extensions/ocs/pkg/service/v0/config.go index e41297e77..6e77c3086 100644 --- a/ocs/pkg/service/v0/config.go +++ b/extensions/ocs/pkg/service/v0/config.go @@ -3,8 +3,8 @@ package svc import ( "net/http" - "github.com/owncloud/ocis/ocs/pkg/service/v0/data" - "github.com/owncloud/ocis/ocs/pkg/service/v0/response" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/data" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/response" ) // GetConfig renders the ocs config endpoint diff --git a/ocs/pkg/service/v0/data/config.go b/extensions/ocs/pkg/service/v0/data/config.go similarity index 100% rename from ocs/pkg/service/v0/data/config.go rename to extensions/ocs/pkg/service/v0/data/config.go diff --git a/ocs/pkg/service/v0/data/group.go b/extensions/ocs/pkg/service/v0/data/group.go similarity index 100% rename from ocs/pkg/service/v0/data/group.go rename to extensions/ocs/pkg/service/v0/data/group.go diff --git a/ocs/pkg/service/v0/data/meta.go b/extensions/ocs/pkg/service/v0/data/meta.go similarity index 100% rename from ocs/pkg/service/v0/data/meta.go rename to extensions/ocs/pkg/service/v0/data/meta.go diff --git a/ocs/pkg/service/v0/data/user.go b/extensions/ocs/pkg/service/v0/data/user.go similarity index 100% rename from ocs/pkg/service/v0/data/user.go rename to extensions/ocs/pkg/service/v0/data/user.go diff --git a/ocs/pkg/service/v0/groups.go b/extensions/ocs/pkg/service/v0/groups.go similarity index 98% rename from ocs/pkg/service/v0/groups.go rename to extensions/ocs/pkg/service/v0/groups.go index 7a0162415..9dae5899b 100644 --- a/ocs/pkg/service/v0/groups.go +++ b/extensions/ocs/pkg/service/v0/groups.go @@ -14,9 +14,9 @@ import ( revactx "github.com/cs3org/reva/v2/pkg/ctx" "github.com/go-chi/chi/v5" - "github.com/owncloud/ocis/ocs/pkg/service/v0/data" - "github.com/owncloud/ocis/ocs/pkg/service/v0/response" - ocstracing "github.com/owncloud/ocis/ocs/pkg/tracing" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/data" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/response" + ocstracing "github.com/owncloud/ocis/extensions/ocs/pkg/tracing" merrors "go-micro.dev/v4/errors" "go.opentelemetry.io/otel/attribute" ) diff --git a/ocs/pkg/service/v0/instrument.go b/extensions/ocs/pkg/service/v0/instrument.go similarity index 91% rename from ocs/pkg/service/v0/instrument.go rename to extensions/ocs/pkg/service/v0/instrument.go index 7e5fb0be1..6940ad28d 100644 --- a/ocs/pkg/service/v0/instrument.go +++ b/extensions/ocs/pkg/service/v0/instrument.go @@ -3,7 +3,7 @@ package svc import ( "net/http" - "github.com/owncloud/ocis/ocs/pkg/metrics" + "github.com/owncloud/ocis/extensions/ocs/pkg/metrics" ) // NewInstrument returns a service that instruments metrics. diff --git a/ocs/pkg/service/v0/logging.go b/extensions/ocs/pkg/service/v0/logging.go similarity index 100% rename from ocs/pkg/service/v0/logging.go rename to extensions/ocs/pkg/service/v0/logging.go diff --git a/ocs/pkg/service/v0/option.go b/extensions/ocs/pkg/service/v0/option.go similarity index 96% rename from ocs/pkg/service/v0/option.go rename to extensions/ocs/pkg/service/v0/option.go index 4b142ca54..da9e7f6b3 100644 --- a/ocs/pkg/service/v0/option.go +++ b/extensions/ocs/pkg/service/v0/option.go @@ -3,9 +3,9 @@ package svc import ( "net/http" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/roles" - "github.com/owncloud/ocis/ocs/pkg/config" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" ) diff --git a/ocs/pkg/service/v0/response/response.go b/extensions/ocs/pkg/service/v0/response/response.go similarity index 97% rename from ocs/pkg/service/v0/response/response.go rename to extensions/ocs/pkg/service/v0/response/response.go index 40fecaa38..e1b92f095 100644 --- a/ocs/pkg/service/v0/response/response.go +++ b/extensions/ocs/pkg/service/v0/response/response.go @@ -6,7 +6,7 @@ import ( "reflect" "github.com/go-chi/render" - "github.com/owncloud/ocis/ocs/pkg/service/v0/data" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/data" ) // Response is the top level response structure diff --git a/ocs/pkg/service/v0/response/version.go b/extensions/ocs/pkg/service/v0/response/version.go similarity index 97% rename from ocs/pkg/service/v0/response/version.go rename to extensions/ocs/pkg/service/v0/response/version.go index c23fddfcd..ddf9e89b4 100644 --- a/ocs/pkg/service/v0/response/version.go +++ b/extensions/ocs/pkg/service/v0/response/version.go @@ -6,7 +6,7 @@ import ( "github.com/go-chi/chi/v5" "github.com/go-chi/render" - "github.com/owncloud/ocis/ocs/pkg/service/v0/data" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/data" ) type key int diff --git a/ocs/pkg/service/v0/service.go b/extensions/ocs/pkg/service/v0/service.go similarity index 95% rename from ocs/pkg/service/v0/service.go rename to extensions/ocs/pkg/service/v0/service.go index 913aedb5b..7415d36a2 100644 --- a/ocs/pkg/service/v0/service.go +++ b/extensions/ocs/pkg/service/v0/service.go @@ -13,16 +13,16 @@ import ( accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" + "github.com/owncloud/ocis/extensions/ocs/pkg/config" + ocsm "github.com/owncloud/ocis/extensions/ocs/pkg/middleware" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/data" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/response" + "github.com/owncloud/ocis/extensions/proxy/pkg/user/backend" "github.com/owncloud/ocis/ocis-pkg/account" "github.com/owncloud/ocis/ocis-pkg/log" opkgm "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/roles" - "github.com/owncloud/ocis/ocs/pkg/config" - ocsm "github.com/owncloud/ocis/ocs/pkg/middleware" - "github.com/owncloud/ocis/ocs/pkg/service/v0/data" - "github.com/owncloud/ocis/ocs/pkg/service/v0/response" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - "github.com/owncloud/ocis/proxy/pkg/user/backend" ) // Service defines the extension handlers. diff --git a/ocs/pkg/service/v0/tracing.go b/extensions/ocs/pkg/service/v0/tracing.go similarity index 100% rename from ocs/pkg/service/v0/tracing.go rename to extensions/ocs/pkg/service/v0/tracing.go diff --git a/ocs/pkg/service/v0/users.go b/extensions/ocs/pkg/service/v0/users.go similarity index 99% rename from ocs/pkg/service/v0/users.go rename to extensions/ocs/pkg/service/v0/users.go index 2e4bb68c0..e3a90de2c 100644 --- a/ocs/pkg/service/v0/users.go +++ b/extensions/ocs/pkg/service/v0/users.go @@ -27,9 +27,9 @@ import ( "github.com/cs3org/reva/v2/pkg/token/manager/jwt" "github.com/go-chi/chi/v5" "github.com/google/uuid" - "github.com/owncloud/ocis/ocs/pkg/service/v0/data" - "github.com/owncloud/ocis/ocs/pkg/service/v0/response" - ocstracing "github.com/owncloud/ocis/ocs/pkg/tracing" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/data" + "github.com/owncloud/ocis/extensions/ocs/pkg/service/v0/response" + ocstracing "github.com/owncloud/ocis/extensions/ocs/pkg/tracing" "github.com/pkg/errors" merrors "go-micro.dev/v4/errors" "google.golang.org/genproto/protobuf/field_mask" diff --git a/ocs/pkg/tracing/tracing.go b/extensions/ocs/pkg/tracing/tracing.go similarity index 90% rename from ocs/pkg/tracing/tracing.go rename to extensions/ocs/pkg/tracing/tracing.go index bd4873036..962bd613b 100644 --- a/ocs/pkg/tracing/tracing.go +++ b/extensions/ocs/pkg/tracing/tracing.go @@ -1,8 +1,8 @@ package tracing import ( + "github.com/owncloud/ocis/extensions/ocs/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - "github.com/owncloud/ocis/ocs/pkg/config" "go.opentelemetry.io/otel/trace" ) diff --git a/ocs/reflex.conf b/extensions/ocs/reflex.conf similarity index 100% rename from ocs/reflex.conf rename to extensions/ocs/reflex.conf diff --git a/proxy/.dockerignore b/extensions/proxy/.dockerignore similarity index 100% rename from proxy/.dockerignore rename to extensions/proxy/.dockerignore diff --git a/proxy/Makefile b/extensions/proxy/Makefile similarity index 78% rename from proxy/Makefile rename to extensions/proxy/Makefile index e700f7335..c53d0e35d 100644 --- a/proxy/Makefile +++ b/extensions/proxy/Makefile @@ -1,27 +1,27 @@ SHELL := bash NAME := proxy -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ############ -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: # CI runs ci-node-generate automatically before this target diff --git a/extensions/proxy/cmd/proxy/main.go b/extensions/proxy/cmd/proxy/main.go new file mode 100644 index 000000000..059facda4 --- /dev/null +++ b/extensions/proxy/cmd/proxy/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/proxy/pkg/command" + "github.com/owncloud/ocis/extensions/proxy/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/proxy/docker/Dockerfile.linux.amd64 b/extensions/proxy/docker/Dockerfile.linux.amd64 similarity index 100% rename from proxy/docker/Dockerfile.linux.amd64 rename to extensions/proxy/docker/Dockerfile.linux.amd64 diff --git a/proxy/docker/Dockerfile.linux.arm b/extensions/proxy/docker/Dockerfile.linux.arm similarity index 100% rename from proxy/docker/Dockerfile.linux.arm rename to extensions/proxy/docker/Dockerfile.linux.arm diff --git a/proxy/docker/Dockerfile.linux.arm64 b/extensions/proxy/docker/Dockerfile.linux.arm64 similarity index 100% rename from proxy/docker/Dockerfile.linux.arm64 rename to extensions/proxy/docker/Dockerfile.linux.arm64 diff --git a/proxy/docker/manifest.tmpl b/extensions/proxy/docker/manifest.tmpl similarity index 100% rename from proxy/docker/manifest.tmpl rename to extensions/proxy/docker/manifest.tmpl diff --git a/extensions/proxy/pkg/command/health.go b/extensions/proxy/pkg/command/health.go new file mode 100644 index 000000000..e3014e587 --- /dev/null +++ b/extensions/proxy/pkg/command/health.go @@ -0,0 +1,53 @@ +package command + +import ( + "fmt" + "net/http" + + "github.com/owncloud/ocis/extensions/proxy/pkg/config" + "github.com/owncloud/ocis/extensions/proxy/pkg/config/parser" + "github.com/owncloud/ocis/extensions/proxy/pkg/logging" + "github.com/urfave/cli/v2" +) + +// Health is the entrypoint for the health command. +func Health(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "health", + Usage: "check health status", + Category: "info", + Before: func(c *cli.Context) error { + return parser.ParseConfig(cfg) + }, + Action: func(c *cli.Context) error { + logger := logging.Configure(cfg.Service.Name, cfg.Log) + + resp, err := http.Get( + fmt.Sprintf( + "http://%s/healthz", + cfg.Debug.Addr, + ), + ) + + if err != nil { + logger.Fatal(). + Err(err). + Msg("Failed to request health check") + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + logger.Fatal(). + Int("code", resp.StatusCode). + Msg("Health seems to be in bad state") + } + + logger.Debug(). + Int("code", resp.StatusCode). + Msg("Health got a good state") + + return nil + }, + } +} diff --git a/proxy/pkg/command/root.go b/extensions/proxy/pkg/command/root.go similarity index 95% rename from proxy/pkg/command/root.go rename to extensions/proxy/pkg/command/root.go index cfc2afa62..bcd4fcaec 100644 --- a/proxy/pkg/command/root.go +++ b/extensions/proxy/pkg/command/root.go @@ -4,9 +4,9 @@ import ( "context" "os" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/proxy/pkg/config" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/proxy/pkg/command/server.go b/extensions/proxy/pkg/command/server.go similarity index 90% rename from proxy/pkg/command/server.go rename to extensions/proxy/pkg/command/server.go index 8d6f7ce9c..833224639 100644 --- a/proxy/pkg/command/server.go +++ b/extensions/proxy/pkg/command/server.go @@ -16,22 +16,22 @@ import ( chimiddleware "github.com/go-chi/chi/v5/middleware" "github.com/justinas/alice" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" + "github.com/owncloud/ocis/extensions/proxy/pkg/config/parser" + "github.com/owncloud/ocis/extensions/proxy/pkg/cs3" + "github.com/owncloud/ocis/extensions/proxy/pkg/logging" + "github.com/owncloud/ocis/extensions/proxy/pkg/metrics" + "github.com/owncloud/ocis/extensions/proxy/pkg/middleware" + "github.com/owncloud/ocis/extensions/proxy/pkg/proxy" + "github.com/owncloud/ocis/extensions/proxy/pkg/server/debug" + proxyHTTP "github.com/owncloud/ocis/extensions/proxy/pkg/server/http" + "github.com/owncloud/ocis/extensions/proxy/pkg/tracing" + "github.com/owncloud/ocis/extensions/proxy/pkg/user/backend" "github.com/owncloud/ocis/ocis-pkg/log" pkgmiddleware "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/grpc" "github.com/owncloud/ocis/ocis-pkg/version" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - "github.com/owncloud/ocis/proxy/pkg/config" - "github.com/owncloud/ocis/proxy/pkg/config/parser" - "github.com/owncloud/ocis/proxy/pkg/cs3" - "github.com/owncloud/ocis/proxy/pkg/logging" - "github.com/owncloud/ocis/proxy/pkg/metrics" - "github.com/owncloud/ocis/proxy/pkg/middleware" - "github.com/owncloud/ocis/proxy/pkg/proxy" - "github.com/owncloud/ocis/proxy/pkg/server/debug" - proxyHTTP "github.com/owncloud/ocis/proxy/pkg/server/http" - "github.com/owncloud/ocis/proxy/pkg/tracing" - "github.com/owncloud/ocis/proxy/pkg/user/backend" "github.com/urfave/cli/v2" "golang.org/x/oauth2" ) diff --git a/proxy/pkg/command/version.go b/extensions/proxy/pkg/command/version.go similarity index 95% rename from proxy/pkg/command/version.go rename to extensions/proxy/pkg/command/version.go index e8b907dca..2faf3b394 100644 --- a/proxy/pkg/command/version.go +++ b/extensions/proxy/pkg/command/version.go @@ -8,7 +8,7 @@ import ( "github.com/owncloud/ocis/ocis-pkg/version" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/proxy/pkg/config" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/proxy/pkg/config/config.go b/extensions/proxy/pkg/config/config.go similarity index 100% rename from proxy/pkg/config/config.go rename to extensions/proxy/pkg/config/config.go diff --git a/proxy/pkg/config/debug.go b/extensions/proxy/pkg/config/debug.go similarity index 100% rename from proxy/pkg/config/debug.go rename to extensions/proxy/pkg/config/debug.go diff --git a/proxy/pkg/config/defaults/defaultconfig.go b/extensions/proxy/pkg/config/defaults/defaultconfig.go similarity index 98% rename from proxy/pkg/config/defaults/defaultconfig.go rename to extensions/proxy/pkg/config/defaults/defaultconfig.go index 8ec9effed..8dacb2608 100644 --- a/proxy/pkg/config/defaults/defaultconfig.go +++ b/extensions/proxy/pkg/config/defaults/defaultconfig.go @@ -4,8 +4,8 @@ import ( "path" "strings" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/defaults" - "github.com/owncloud/ocis/proxy/pkg/config" ) func DefaultConfig() *config.Config { diff --git a/proxy/pkg/config/http.go b/extensions/proxy/pkg/config/http.go similarity index 100% rename from proxy/pkg/config/http.go rename to extensions/proxy/pkg/config/http.go diff --git a/proxy/pkg/config/log.go b/extensions/proxy/pkg/config/log.go similarity index 100% rename from proxy/pkg/config/log.go rename to extensions/proxy/pkg/config/log.go diff --git a/extensions/proxy/pkg/config/parser/parse.go b/extensions/proxy/pkg/config/parser/parse.go new file mode 100644 index 000000000..2f29670f6 --- /dev/null +++ b/extensions/proxy/pkg/config/parser/parse.go @@ -0,0 +1,32 @@ +package parser + +import ( + "errors" + + "github.com/owncloud/ocis/extensions/proxy/pkg/config" + "github.com/owncloud/ocis/extensions/proxy/pkg/config/defaults" + ociscfg "github.com/owncloud/ocis/ocis-pkg/config" + + "github.com/owncloud/ocis/ocis-pkg/config/envdecode" +) + +// ParseConfig loads accounts configuration from known paths. +func ParseConfig(cfg *config.Config) error { + _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) + if err != nil { + return err + } + + defaults.EnsureDefaults(cfg) + // load all env variables relevant to the config in the current context. + if err := envdecode.Decode(cfg); err != nil { + // no environment variable set for this config is an expected "error" + if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { + return err + } + } + + defaults.Sanitize(cfg) + + return nil +} diff --git a/proxy/pkg/config/reva.go b/extensions/proxy/pkg/config/reva.go similarity index 100% rename from proxy/pkg/config/reva.go rename to extensions/proxy/pkg/config/reva.go diff --git a/proxy/pkg/config/service.go b/extensions/proxy/pkg/config/service.go similarity index 100% rename from proxy/pkg/config/service.go rename to extensions/proxy/pkg/config/service.go diff --git a/proxy/pkg/config/tracing.go b/extensions/proxy/pkg/config/tracing.go similarity index 100% rename from proxy/pkg/config/tracing.go rename to extensions/proxy/pkg/config/tracing.go diff --git a/proxy/pkg/cs3/client.go b/extensions/proxy/pkg/cs3/client.go similarity index 92% rename from proxy/pkg/cs3/client.go rename to extensions/proxy/pkg/cs3/client.go index bf8d19871..9b7f9fba7 100644 --- a/proxy/pkg/cs3/client.go +++ b/extensions/proxy/pkg/cs3/client.go @@ -2,7 +2,7 @@ package cs3 import ( gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" - proxytracing "github.com/owncloud/ocis/proxy/pkg/tracing" + proxytracing "github.com/owncloud/ocis/extensions/proxy/pkg/tracing" "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" diff --git a/extensions/proxy/pkg/logging/logging.go b/extensions/proxy/pkg/logging/logging.go new file mode 100644 index 000000000..10fa0d4e9 --- /dev/null +++ b/extensions/proxy/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/proxy/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/proxy/pkg/metrics/metrics.go b/extensions/proxy/pkg/metrics/metrics.go similarity index 100% rename from proxy/pkg/metrics/metrics.go rename to extensions/proxy/pkg/metrics/metrics.go diff --git a/proxy/pkg/middleware/accesslog.go b/extensions/proxy/pkg/middleware/accesslog.go similarity index 100% rename from proxy/pkg/middleware/accesslog.go rename to extensions/proxy/pkg/middleware/accesslog.go diff --git a/proxy/pkg/middleware/account_resolver.go b/extensions/proxy/pkg/middleware/account_resolver.go similarity index 98% rename from proxy/pkg/middleware/account_resolver.go rename to extensions/proxy/pkg/middleware/account_resolver.go index 4a9c1b4e4..431579490 100644 --- a/proxy/pkg/middleware/account_resolver.go +++ b/extensions/proxy/pkg/middleware/account_resolver.go @@ -4,7 +4,7 @@ import ( "errors" "net/http" - "github.com/owncloud/ocis/proxy/pkg/user/backend" + "github.com/owncloud/ocis/extensions/proxy/pkg/user/backend" revactx "github.com/cs3org/reva/v2/pkg/ctx" "github.com/owncloud/ocis/ocis-pkg/log" diff --git a/proxy/pkg/middleware/account_resolver_test.go b/extensions/proxy/pkg/middleware/account_resolver_test.go similarity index 95% rename from proxy/pkg/middleware/account_resolver_test.go rename to extensions/proxy/pkg/middleware/account_resolver_test.go index 825a85cfc..c12f9f4f1 100644 --- a/proxy/pkg/middleware/account_resolver_test.go +++ b/extensions/proxy/pkg/middleware/account_resolver_test.go @@ -10,11 +10,11 @@ import ( "github.com/cs3org/reva/v2/pkg/auth/scope" revactx "github.com/cs3org/reva/v2/pkg/ctx" "github.com/cs3org/reva/v2/pkg/token/manager/jwt" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" + "github.com/owncloud/ocis/extensions/proxy/pkg/user/backend" + "github.com/owncloud/ocis/extensions/proxy/pkg/user/backend/test" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/oidc" - "github.com/owncloud/ocis/proxy/pkg/config" - "github.com/owncloud/ocis/proxy/pkg/user/backend" - "github.com/owncloud/ocis/proxy/pkg/user/backend/test" "github.com/stretchr/testify/assert" ) diff --git a/proxy/pkg/middleware/authentication.go b/extensions/proxy/pkg/middleware/authentication.go similarity index 100% rename from proxy/pkg/middleware/authentication.go rename to extensions/proxy/pkg/middleware/authentication.go diff --git a/proxy/pkg/middleware/basic_auth.go b/extensions/proxy/pkg/middleware/basic_auth.go similarity index 97% rename from proxy/pkg/middleware/basic_auth.go rename to extensions/proxy/pkg/middleware/basic_auth.go index c7836e619..0dc50791c 100644 --- a/proxy/pkg/middleware/basic_auth.go +++ b/extensions/proxy/pkg/middleware/basic_auth.go @@ -5,10 +5,10 @@ import ( "net/http" "strings" + "github.com/owncloud/ocis/extensions/proxy/pkg/user/backend" + "github.com/owncloud/ocis/extensions/proxy/pkg/webdav" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/oidc" - "github.com/owncloud/ocis/proxy/pkg/user/backend" - "github.com/owncloud/ocis/proxy/pkg/webdav" ) // BasicAuth provides a middleware to check if BasicAuth is provided diff --git a/proxy/pkg/middleware/basic_auth_test.go b/extensions/proxy/pkg/middleware/basic_auth_test.go similarity index 100% rename from proxy/pkg/middleware/basic_auth_test.go rename to extensions/proxy/pkg/middleware/basic_auth_test.go diff --git a/proxy/pkg/middleware/create_home.go b/extensions/proxy/pkg/middleware/create_home.go similarity index 100% rename from proxy/pkg/middleware/create_home.go rename to extensions/proxy/pkg/middleware/create_home.go diff --git a/proxy/pkg/middleware/https_redirect.go b/extensions/proxy/pkg/middleware/https_redirect.go similarity index 100% rename from proxy/pkg/middleware/https_redirect.go rename to extensions/proxy/pkg/middleware/https_redirect.go diff --git a/proxy/pkg/middleware/oidc_auth.go b/extensions/proxy/pkg/middleware/oidc_auth.go similarity index 98% rename from proxy/pkg/middleware/oidc_auth.go rename to extensions/proxy/pkg/middleware/oidc_auth.go index ed882f04a..5797007ac 100644 --- a/proxy/pkg/middleware/oidc_auth.go +++ b/extensions/proxy/pkg/middleware/oidc_auth.go @@ -9,10 +9,10 @@ import ( "github.com/golang-jwt/jwt/v4" gOidc "github.com/coreos/go-oidc/v3/oidc" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/oidc" "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/owncloud/ocis/proxy/pkg/config" "golang.org/x/oauth2" ) diff --git a/proxy/pkg/middleware/oidc_auth_test.go b/extensions/proxy/pkg/middleware/oidc_auth_test.go similarity index 100% rename from proxy/pkg/middleware/oidc_auth_test.go rename to extensions/proxy/pkg/middleware/oidc_auth_test.go diff --git a/proxy/pkg/middleware/options.go b/extensions/proxy/pkg/middleware/options.go similarity index 98% rename from proxy/pkg/middleware/options.go rename to extensions/proxy/pkg/middleware/options.go index f45c428d7..da631f099 100644 --- a/proxy/pkg/middleware/options.go +++ b/extensions/proxy/pkg/middleware/options.go @@ -4,15 +4,15 @@ import ( "net/http" "time" - "github.com/owncloud/ocis/proxy/pkg/user/backend" + "github.com/owncloud/ocis/extensions/proxy/pkg/user/backend" accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" storesvc "github.com/owncloud/ocis/protogen/gen/ocis/services/store/v0" gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/proxy/pkg/config" ) // Option defines a single option function. diff --git a/proxy/pkg/middleware/public_share_auth.go b/extensions/proxy/pkg/middleware/public_share_auth.go similarity index 100% rename from proxy/pkg/middleware/public_share_auth.go rename to extensions/proxy/pkg/middleware/public_share_auth.go diff --git a/proxy/pkg/middleware/selector_cookie.go b/extensions/proxy/pkg/middleware/selector_cookie.go similarity index 92% rename from proxy/pkg/middleware/selector_cookie.go rename to extensions/proxy/pkg/middleware/selector_cookie.go index d76054302..91d767383 100644 --- a/proxy/pkg/middleware/selector_cookie.go +++ b/extensions/proxy/pkg/middleware/selector_cookie.go @@ -3,10 +3,10 @@ package middleware import ( "net/http" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" + "github.com/owncloud/ocis/extensions/proxy/pkg/proxy/policy" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/oidc" - "github.com/owncloud/ocis/proxy/pkg/config" - "github.com/owncloud/ocis/proxy/pkg/proxy/policy" ) // SelectorCookie provides a middleware which diff --git a/proxy/pkg/middleware/signed_url_auth.go b/extensions/proxy/pkg/middleware/signed_url_auth.go similarity index 98% rename from proxy/pkg/middleware/signed_url_auth.go rename to extensions/proxy/pkg/middleware/signed_url_auth.go index dcf39f6bd..c453df938 100644 --- a/proxy/pkg/middleware/signed_url_auth.go +++ b/extensions/proxy/pkg/middleware/signed_url_auth.go @@ -12,11 +12,11 @@ import ( "time" revactx "github.com/cs3org/reva/v2/pkg/ctx" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" + "github.com/owncloud/ocis/extensions/proxy/pkg/user/backend" "github.com/owncloud/ocis/ocis-pkg/log" storemsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/store/v0" storesvc "github.com/owncloud/ocis/protogen/gen/ocis/services/store/v0" - "github.com/owncloud/ocis/proxy/pkg/config" - "github.com/owncloud/ocis/proxy/pkg/user/backend" "golang.org/x/crypto/pbkdf2" ) diff --git a/proxy/pkg/middleware/signed_url_auth_test.go b/extensions/proxy/pkg/middleware/signed_url_auth_test.go similarity index 100% rename from proxy/pkg/middleware/signed_url_auth_test.go rename to extensions/proxy/pkg/middleware/signed_url_auth_test.go diff --git a/proxy/pkg/proxy/option.go b/extensions/proxy/pkg/proxy/option.go similarity index 92% rename from proxy/pkg/proxy/option.go rename to extensions/proxy/pkg/proxy/option.go index f0a03abbd..92ce084ef 100644 --- a/proxy/pkg/proxy/option.go +++ b/extensions/proxy/pkg/proxy/option.go @@ -1,8 +1,8 @@ package proxy import ( + "github.com/owncloud/ocis/extensions/proxy/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/proxy/pkg/config" ) // Option defines a single option function. diff --git a/proxy/pkg/proxy/policy/selector.go b/extensions/proxy/pkg/proxy/policy/selector.go similarity index 99% rename from proxy/pkg/proxy/policy/selector.go rename to extensions/proxy/pkg/proxy/policy/selector.go index 86a45ec7f..3d19bdea5 100644 --- a/proxy/pkg/proxy/policy/selector.go +++ b/extensions/proxy/pkg/proxy/policy/selector.go @@ -10,8 +10,8 @@ import ( "github.com/asim/go-micro/plugins/client/grpc/v4" revactx "github.com/cs3org/reva/v2/pkg/ctx" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" "github.com/owncloud/ocis/ocis-pkg/oidc" - "github.com/owncloud/ocis/proxy/pkg/config" ) var ( diff --git a/proxy/pkg/proxy/policy/selector_test.go b/extensions/proxy/pkg/proxy/policy/selector_test.go similarity index 99% rename from proxy/pkg/proxy/policy/selector_test.go rename to extensions/proxy/pkg/proxy/policy/selector_test.go index c5558c72c..f4160ad37 100644 --- a/proxy/pkg/proxy/policy/selector_test.go +++ b/extensions/proxy/pkg/proxy/policy/selector_test.go @@ -9,10 +9,10 @@ import ( userv1beta1 "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" revactx "github.com/cs3org/reva/v2/pkg/ctx" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" "github.com/owncloud/ocis/ocis-pkg/oidc" accountsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/accounts/v0" accountssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/accounts/v0" - "github.com/owncloud/ocis/proxy/pkg/config" "go-micro.dev/v4/client" ) diff --git a/proxy/pkg/proxy/proxy.go b/extensions/proxy/pkg/proxy/proxy.go similarity index 97% rename from proxy/pkg/proxy/proxy.go rename to extensions/proxy/pkg/proxy/proxy.go index 07a916719..b910452c2 100644 --- a/proxy/pkg/proxy/proxy.go +++ b/extensions/proxy/pkg/proxy/proxy.go @@ -16,12 +16,12 @@ import ( "go.opentelemetry.io/otel/attribute" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" + "github.com/owncloud/ocis/extensions/proxy/pkg/proxy/policy" + proxytracing "github.com/owncloud/ocis/extensions/proxy/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/registry" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - "github.com/owncloud/ocis/proxy/pkg/config" - "github.com/owncloud/ocis/proxy/pkg/proxy/policy" - proxytracing "github.com/owncloud/ocis/proxy/pkg/tracing" "go.opentelemetry.io/otel/propagation" "go.opentelemetry.io/otel/trace" ) diff --git a/proxy/pkg/proxy/proxy_integration_test.go b/extensions/proxy/pkg/proxy/proxy_integration_test.go similarity index 99% rename from proxy/pkg/proxy/proxy_integration_test.go rename to extensions/proxy/pkg/proxy/proxy_integration_test.go index 1491933ad..a3fedf086 100644 --- a/proxy/pkg/proxy/proxy_integration_test.go +++ b/extensions/proxy/pkg/proxy/proxy_integration_test.go @@ -10,7 +10,7 @@ import ( "net/url" "testing" - "github.com/owncloud/ocis/proxy/pkg/config" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" ) func TestProxyIntegration(t *testing.T) { diff --git a/proxy/pkg/proxy/proxy_test.go b/extensions/proxy/pkg/proxy/proxy_test.go similarity index 97% rename from proxy/pkg/proxy/proxy_test.go rename to extensions/proxy/pkg/proxy/proxy_test.go index 213882fb9..6beb637d9 100644 --- a/proxy/pkg/proxy/proxy_test.go +++ b/extensions/proxy/pkg/proxy/proxy_test.go @@ -7,8 +7,8 @@ import ( "net/url" "testing" - "github.com/owncloud/ocis/proxy/pkg/config" - "github.com/owncloud/ocis/proxy/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" + "github.com/owncloud/ocis/extensions/proxy/pkg/config/defaults" ) type matchertest struct { diff --git a/extensions/proxy/pkg/server/debug/option.go b/extensions/proxy/pkg/server/debug/option.go new file mode 100644 index 000000000..3181f385c --- /dev/null +++ b/extensions/proxy/pkg/server/debug/option.go @@ -0,0 +1,50 @@ +package debug + +import ( + "context" + + "github.com/owncloud/ocis/extensions/proxy/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// Option defines a single option function. +type Option func(o *Options) + +// Options defines the available options for this package. +type Options struct { + Logger log.Logger + Context context.Context + Config *config.Config +} + +// newOptions initializes the available default options. +func newOptions(opts ...Option) Options { + opt := Options{} + + for _, o := range opts { + o(&opt) + } + + return opt +} + +// Logger provides a function to set the logger option. +func Logger(val log.Logger) Option { + return func(o *Options) { + o.Logger = val + } +} + +// Context provides a function to set the context option. +func Context(val context.Context) Option { + return func(o *Options) { + o.Context = val + } +} + +// Config provides a function to set the config option. +func Config(val *config.Config) Option { + return func(o *Options) { + o.Config = val + } +} diff --git a/proxy/pkg/server/debug/server.go b/extensions/proxy/pkg/server/debug/server.go similarity index 97% rename from proxy/pkg/server/debug/server.go rename to extensions/proxy/pkg/server/debug/server.go index 9158a697d..bda49c199 100644 --- a/proxy/pkg/server/debug/server.go +++ b/extensions/proxy/pkg/server/debug/server.go @@ -5,9 +5,9 @@ import ( "io" "net/http" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" "github.com/owncloud/ocis/ocis-pkg/service/debug" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/proxy/pkg/config" ) // Server initializes the debug service and server. diff --git a/proxy/pkg/server/http/option.go b/extensions/proxy/pkg/server/http/option.go similarity index 93% rename from proxy/pkg/server/http/option.go rename to extensions/proxy/pkg/server/http/option.go index bad0956ff..dcd3885be 100644 --- a/proxy/pkg/server/http/option.go +++ b/extensions/proxy/pkg/server/http/option.go @@ -5,9 +5,9 @@ import ( "net/http" "github.com/justinas/alice" + "github.com/owncloud/ocis/extensions/proxy/pkg/config" + "github.com/owncloud/ocis/extensions/proxy/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/proxy/pkg/config" - "github.com/owncloud/ocis/proxy/pkg/metrics" "github.com/urfave/cli/v2" ) diff --git a/proxy/pkg/server/http/server.go b/extensions/proxy/pkg/server/http/server.go similarity index 100% rename from proxy/pkg/server/http/server.go rename to extensions/proxy/pkg/server/http/server.go diff --git a/search/pkg/tracing/tracing.go b/extensions/proxy/pkg/tracing/tracing.go similarity index 90% rename from search/pkg/tracing/tracing.go rename to extensions/proxy/pkg/tracing/tracing.go index 6d9692684..aa7019635 100644 --- a/search/pkg/tracing/tracing.go +++ b/extensions/proxy/pkg/tracing/tracing.go @@ -1,8 +1,8 @@ package tracing import ( + "github.com/owncloud/ocis/extensions/proxy/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - "github.com/owncloud/ocis/search/pkg/config" "go.opentelemetry.io/otel/trace" ) diff --git a/proxy/pkg/user/backend/accounts.go b/extensions/proxy/pkg/user/backend/accounts.go similarity index 100% rename from proxy/pkg/user/backend/accounts.go rename to extensions/proxy/pkg/user/backend/accounts.go diff --git a/proxy/pkg/user/backend/accounts_test.go b/extensions/proxy/pkg/user/backend/accounts_test.go similarity index 100% rename from proxy/pkg/user/backend/accounts_test.go rename to extensions/proxy/pkg/user/backend/accounts_test.go diff --git a/proxy/pkg/user/backend/backend.go b/extensions/proxy/pkg/user/backend/backend.go similarity index 100% rename from proxy/pkg/user/backend/backend.go rename to extensions/proxy/pkg/user/backend/backend.go diff --git a/proxy/pkg/user/backend/cs3.go b/extensions/proxy/pkg/user/backend/cs3.go similarity index 98% rename from proxy/pkg/user/backend/cs3.go rename to extensions/proxy/pkg/user/backend/cs3.go index cc423ca6e..2a39a4830 100644 --- a/proxy/pkg/user/backend/cs3.go +++ b/extensions/proxy/pkg/user/backend/cs3.go @@ -8,9 +8,9 @@ import ( cs3 "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" rpcv1beta1 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" types "github.com/cs3org/go-cs3apis/cs3/types/v1beta1" + settingsService "github.com/owncloud/ocis/extensions/settings/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/log" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - settingsService "github.com/owncloud/ocis/settings/pkg/service/v0" ) type cs3backend struct { diff --git a/proxy/pkg/user/backend/test/backend_mock.go b/extensions/proxy/pkg/user/backend/test/backend_mock.go similarity index 99% rename from proxy/pkg/user/backend/test/backend_mock.go rename to extensions/proxy/pkg/user/backend/test/backend_mock.go index be27d84b5..1eb489f68 100644 --- a/proxy/pkg/user/backend/test/backend_mock.go +++ b/extensions/proxy/pkg/user/backend/test/backend_mock.go @@ -8,7 +8,7 @@ import ( "sync" userv1beta1 "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" - "github.com/owncloud/ocis/proxy/pkg/user/backend" + "github.com/owncloud/ocis/extensions/proxy/pkg/user/backend" ) // Ensure, that UserBackendMock does implement UserBackend. diff --git a/proxy/pkg/webdav/response.go b/extensions/proxy/pkg/webdav/response.go similarity index 100% rename from proxy/pkg/webdav/response.go rename to extensions/proxy/pkg/webdav/response.go diff --git a/proxy/pkg/webdav/webdav.go b/extensions/proxy/pkg/webdav/webdav.go similarity index 100% rename from proxy/pkg/webdav/webdav.go rename to extensions/proxy/pkg/webdav/webdav.go diff --git a/extensions/search/cmd/search/main.go b/extensions/search/cmd/search/main.go new file mode 100644 index 000000000..aa078dc41 --- /dev/null +++ b/extensions/search/cmd/search/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/search/pkg/command" + "github.com/owncloud/ocis/extensions/search/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/extensions/search/pkg/command/health.go b/extensions/search/pkg/command/health.go new file mode 100644 index 000000000..ff4e0ec30 --- /dev/null +++ b/extensions/search/pkg/command/health.go @@ -0,0 +1,53 @@ +package command + +import ( + "fmt" + "net/http" + + "github.com/owncloud/ocis/extensions/search/pkg/config" + "github.com/owncloud/ocis/extensions/search/pkg/config/parser" + "github.com/owncloud/ocis/extensions/search/pkg/logging" + "github.com/urfave/cli/v2" +) + +// Health is the entrypoint for the health command. +func Health(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "health", + Usage: "check health status", + Category: "info", + Before: func(c *cli.Context) error { + return parser.ParseConfig(cfg) + }, + Action: func(c *cli.Context) error { + logger := logging.Configure(cfg.Service.Name, cfg.Log) + + resp, err := http.Get( + fmt.Sprintf( + "http://%s/healthz", + cfg.Debug.Addr, + ), + ) + + if err != nil { + logger.Fatal(). + Err(err). + Msg("Failed to request health check") + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + logger.Fatal(). + Int("code", resp.StatusCode). + Msg("Health seems to be in bad state") + } + + logger.Debug(). + Int("code", resp.StatusCode). + Msg("Health got a good state") + + return nil + }, + } +} diff --git a/search/pkg/command/root.go b/extensions/search/pkg/command/root.go similarity index 95% rename from search/pkg/command/root.go rename to extensions/search/pkg/command/root.go index f4578fb2d..2e282d6a6 100644 --- a/search/pkg/command/root.go +++ b/extensions/search/pkg/command/root.go @@ -7,8 +7,8 @@ import ( "github.com/owncloud/ocis/ocis-pkg/clihelper" "github.com/thejerf/suture/v4" + "github.com/owncloud/ocis/extensions/search/pkg/config" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/search/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/search/pkg/command/server.go b/extensions/search/pkg/command/server.go similarity index 79% rename from search/pkg/command/server.go rename to extensions/search/pkg/command/server.go index 03fff3956..2c8ae18d5 100644 --- a/search/pkg/command/server.go +++ b/extensions/search/pkg/command/server.go @@ -5,14 +5,14 @@ import ( "fmt" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/search/pkg/config" + "github.com/owncloud/ocis/extensions/search/pkg/config/parser" + "github.com/owncloud/ocis/extensions/search/pkg/logging" + "github.com/owncloud/ocis/extensions/search/pkg/metrics" + "github.com/owncloud/ocis/extensions/search/pkg/server/debug" + "github.com/owncloud/ocis/extensions/search/pkg/server/grpc" + "github.com/owncloud/ocis/extensions/search/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/search/pkg/config" - "github.com/owncloud/ocis/search/pkg/config/parser" - "github.com/owncloud/ocis/search/pkg/logging" - "github.com/owncloud/ocis/search/pkg/metrics" - "github.com/owncloud/ocis/search/pkg/server/debug" - "github.com/owncloud/ocis/search/pkg/server/grpc" - "github.com/owncloud/ocis/search/pkg/tracing" "github.com/urfave/cli/v2" ) diff --git a/search/pkg/command/version.go b/extensions/search/pkg/command/version.go similarity index 95% rename from search/pkg/command/version.go rename to extensions/search/pkg/command/version.go index 86a4c7ee9..12326e77d 100644 --- a/search/pkg/command/version.go +++ b/extensions/search/pkg/command/version.go @@ -8,7 +8,7 @@ import ( "github.com/owncloud/ocis/ocis-pkg/version" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/search/pkg/config" + "github.com/owncloud/ocis/extensions/search/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/search/pkg/config/config.go b/extensions/search/pkg/config/config.go similarity index 100% rename from search/pkg/config/config.go rename to extensions/search/pkg/config/config.go diff --git a/search/pkg/config/debug.go b/extensions/search/pkg/config/debug.go similarity index 100% rename from search/pkg/config/debug.go rename to extensions/search/pkg/config/debug.go diff --git a/search/pkg/config/defaults/defaultconfig.go b/extensions/search/pkg/config/defaults/defaultconfig.go similarity index 96% rename from search/pkg/config/defaults/defaultconfig.go rename to extensions/search/pkg/config/defaults/defaultconfig.go index d1f212bbe..006c84d6c 100644 --- a/search/pkg/config/defaults/defaultconfig.go +++ b/extensions/search/pkg/config/defaults/defaultconfig.go @@ -1,7 +1,7 @@ package defaults import ( - "github.com/owncloud/ocis/search/pkg/config" + "github.com/owncloud/ocis/extensions/search/pkg/config" ) func DefaultConfig() *config.Config { diff --git a/search/pkg/config/grpc.go b/extensions/search/pkg/config/grpc.go similarity index 100% rename from search/pkg/config/grpc.go rename to extensions/search/pkg/config/grpc.go diff --git a/search/pkg/config/http.go b/extensions/search/pkg/config/http.go similarity index 100% rename from search/pkg/config/http.go rename to extensions/search/pkg/config/http.go diff --git a/search/pkg/config/log.go b/extensions/search/pkg/config/log.go similarity index 100% rename from search/pkg/config/log.go rename to extensions/search/pkg/config/log.go diff --git a/extensions/search/pkg/config/parser/parse.go b/extensions/search/pkg/config/parser/parse.go new file mode 100644 index 000000000..b764382e9 --- /dev/null +++ b/extensions/search/pkg/config/parser/parse.go @@ -0,0 +1,33 @@ +package parser + +import ( + "errors" + + "github.com/owncloud/ocis/extensions/search/pkg/config" + "github.com/owncloud/ocis/extensions/search/pkg/config/defaults" + ociscfg "github.com/owncloud/ocis/ocis-pkg/config" + + "github.com/owncloud/ocis/ocis-pkg/config/envdecode" +) + +// ParseConfig loads accounts configuration from known paths. +func ParseConfig(cfg *config.Config) error { + _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) + if err != nil { + return err + } + + defaults.EnsureDefaults(cfg) + + // load all env variables relevant to the config in the current context. + if err := envdecode.Decode(cfg); err != nil { + // no environment variable set for this config is an expected "error" + if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { + return err + } + } + + defaults.Sanitize(cfg) + + return nil +} diff --git a/search/pkg/config/reva.go b/extensions/search/pkg/config/reva.go similarity index 100% rename from search/pkg/config/reva.go rename to extensions/search/pkg/config/reva.go diff --git a/search/pkg/config/service.go b/extensions/search/pkg/config/service.go similarity index 100% rename from search/pkg/config/service.go rename to extensions/search/pkg/config/service.go diff --git a/search/pkg/config/tracing.go b/extensions/search/pkg/config/tracing.go similarity index 100% rename from search/pkg/config/tracing.go rename to extensions/search/pkg/config/tracing.go diff --git a/extensions/search/pkg/logging/logging.go b/extensions/search/pkg/logging/logging.go new file mode 100644 index 000000000..7d8023231 --- /dev/null +++ b/extensions/search/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/search/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/search/pkg/metrics/metrics.go b/extensions/search/pkg/metrics/metrics.go similarity index 100% rename from search/pkg/metrics/metrics.go rename to extensions/search/pkg/metrics/metrics.go diff --git a/search/pkg/search/index/index.go b/extensions/search/pkg/search/index/index.go similarity index 100% rename from search/pkg/search/index/index.go rename to extensions/search/pkg/search/index/index.go diff --git a/search/pkg/search/index/index_suite_test.go b/extensions/search/pkg/search/index/index_suite_test.go similarity index 100% rename from search/pkg/search/index/index_suite_test.go rename to extensions/search/pkg/search/index/index_suite_test.go diff --git a/search/pkg/search/index/index_test.go b/extensions/search/pkg/search/index/index_test.go similarity index 99% rename from search/pkg/search/index/index_test.go rename to extensions/search/pkg/search/index/index_test.go index 0945b1ae1..3fe6fb2b8 100644 --- a/search/pkg/search/index/index_test.go +++ b/extensions/search/pkg/search/index/index_test.go @@ -5,9 +5,9 @@ import ( "github.com/blevesearch/bleve/v2" sprovider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + "github.com/owncloud/ocis/extensions/search/pkg/search/index" searchmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/search/v0" searchsvc "github.com/owncloud/ocis/protogen/gen/ocis/services/search/v0" - "github.com/owncloud/ocis/search/pkg/search/index" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" diff --git a/search/pkg/search/index/mocks/BleveIndex.go b/extensions/search/pkg/search/index/mocks/BleveIndex.go similarity index 100% rename from search/pkg/search/index/mocks/BleveIndex.go rename to extensions/search/pkg/search/index/mocks/BleveIndex.go diff --git a/search/pkg/search/mocks/IndexClient.go b/extensions/search/pkg/search/mocks/IndexClient.go similarity index 100% rename from search/pkg/search/mocks/IndexClient.go rename to extensions/search/pkg/search/mocks/IndexClient.go diff --git a/search/pkg/search/mocks/ProviderClient.go b/extensions/search/pkg/search/mocks/ProviderClient.go similarity index 100% rename from search/pkg/search/mocks/ProviderClient.go rename to extensions/search/pkg/search/mocks/ProviderClient.go diff --git a/extensions/search/pkg/search/provider/provider_suite_test.go b/extensions/search/pkg/search/provider/provider_suite_test.go new file mode 100644 index 000000000..9187db027 --- /dev/null +++ b/extensions/search/pkg/search/provider/provider_suite_test.go @@ -0,0 +1,13 @@ +package provider_test + +import ( + "testing" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +func TestProvider(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "Provider Suite") +} diff --git a/search/pkg/search/provider/searchprovider.go b/extensions/search/pkg/search/provider/searchprovider.go similarity index 73% rename from search/pkg/search/provider/searchprovider.go rename to extensions/search/pkg/search/provider/searchprovider.go index b96358b90..8735188d5 100644 --- a/search/pkg/search/provider/searchprovider.go +++ b/extensions/search/pkg/search/provider/searchprovider.go @@ -1,21 +1,3 @@ -// Copyright 2018-2022 CERN -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// In applying this license, CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - package provider import ( @@ -28,7 +10,7 @@ import ( typesv1beta1 "github.com/cs3org/go-cs3apis/cs3/types/v1beta1" "github.com/cs3org/reva/v2/pkg/errtypes" "github.com/cs3org/reva/v2/pkg/utils" - "github.com/owncloud/ocis/search/pkg/search" + "github.com/owncloud/ocis/extensions/search/pkg/search" searchmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/search/v0" searchsvc "github.com/owncloud/ocis/protogen/gen/ocis/services/search/v0" diff --git a/search/pkg/search/provider/searchprovider_test.go b/extensions/search/pkg/search/provider/searchprovider_test.go similarity index 90% rename from search/pkg/search/provider/searchprovider_test.go rename to extensions/search/pkg/search/provider/searchprovider_test.go index 575d5d56d..d883caf37 100644 --- a/search/pkg/search/provider/searchprovider_test.go +++ b/extensions/search/pkg/search/provider/searchprovider_test.go @@ -1,21 +1,3 @@ -// Copyright 2018-2022 CERN -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// In applying this license, CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - package provider_test import ( @@ -30,10 +12,10 @@ import ( typesv1beta1 "github.com/cs3org/go-cs3apis/cs3/types/v1beta1" "github.com/cs3org/reva/v2/pkg/rgrpc/status" cs3mocks "github.com/cs3org/reva/v2/tests/cs3mocks/mocks" + "github.com/owncloud/ocis/extensions/search/pkg/search/mocks" + provider "github.com/owncloud/ocis/extensions/search/pkg/search/provider" searchmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/search/v0" searchsvc "github.com/owncloud/ocis/protogen/gen/ocis/services/search/v0" - "github.com/owncloud/ocis/search/pkg/search/mocks" - provider "github.com/owncloud/ocis/search/pkg/search/provider" ) var _ = Describe("Searchprovider", func() { diff --git a/search/pkg/search/search.go b/extensions/search/pkg/search/search.go similarity index 100% rename from search/pkg/search/search.go rename to extensions/search/pkg/search/search.go diff --git a/extensions/search/pkg/search/search_suite_test.go b/extensions/search/pkg/search/search_suite_test.go new file mode 100644 index 000000000..9b2060ec0 --- /dev/null +++ b/extensions/search/pkg/search/search_suite_test.go @@ -0,0 +1,13 @@ +package search_test + +import ( + "testing" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +func TestSearch(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "Search Suite") +} diff --git a/extensions/search/pkg/server/debug/option.go b/extensions/search/pkg/server/debug/option.go new file mode 100644 index 000000000..33470673d --- /dev/null +++ b/extensions/search/pkg/server/debug/option.go @@ -0,0 +1,50 @@ +package debug + +import ( + "context" + + "github.com/owncloud/ocis/extensions/search/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// Option defines a single option function. +type Option func(o *Options) + +// Options defines the available options for this package. +type Options struct { + Logger log.Logger + Context context.Context + Config *config.Config +} + +// newOptions initializes the available default options. +func newOptions(opts ...Option) Options { + opt := Options{} + + for _, o := range opts { + o(&opt) + } + + return opt +} + +// Logger provides a function to set the logger option. +func Logger(val log.Logger) Option { + return func(o *Options) { + o.Logger = val + } +} + +// Context provides a function to set the context option. +func Context(val context.Context) Option { + return func(o *Options) { + o.Context = val + } +} + +// Config provides a function to set the config option. +func Config(val *config.Config) Option { + return func(o *Options) { + o.Config = val + } +} diff --git a/extensions/search/pkg/server/debug/server.go b/extensions/search/pkg/server/debug/server.go new file mode 100644 index 000000000..8fe769df7 --- /dev/null +++ b/extensions/search/pkg/server/debug/server.go @@ -0,0 +1,59 @@ +package debug + +import ( + "io" + "net/http" + + "github.com/owncloud/ocis/extensions/search/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/service/debug" + "github.com/owncloud/ocis/ocis-pkg/version" +) + +// Server initializes the debug service and server. +func Server(opts ...Option) (*http.Server, error) { + options := newOptions(opts...) + + return debug.NewService( + debug.Logger(options.Logger), + debug.Name(options.Config.Service.Name), + debug.Version(version.String), + debug.Address(options.Config.Debug.Addr), + debug.Token(options.Config.Debug.Token), + debug.Pprof(options.Config.Debug.Pprof), + debug.Zpages(options.Config.Debug.Zpages), + debug.Health(health(options.Config)), + debug.Ready(ready(options.Config)), + ), nil +} + +// health implements the health check. +func health(cfg *config.Config) func(http.ResponseWriter, *http.Request) { + return func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/plain") + w.WriteHeader(http.StatusOK) + + // TODO: check if services are up and running + + _, err := io.WriteString(w, http.StatusText(http.StatusOK)) + // io.WriteString should not fail but if it does we want to know. + if err != nil { + panic(err) + } + } +} + +// ready implements the ready check. +func ready(cfg *config.Config) func(http.ResponseWriter, *http.Request) { + return func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/plain") + w.WriteHeader(http.StatusOK) + + // TODO: check if services are up and running + + _, err := io.WriteString(w, http.StatusText(http.StatusOK)) + // io.WriteString should not fail but if it does we want to know. + if err != nil { + panic(err) + } + } +} diff --git a/search/pkg/server/grpc/option.go b/extensions/search/pkg/server/grpc/option.go similarity index 89% rename from search/pkg/server/grpc/option.go rename to extensions/search/pkg/server/grpc/option.go index b1b969f71..b53784584 100644 --- a/search/pkg/server/grpc/option.go +++ b/extensions/search/pkg/server/grpc/option.go @@ -3,10 +3,10 @@ package grpc import ( "context" + "github.com/owncloud/ocis/extensions/search/pkg/config" + "github.com/owncloud/ocis/extensions/search/pkg/metrics" + svc "github.com/owncloud/ocis/extensions/search/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/search/pkg/config" - "github.com/owncloud/ocis/search/pkg/metrics" - svc "github.com/owncloud/ocis/search/pkg/service/v0" "github.com/urfave/cli/v2" ) diff --git a/search/pkg/server/grpc/server.go b/extensions/search/pkg/server/grpc/server.go similarity index 93% rename from search/pkg/server/grpc/server.go rename to extensions/search/pkg/server/grpc/server.go index e2fe642b1..ef1ea0c07 100644 --- a/search/pkg/server/grpc/server.go +++ b/extensions/search/pkg/server/grpc/server.go @@ -1,10 +1,10 @@ package grpc import ( + svc "github.com/owncloud/ocis/extensions/search/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/service/grpc" "github.com/owncloud/ocis/ocis-pkg/version" searchsvc "github.com/owncloud/ocis/protogen/gen/ocis/services/search/v0" - svc "github.com/owncloud/ocis/search/pkg/service/v0" ) // Server initializes a new go-micro service ready to run diff --git a/search/pkg/service/v0/option.go b/extensions/search/pkg/service/v0/option.go similarity index 92% rename from search/pkg/service/v0/option.go rename to extensions/search/pkg/service/v0/option.go index fca7bd5fc..1b592e3a3 100644 --- a/search/pkg/service/v0/option.go +++ b/extensions/search/pkg/service/v0/option.go @@ -1,8 +1,8 @@ package service import ( + "github.com/owncloud/ocis/extensions/search/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/search/pkg/config" ) // Option defines a single option function. diff --git a/search/pkg/service/v0/service.go b/extensions/search/pkg/service/v0/service.go similarity index 85% rename from search/pkg/service/v0/service.go rename to extensions/search/pkg/service/v0/service.go index 79e1c03e3..e9ffd1782 100644 --- a/search/pkg/service/v0/service.go +++ b/extensions/search/pkg/service/v0/service.go @@ -6,12 +6,12 @@ import ( "github.com/blevesearch/bleve/v2" "github.com/cs3org/reva/v2/pkg/rgrpc/todo/pool" + "github.com/owncloud/ocis/extensions/search/pkg/config" + "github.com/owncloud/ocis/extensions/search/pkg/search" + "github.com/owncloud/ocis/extensions/search/pkg/search/index" + searchprovider "github.com/owncloud/ocis/extensions/search/pkg/search/provider" "github.com/owncloud/ocis/ocis-pkg/log" searchsvc "github.com/owncloud/ocis/protogen/gen/ocis/services/search/v0" - "github.com/owncloud/ocis/search/pkg/config" - "github.com/owncloud/ocis/search/pkg/search" - "github.com/owncloud/ocis/search/pkg/search/index" - searchprovider "github.com/owncloud/ocis/search/pkg/search/provider" ) // NewHandler returns a service implementation for Service. diff --git a/graph-explorer/pkg/tracing/tracing.go b/extensions/search/pkg/tracing/tracing.go similarity index 89% rename from graph-explorer/pkg/tracing/tracing.go rename to extensions/search/pkg/tracing/tracing.go index 73b4c863c..2f1f8e513 100644 --- a/graph-explorer/pkg/tracing/tracing.go +++ b/extensions/search/pkg/tracing/tracing.go @@ -1,7 +1,7 @@ package tracing import ( - "github.com/owncloud/ocis/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/search/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "go.opentelemetry.io/otel/trace" ) diff --git a/settings/.dockerignore b/extensions/settings/.dockerignore similarity index 100% rename from settings/.dockerignore rename to extensions/settings/.dockerignore diff --git a/settings/.eslintrc.json b/extensions/settings/.eslintrc.json similarity index 100% rename from settings/.eslintrc.json rename to extensions/settings/.eslintrc.json diff --git a/settings/.gitignore b/extensions/settings/.gitignore similarity index 100% rename from settings/.gitignore rename to extensions/settings/.gitignore diff --git a/settings/.golangci.yml b/extensions/settings/.golangci.yml similarity index 100% rename from settings/.golangci.yml rename to extensions/settings/.golangci.yml diff --git a/settings/.yarn/releases/yarn-stable-temp.cjs b/extensions/settings/.yarn/releases/yarn-stable-temp.cjs similarity index 100% rename from settings/.yarn/releases/yarn-stable-temp.cjs rename to extensions/settings/.yarn/releases/yarn-stable-temp.cjs diff --git a/settings/Makefile b/extensions/settings/Makefile similarity index 82% rename from settings/Makefile rename to extensions/settings/Makefile index 43a56277c..397bb11c3 100644 --- a/settings/Makefile +++ b/extensions/settings/Makefile @@ -1,7 +1,7 @@ SHELL := bash NAME := settings -include ../.make/recursion.mk +include ../../.make/recursion.mk .PHONY: test-acceptance-webui test-acceptance-webui: @@ -10,28 +10,28 @@ test-acceptance-webui: ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ############ -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk ############ l10n ############ -include ../.make/l10n.mk +include ../../.make/l10n.mk .PHONY: docs-generate docs-generate: config-docs-generate \ grpc-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: protobuf # CI runs ci-node-generate automatically before this target @@ -50,7 +50,7 @@ node_modules: @yarn install --immutable 2>&1 >/dev/null ############ protobuf ############ -include ../.make/protobuf.mk +include ../../.make/protobuf.mk .PHONY: protobuf protobuf: buf-generate diff --git a/settings/assets/.keep b/extensions/settings/assets/.keep similarity index 100% rename from settings/assets/.keep rename to extensions/settings/assets/.keep diff --git a/settings/babel.config.js b/extensions/settings/babel.config.js similarity index 100% rename from settings/babel.config.js rename to extensions/settings/babel.config.js diff --git a/extensions/settings/cmd/settings/main.go b/extensions/settings/cmd/settings/main.go new file mode 100644 index 000000000..ec5a85362 --- /dev/null +++ b/extensions/settings/cmd/settings/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/settings/pkg/command" + "github.com/owncloud/ocis/extensions/settings/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/settings/docker/Dockerfile.linux.amd64 b/extensions/settings/docker/Dockerfile.linux.amd64 similarity index 100% rename from settings/docker/Dockerfile.linux.amd64 rename to extensions/settings/docker/Dockerfile.linux.amd64 diff --git a/settings/docker/Dockerfile.linux.arm b/extensions/settings/docker/Dockerfile.linux.arm similarity index 100% rename from settings/docker/Dockerfile.linux.arm rename to extensions/settings/docker/Dockerfile.linux.arm diff --git a/settings/docker/Dockerfile.linux.arm64 b/extensions/settings/docker/Dockerfile.linux.arm64 similarity index 100% rename from settings/docker/Dockerfile.linux.arm64 rename to extensions/settings/docker/Dockerfile.linux.arm64 diff --git a/settings/docker/manifest.tmpl b/extensions/settings/docker/manifest.tmpl similarity index 100% rename from settings/docker/manifest.tmpl rename to extensions/settings/docker/manifest.tmpl diff --git a/settings/l10n/.tx/config b/extensions/settings/l10n/.tx/config similarity index 100% rename from settings/l10n/.tx/config rename to extensions/settings/l10n/.tx/config diff --git a/settings/l10n/translations.json b/extensions/settings/l10n/translations.json similarity index 100% rename from settings/l10n/translations.json rename to extensions/settings/l10n/translations.json diff --git a/settings/nightwatch.conf.js b/extensions/settings/nightwatch.conf.js similarity index 100% rename from settings/nightwatch.conf.js rename to extensions/settings/nightwatch.conf.js diff --git a/settings/package.json b/extensions/settings/package.json similarity index 100% rename from settings/package.json rename to extensions/settings/package.json diff --git a/settings/pkg/assets/option.go b/extensions/settings/pkg/assets/option.go similarity index 90% rename from settings/pkg/assets/option.go rename to extensions/settings/pkg/assets/option.go index 3b23576b2..a01d6fa86 100644 --- a/settings/pkg/assets/option.go +++ b/extensions/settings/pkg/assets/option.go @@ -3,10 +3,10 @@ package assets import ( "net/http" + "github.com/owncloud/ocis/extensions/settings" + "github.com/owncloud/ocis/extensions/settings/pkg/config" "github.com/owncloud/ocis/ocis-pkg/assetsfs" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/settings" - "github.com/owncloud/ocis/settings/pkg/config" ) // New returns a new http filesystem to serve assets. diff --git a/settings/pkg/command/health.go b/extensions/settings/pkg/command/health.go similarity index 83% rename from settings/pkg/command/health.go rename to extensions/settings/pkg/command/health.go index 3475fceab..82cc7202f 100644 --- a/settings/pkg/command/health.go +++ b/extensions/settings/pkg/command/health.go @@ -4,9 +4,9 @@ import ( "fmt" "net/http" - "github.com/owncloud/ocis/settings/pkg/config" - "github.com/owncloud/ocis/settings/pkg/config/parser" - "github.com/owncloud/ocis/settings/pkg/logging" + "github.com/owncloud/ocis/extensions/settings/pkg/config" + "github.com/owncloud/ocis/extensions/settings/pkg/config/parser" + "github.com/owncloud/ocis/extensions/settings/pkg/logging" "github.com/urfave/cli/v2" ) diff --git a/settings/pkg/command/root.go b/extensions/settings/pkg/command/root.go similarity index 95% rename from settings/pkg/command/root.go rename to extensions/settings/pkg/command/root.go index 4e65d6391..5ad6a4bff 100644 --- a/settings/pkg/command/root.go +++ b/extensions/settings/pkg/command/root.go @@ -4,9 +4,9 @@ import ( "context" "os" + "github.com/owncloud/ocis/extensions/settings/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/settings/pkg/config" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/settings/pkg/command/server.go b/extensions/settings/pkg/command/server.go similarity index 80% rename from settings/pkg/command/server.go rename to extensions/settings/pkg/command/server.go index c2c773d0a..877b48b2f 100644 --- a/settings/pkg/command/server.go +++ b/extensions/settings/pkg/command/server.go @@ -5,15 +5,15 @@ import ( "fmt" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/settings/pkg/config" + "github.com/owncloud/ocis/extensions/settings/pkg/config/parser" + "github.com/owncloud/ocis/extensions/settings/pkg/logging" + "github.com/owncloud/ocis/extensions/settings/pkg/metrics" + "github.com/owncloud/ocis/extensions/settings/pkg/server/debug" + "github.com/owncloud/ocis/extensions/settings/pkg/server/grpc" + "github.com/owncloud/ocis/extensions/settings/pkg/server/http" + "github.com/owncloud/ocis/extensions/settings/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/settings/pkg/config" - "github.com/owncloud/ocis/settings/pkg/config/parser" - "github.com/owncloud/ocis/settings/pkg/logging" - "github.com/owncloud/ocis/settings/pkg/metrics" - "github.com/owncloud/ocis/settings/pkg/server/debug" - "github.com/owncloud/ocis/settings/pkg/server/grpc" - "github.com/owncloud/ocis/settings/pkg/server/http" - "github.com/owncloud/ocis/settings/pkg/tracing" "github.com/urfave/cli/v2" ) diff --git a/store/pkg/command/version.go b/extensions/settings/pkg/command/version.go similarity index 95% rename from store/pkg/command/version.go rename to extensions/settings/pkg/command/version.go index e976ef727..58c2c6f03 100644 --- a/store/pkg/command/version.go +++ b/extensions/settings/pkg/command/version.go @@ -8,7 +8,7 @@ import ( "github.com/owncloud/ocis/ocis-pkg/version" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/store/pkg/config" + "github.com/owncloud/ocis/extensions/settings/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/settings/pkg/config/config.go b/extensions/settings/pkg/config/config.go similarity index 100% rename from settings/pkg/config/config.go rename to extensions/settings/pkg/config/config.go diff --git a/settings/pkg/config/debug.go b/extensions/settings/pkg/config/debug.go similarity index 100% rename from settings/pkg/config/debug.go rename to extensions/settings/pkg/config/debug.go diff --git a/settings/pkg/config/defaults/defaultconfig.go b/extensions/settings/pkg/config/defaults/defaultconfig.go similarity index 97% rename from settings/pkg/config/defaults/defaultconfig.go rename to extensions/settings/pkg/config/defaults/defaultconfig.go index f7b9ead4c..4a3a4cd31 100644 --- a/settings/pkg/config/defaults/defaultconfig.go +++ b/extensions/settings/pkg/config/defaults/defaultconfig.go @@ -4,8 +4,8 @@ import ( "path" "strings" + "github.com/owncloud/ocis/extensions/settings/pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/defaults" - "github.com/owncloud/ocis/settings/pkg/config" ) func FullDefaultConfig() *config.Config { diff --git a/settings/pkg/config/grpc.go b/extensions/settings/pkg/config/grpc.go similarity index 100% rename from settings/pkg/config/grpc.go rename to extensions/settings/pkg/config/grpc.go diff --git a/settings/pkg/config/http.go b/extensions/settings/pkg/config/http.go similarity index 100% rename from settings/pkg/config/http.go rename to extensions/settings/pkg/config/http.go diff --git a/settings/pkg/config/log.go b/extensions/settings/pkg/config/log.go similarity index 100% rename from settings/pkg/config/log.go rename to extensions/settings/pkg/config/log.go diff --git a/extensions/settings/pkg/config/parser/parse.go b/extensions/settings/pkg/config/parser/parse.go new file mode 100644 index 000000000..3880a7ebb --- /dev/null +++ b/extensions/settings/pkg/config/parser/parse.go @@ -0,0 +1,32 @@ +package parser + +import ( + "errors" + + "github.com/owncloud/ocis/extensions/settings/pkg/config" + "github.com/owncloud/ocis/extensions/settings/pkg/config/defaults" + ociscfg "github.com/owncloud/ocis/ocis-pkg/config" + + "github.com/owncloud/ocis/ocis-pkg/config/envdecode" +) + +// ParseConfig loads accounts configuration from known paths. +func ParseConfig(cfg *config.Config) error { + _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) + if err != nil { + return err + } + + defaults.EnsureDefaults(cfg) + // load all env variables relevant to the config in the current context. + if err := envdecode.Decode(cfg); err != nil { + // no environment variable set for this config is an expected "error" + if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { + return err + } + } + + defaults.Sanitize(cfg) + + return nil +} diff --git a/settings/pkg/config/reva.go b/extensions/settings/pkg/config/reva.go similarity index 100% rename from settings/pkg/config/reva.go rename to extensions/settings/pkg/config/reva.go diff --git a/settings/pkg/config/service.go b/extensions/settings/pkg/config/service.go similarity index 100% rename from settings/pkg/config/service.go rename to extensions/settings/pkg/config/service.go diff --git a/settings/pkg/config/tracing.go b/extensions/settings/pkg/config/tracing.go similarity index 100% rename from settings/pkg/config/tracing.go rename to extensions/settings/pkg/config/tracing.go diff --git a/extensions/settings/pkg/logging/logging.go b/extensions/settings/pkg/logging/logging.go new file mode 100644 index 000000000..1c9e35011 --- /dev/null +++ b/extensions/settings/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/settings/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/settings/pkg/metrics/metrics.go b/extensions/settings/pkg/metrics/metrics.go similarity index 100% rename from settings/pkg/metrics/metrics.go rename to extensions/settings/pkg/metrics/metrics.go diff --git a/extensions/settings/pkg/server/debug/option.go b/extensions/settings/pkg/server/debug/option.go new file mode 100644 index 000000000..06448e9ec --- /dev/null +++ b/extensions/settings/pkg/server/debug/option.go @@ -0,0 +1,50 @@ +package debug + +import ( + "context" + + "github.com/owncloud/ocis/extensions/settings/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// Option defines a single option function. +type Option func(o *Options) + +// Options defines the available options for this package. +type Options struct { + Logger log.Logger + Context context.Context + Config *config.Config +} + +// newOptions initializes the available default options. +func newOptions(opts ...Option) Options { + opt := Options{} + + for _, o := range opts { + o(&opt) + } + + return opt +} + +// Logger provides a function to set the logger option. +func Logger(val log.Logger) Option { + return func(o *Options) { + o.Logger = val + } +} + +// Context provides a function to set the context option. +func Context(val context.Context) Option { + return func(o *Options) { + o.Context = val + } +} + +// Config provides a function to set the config option. +func Config(val *config.Config) Option { + return func(o *Options) { + o.Config = val + } +} diff --git a/webdav/pkg/server/debug/server.go b/extensions/settings/pkg/server/debug/server.go similarity index 96% rename from webdav/pkg/server/debug/server.go rename to extensions/settings/pkg/server/debug/server.go index ff0ee6b4f..76f5f9469 100644 --- a/webdav/pkg/server/debug/server.go +++ b/extensions/settings/pkg/server/debug/server.go @@ -4,9 +4,9 @@ import ( "io" "net/http" + "github.com/owncloud/ocis/extensions/settings/pkg/config" "github.com/owncloud/ocis/ocis-pkg/service/debug" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/webdav/pkg/config" ) // Server initializes the debug service and server. diff --git a/settings/pkg/server/grpc/option.go b/extensions/settings/pkg/server/grpc/option.go similarity index 92% rename from settings/pkg/server/grpc/option.go rename to extensions/settings/pkg/server/grpc/option.go index 5bea3ef47..4b910fe06 100644 --- a/settings/pkg/server/grpc/option.go +++ b/extensions/settings/pkg/server/grpc/option.go @@ -3,9 +3,9 @@ package grpc import ( "context" + "github.com/owncloud/ocis/extensions/settings/pkg/config" + "github.com/owncloud/ocis/extensions/settings/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/settings/pkg/config" - "github.com/owncloud/ocis/settings/pkg/metrics" "github.com/urfave/cli/v2" ) diff --git a/settings/pkg/server/grpc/server.go b/extensions/settings/pkg/server/grpc/server.go similarity index 97% rename from settings/pkg/server/grpc/server.go rename to extensions/settings/pkg/server/grpc/server.go index ee9e3720d..bc49aeaaa 100644 --- a/settings/pkg/server/grpc/server.go +++ b/extensions/settings/pkg/server/grpc/server.go @@ -4,10 +4,10 @@ import ( "context" permissions "github.com/cs3org/go-cs3apis/cs3/permissions/v1beta1" + svc "github.com/owncloud/ocis/extensions/settings/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/service/grpc" "github.com/owncloud/ocis/ocis-pkg/version" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - svc "github.com/owncloud/ocis/settings/pkg/service/v0" "go-micro.dev/v4/api" "go-micro.dev/v4/server" ) diff --git a/settings/pkg/server/http/option.go b/extensions/settings/pkg/server/http/option.go similarity index 92% rename from settings/pkg/server/http/option.go rename to extensions/settings/pkg/server/http/option.go index 6f6d2bc3b..82d69d5ae 100644 --- a/settings/pkg/server/http/option.go +++ b/extensions/settings/pkg/server/http/option.go @@ -3,9 +3,9 @@ package http import ( "context" + "github.com/owncloud/ocis/extensions/settings/pkg/config" + "github.com/owncloud/ocis/extensions/settings/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/settings/pkg/config" - "github.com/owncloud/ocis/settings/pkg/metrics" "github.com/urfave/cli/v2" ) diff --git a/settings/pkg/server/http/server.go b/extensions/settings/pkg/server/http/server.go similarity index 94% rename from settings/pkg/server/http/server.go rename to extensions/settings/pkg/server/http/server.go index 173a9fc7a..6b034631f 100644 --- a/settings/pkg/server/http/server.go +++ b/extensions/settings/pkg/server/http/server.go @@ -3,14 +3,14 @@ package http import ( "github.com/go-chi/chi/v5" chimiddleware "github.com/go-chi/chi/v5/middleware" + "github.com/owncloud/ocis/extensions/settings/pkg/assets" + svc "github.com/owncloud/ocis/extensions/settings/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/account" "github.com/owncloud/ocis/ocis-pkg/cors" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" "github.com/owncloud/ocis/ocis-pkg/version" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - "github.com/owncloud/ocis/settings/pkg/assets" - svc "github.com/owncloud/ocis/settings/pkg/service/v0" "go-micro.dev/v4" ) diff --git a/settings/pkg/service/v0/instrument.go b/extensions/settings/pkg/service/v0/instrument.go similarity index 79% rename from settings/pkg/service/v0/instrument.go rename to extensions/settings/pkg/service/v0/instrument.go index 41fef8b7d..799539466 100644 --- a/settings/pkg/service/v0/instrument.go +++ b/extensions/settings/pkg/service/v0/instrument.go @@ -1,7 +1,7 @@ package svc import ( - "github.com/owncloud/ocis/settings/pkg/metrics" + "github.com/owncloud/ocis/extensions/settings/pkg/metrics" ) // NewInstrument returns a service that instruments metrics. diff --git a/settings/pkg/service/v0/logging.go b/extensions/settings/pkg/service/v0/logging.go similarity index 100% rename from settings/pkg/service/v0/logging.go rename to extensions/settings/pkg/service/v0/logging.go diff --git a/settings/pkg/service/v0/option.go b/extensions/settings/pkg/service/v0/option.go similarity index 93% rename from settings/pkg/service/v0/option.go rename to extensions/settings/pkg/service/v0/option.go index 4c35d5790..c65665b25 100644 --- a/settings/pkg/service/v0/option.go +++ b/extensions/settings/pkg/service/v0/option.go @@ -3,8 +3,8 @@ package svc import ( "net/http" + "github.com/owncloud/ocis/extensions/settings/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/settings/pkg/config" ) // Option defines a single option function. diff --git a/settings/pkg/service/v0/permissions.go b/extensions/settings/pkg/service/v0/permissions.go similarity index 100% rename from settings/pkg/service/v0/permissions.go rename to extensions/settings/pkg/service/v0/permissions.go diff --git a/settings/pkg/service/v0/service.go b/extensions/settings/pkg/service/v0/service.go similarity index 98% rename from settings/pkg/service/v0/service.go rename to extensions/settings/pkg/service/v0/service.go index 691bcd23b..213151e9d 100644 --- a/settings/pkg/service/v0/service.go +++ b/extensions/settings/pkg/service/v0/service.go @@ -8,15 +8,15 @@ import ( permissions "github.com/cs3org/go-cs3apis/cs3/permissions/v1beta1" rpcv1beta1 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" "github.com/cs3org/reva/v2/pkg/rgrpc/status" + "github.com/owncloud/ocis/extensions/settings/pkg/config" + "github.com/owncloud/ocis/extensions/settings/pkg/settings" + filestore "github.com/owncloud/ocis/extensions/settings/pkg/store/filesystem" + metastore "github.com/owncloud/ocis/extensions/settings/pkg/store/metadata" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/roles" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" settingssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/settings/v0" - "github.com/owncloud/ocis/settings/pkg/config" - "github.com/owncloud/ocis/settings/pkg/settings" - filestore "github.com/owncloud/ocis/settings/pkg/store/filesystem" - metastore "github.com/owncloud/ocis/settings/pkg/store/metadata" merrors "go-micro.dev/v4/errors" "go-micro.dev/v4/metadata" "google.golang.org/protobuf/types/known/emptypb" diff --git a/settings/pkg/service/v0/service_test.go b/extensions/settings/pkg/service/v0/service_test.go similarity index 100% rename from settings/pkg/service/v0/service_test.go rename to extensions/settings/pkg/service/v0/service_test.go diff --git a/settings/pkg/service/v0/settings.go b/extensions/settings/pkg/service/v0/settings.go similarity index 100% rename from settings/pkg/service/v0/settings.go rename to extensions/settings/pkg/service/v0/settings.go diff --git a/settings/pkg/service/v0/tracing.go b/extensions/settings/pkg/service/v0/tracing.go similarity index 100% rename from settings/pkg/service/v0/tracing.go rename to extensions/settings/pkg/service/v0/tracing.go diff --git a/settings/pkg/service/v0/validator.go b/extensions/settings/pkg/service/v0/validator.go similarity index 100% rename from settings/pkg/service/v0/validator.go rename to extensions/settings/pkg/service/v0/validator.go diff --git a/settings/pkg/settings/settings.go b/extensions/settings/pkg/settings/settings.go similarity index 97% rename from settings/pkg/settings/settings.go rename to extensions/settings/pkg/settings/settings.go index 9132423e8..3b09ed6dd 100644 --- a/settings/pkg/settings/settings.go +++ b/extensions/settings/pkg/settings/settings.go @@ -3,8 +3,8 @@ package settings import ( "errors" + "github.com/owncloud/ocis/extensions/settings/pkg/config" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" - "github.com/owncloud/ocis/settings/pkg/config" ) var ( diff --git a/settings/pkg/store/defaults/defaults.go b/extensions/settings/pkg/store/defaults/defaults.go similarity index 100% rename from settings/pkg/store/defaults/defaults.go rename to extensions/settings/pkg/store/defaults/defaults.go diff --git a/settings/pkg/store/errortypes/errortypes.go b/extensions/settings/pkg/store/errortypes/errortypes.go similarity index 100% rename from settings/pkg/store/errortypes/errortypes.go rename to extensions/settings/pkg/store/errortypes/errortypes.go diff --git a/settings/pkg/store/filesystem/assignments.go b/extensions/settings/pkg/store/filesystem/assignments.go similarity index 100% rename from settings/pkg/store/filesystem/assignments.go rename to extensions/settings/pkg/store/filesystem/assignments.go diff --git a/settings/pkg/store/filesystem/assignments_test.go b/extensions/settings/pkg/store/filesystem/assignments_test.go similarity index 100% rename from settings/pkg/store/filesystem/assignments_test.go rename to extensions/settings/pkg/store/filesystem/assignments_test.go diff --git a/settings/pkg/store/filesystem/bundles.go b/extensions/settings/pkg/store/filesystem/bundles.go similarity index 98% rename from settings/pkg/store/filesystem/bundles.go rename to extensions/settings/pkg/store/filesystem/bundles.go index 9ab850839..71f92ce37 100644 --- a/settings/pkg/store/filesystem/bundles.go +++ b/extensions/settings/pkg/store/filesystem/bundles.go @@ -8,8 +8,8 @@ import ( "sync" "github.com/gofrs/uuid" + "github.com/owncloud/ocis/extensions/settings/pkg/store/errortypes" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" - "github.com/owncloud/ocis/settings/pkg/store/errortypes" ) var m = &sync.RWMutex{} diff --git a/settings/pkg/store/filesystem/bundles_test.go b/extensions/settings/pkg/store/filesystem/bundles_test.go similarity index 100% rename from settings/pkg/store/filesystem/bundles_test.go rename to extensions/settings/pkg/store/filesystem/bundles_test.go diff --git a/settings/pkg/store/filesystem/io.go b/extensions/settings/pkg/store/filesystem/io.go similarity index 93% rename from settings/pkg/store/filesystem/io.go rename to extensions/settings/pkg/store/filesystem/io.go index 3f3e4df03..3de38d034 100644 --- a/settings/pkg/store/filesystem/io.go +++ b/extensions/settings/pkg/store/filesystem/io.go @@ -4,7 +4,7 @@ import ( "io/ioutil" "os" - "github.com/owncloud/ocis/settings/pkg/store/errortypes" + "github.com/owncloud/ocis/extensions/settings/pkg/store/errortypes" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" ) diff --git a/settings/pkg/store/filesystem/paths.go b/extensions/settings/pkg/store/filesystem/paths.go similarity index 100% rename from settings/pkg/store/filesystem/paths.go rename to extensions/settings/pkg/store/filesystem/paths.go diff --git a/settings/pkg/store/filesystem/permissions.go b/extensions/settings/pkg/store/filesystem/permissions.go similarity index 95% rename from settings/pkg/store/filesystem/permissions.go rename to extensions/settings/pkg/store/filesystem/permissions.go index eacd0f828..66c8a24e5 100644 --- a/settings/pkg/store/filesystem/permissions.go +++ b/extensions/settings/pkg/store/filesystem/permissions.go @@ -1,9 +1,9 @@ package store import ( + "github.com/owncloud/ocis/extensions/settings/pkg/settings" + "github.com/owncloud/ocis/extensions/settings/pkg/util" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" - "github.com/owncloud/ocis/settings/pkg/settings" - "github.com/owncloud/ocis/settings/pkg/util" ) // ListPermissionsByResource collects all permissions from the provided roleIDs that match the requested resource diff --git a/settings/pkg/store/filesystem/staticcheck.conf b/extensions/settings/pkg/store/filesystem/staticcheck.conf similarity index 100% rename from settings/pkg/store/filesystem/staticcheck.conf rename to extensions/settings/pkg/store/filesystem/staticcheck.conf diff --git a/settings/pkg/store/filesystem/store.go b/extensions/settings/pkg/store/filesystem/store.go similarity index 89% rename from settings/pkg/store/filesystem/store.go rename to extensions/settings/pkg/store/filesystem/store.go index ccd0fe011..3786cfde4 100644 --- a/settings/pkg/store/filesystem/store.go +++ b/extensions/settings/pkg/store/filesystem/store.go @@ -4,9 +4,9 @@ package store import ( "os" + "github.com/owncloud/ocis/extensions/settings/pkg/config" + "github.com/owncloud/ocis/extensions/settings/pkg/settings" olog "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/settings/pkg/config" - "github.com/owncloud/ocis/settings/pkg/settings" ) var ( diff --git a/settings/pkg/store/filesystem/store_test.go b/extensions/settings/pkg/store/filesystem/store_test.go similarity index 100% rename from settings/pkg/store/filesystem/store_test.go rename to extensions/settings/pkg/store/filesystem/store_test.go diff --git a/settings/pkg/store/filesystem/values.go b/extensions/settings/pkg/store/filesystem/values.go similarity index 100% rename from settings/pkg/store/filesystem/values.go rename to extensions/settings/pkg/store/filesystem/values.go diff --git a/settings/pkg/store/filesystem/values_test.go b/extensions/settings/pkg/store/filesystem/values_test.go similarity index 100% rename from settings/pkg/store/filesystem/values_test.go rename to extensions/settings/pkg/store/filesystem/values_test.go diff --git a/settings/pkg/store/metadata/assignments.go b/extensions/settings/pkg/store/metadata/assignments.go similarity index 97% rename from settings/pkg/store/metadata/assignments.go rename to extensions/settings/pkg/store/metadata/assignments.go index 9f71ce044..11fafbccb 100644 --- a/settings/pkg/store/metadata/assignments.go +++ b/extensions/settings/pkg/store/metadata/assignments.go @@ -7,8 +7,8 @@ import ( "fmt" "github.com/gofrs/uuid" + "github.com/owncloud/ocis/extensions/settings/pkg/store/defaults" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" - "github.com/owncloud/ocis/settings/pkg/store/defaults" ) // ListRoleAssignments loads and returns all role assignments matching the given assignment identifier. diff --git a/settings/pkg/store/metadata/assignments_test.go b/extensions/settings/pkg/store/metadata/assignments_test.go similarity index 98% rename from settings/pkg/store/metadata/assignments_test.go rename to extensions/settings/pkg/store/metadata/assignments_test.go index d4902f1e8..2111366e3 100644 --- a/settings/pkg/store/metadata/assignments_test.go +++ b/extensions/settings/pkg/store/metadata/assignments_test.go @@ -5,9 +5,9 @@ import ( "sync" "testing" + "github.com/owncloud/ocis/extensions/settings/pkg/config/defaults" olog "github.com/owncloud/ocis/ocis-pkg/log" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" - "github.com/owncloud/ocis/settings/pkg/config/defaults" "github.com/stretchr/testify/require" ) diff --git a/settings/pkg/store/metadata/bundles.go b/extensions/settings/pkg/store/metadata/bundles.go similarity index 98% rename from settings/pkg/store/metadata/bundles.go rename to extensions/settings/pkg/store/metadata/bundles.go index 766d6cf26..574aead6d 100644 --- a/settings/pkg/store/metadata/bundles.go +++ b/extensions/settings/pkg/store/metadata/bundles.go @@ -8,8 +8,8 @@ import ( "fmt" "github.com/gofrs/uuid" + "github.com/owncloud/ocis/extensions/settings/pkg/store/defaults" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" - "github.com/owncloud/ocis/settings/pkg/store/defaults" ) // ListBundles returns all bundles in the dataPath folder that match the given type. diff --git a/settings/pkg/store/metadata/bundles_test.go b/extensions/settings/pkg/store/metadata/bundles_test.go similarity index 100% rename from settings/pkg/store/metadata/bundles_test.go rename to extensions/settings/pkg/store/metadata/bundles_test.go diff --git a/settings/pkg/store/metadata/cache.go b/extensions/settings/pkg/store/metadata/cache.go similarity index 100% rename from settings/pkg/store/metadata/cache.go rename to extensions/settings/pkg/store/metadata/cache.go diff --git a/settings/pkg/store/metadata/permissions.go b/extensions/settings/pkg/store/metadata/permissions.go similarity index 95% rename from settings/pkg/store/metadata/permissions.go rename to extensions/settings/pkg/store/metadata/permissions.go index 50ebe12a5..59cfefab5 100644 --- a/settings/pkg/store/metadata/permissions.go +++ b/extensions/settings/pkg/store/metadata/permissions.go @@ -1,9 +1,9 @@ package store import ( + "github.com/owncloud/ocis/extensions/settings/pkg/settings" + "github.com/owncloud/ocis/extensions/settings/pkg/util" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" - "github.com/owncloud/ocis/settings/pkg/settings" - "github.com/owncloud/ocis/settings/pkg/util" ) // ListPermissionsByResource collects all permissions from the provided roleIDs that match the requested resource diff --git a/settings/pkg/store/metadata/permissions_test.go b/extensions/settings/pkg/store/metadata/permissions_test.go similarity index 100% rename from settings/pkg/store/metadata/permissions_test.go rename to extensions/settings/pkg/store/metadata/permissions_test.go diff --git a/settings/pkg/store/metadata/store.go b/extensions/settings/pkg/store/metadata/store.go similarity index 95% rename from settings/pkg/store/metadata/store.go rename to extensions/settings/pkg/store/metadata/store.go index db0abdcb5..c98615559 100644 --- a/settings/pkg/store/metadata/store.go +++ b/extensions/settings/pkg/store/metadata/store.go @@ -9,11 +9,11 @@ import ( "github.com/cs3org/reva/v2/pkg/storage/utils/metadata" "github.com/gofrs/uuid" + "github.com/owncloud/ocis/extensions/settings/pkg/config" + "github.com/owncloud/ocis/extensions/settings/pkg/settings" + "github.com/owncloud/ocis/extensions/settings/pkg/store/defaults" olog "github.com/owncloud/ocis/ocis-pkg/log" settingsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/settings/v0" - "github.com/owncloud/ocis/settings/pkg/config" - "github.com/owncloud/ocis/settings/pkg/settings" - "github.com/owncloud/ocis/settings/pkg/store/defaults" ) var ( diff --git a/settings/pkg/store/metadata/store_test.go b/extensions/settings/pkg/store/metadata/store_test.go similarity index 97% rename from settings/pkg/store/metadata/store_test.go rename to extensions/settings/pkg/store/metadata/store_test.go index 10570b62b..6ab658c39 100644 --- a/settings/pkg/store/metadata/store_test.go +++ b/extensions/settings/pkg/store/metadata/store_test.go @@ -4,7 +4,7 @@ import ( "context" "strings" - "github.com/owncloud/ocis/settings/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/settings/pkg/config/defaults" ) const ( diff --git a/settings/pkg/store/metadata/values.go b/extensions/settings/pkg/store/metadata/values.go similarity index 100% rename from settings/pkg/store/metadata/values.go rename to extensions/settings/pkg/store/metadata/values.go diff --git a/settings/pkg/store/metadata/values_test.go b/extensions/settings/pkg/store/metadata/values_test.go similarity index 100% rename from settings/pkg/store/metadata/values_test.go rename to extensions/settings/pkg/store/metadata/values_test.go diff --git a/extensions/settings/pkg/store/registry.go b/extensions/settings/pkg/store/registry.go new file mode 100644 index 000000000..26397471c --- /dev/null +++ b/extensions/settings/pkg/store/registry.go @@ -0,0 +1,7 @@ +package store + +import ( + // init filesystem store + _ "github.com/owncloud/ocis/extensions/settings/pkg/store/filesystem" + _ "github.com/owncloud/ocis/extensions/settings/pkg/store/metadata" +) diff --git a/settings/pkg/tracing/tracing.go b/extensions/settings/pkg/tracing/tracing.go similarity index 89% rename from settings/pkg/tracing/tracing.go rename to extensions/settings/pkg/tracing/tracing.go index 620d261cc..a9428f34a 100644 --- a/settings/pkg/tracing/tracing.go +++ b/extensions/settings/pkg/tracing/tracing.go @@ -1,8 +1,8 @@ package tracing import ( + "github.com/owncloud/ocis/extensions/settings/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - "github.com/owncloud/ocis/settings/pkg/config" "go.opentelemetry.io/otel/trace" ) diff --git a/settings/pkg/util/resource_helper.go b/extensions/settings/pkg/util/resource_helper.go similarity index 100% rename from settings/pkg/util/resource_helper.go rename to extensions/settings/pkg/util/resource_helper.go diff --git a/settings/pkg/util/resource_helper_test.go b/extensions/settings/pkg/util/resource_helper_test.go similarity index 100% rename from settings/pkg/util/resource_helper_test.go rename to extensions/settings/pkg/util/resource_helper_test.go diff --git a/settings/reflex.conf b/extensions/settings/reflex.conf similarity index 100% rename from settings/reflex.conf rename to extensions/settings/reflex.conf diff --git a/settings/rollup.config.js b/extensions/settings/rollup.config.js similarity index 100% rename from settings/rollup.config.js rename to extensions/settings/rollup.config.js diff --git a/settings/settings.go b/extensions/settings/settings.go similarity index 100% rename from settings/settings.go rename to extensions/settings/settings.go diff --git a/settings/ui/app.js b/extensions/settings/ui/app.js similarity index 100% rename from settings/ui/app.js rename to extensions/settings/ui/app.js diff --git a/settings/ui/client/settings/index.js b/extensions/settings/ui/client/settings/index.js similarity index 100% rename from settings/ui/client/settings/index.js rename to extensions/settings/ui/client/settings/index.js diff --git a/settings/ui/components/SettingsApp.vue b/extensions/settings/ui/components/SettingsApp.vue similarity index 100% rename from settings/ui/components/SettingsApp.vue rename to extensions/settings/ui/components/SettingsApp.vue diff --git a/settings/ui/components/SettingsBundle.vue b/extensions/settings/ui/components/SettingsBundle.vue similarity index 100% rename from settings/ui/components/SettingsBundle.vue rename to extensions/settings/ui/components/SettingsBundle.vue diff --git a/settings/ui/components/settings/SettingBoolean.vue b/extensions/settings/ui/components/settings/SettingBoolean.vue similarity index 100% rename from settings/ui/components/settings/SettingBoolean.vue rename to extensions/settings/ui/components/settings/SettingBoolean.vue diff --git a/settings/ui/components/settings/SettingMultiChoice.vue b/extensions/settings/ui/components/settings/SettingMultiChoice.vue similarity index 100% rename from settings/ui/components/settings/SettingMultiChoice.vue rename to extensions/settings/ui/components/settings/SettingMultiChoice.vue diff --git a/settings/ui/components/settings/SettingNumber.vue b/extensions/settings/ui/components/settings/SettingNumber.vue similarity index 100% rename from settings/ui/components/settings/SettingNumber.vue rename to extensions/settings/ui/components/settings/SettingNumber.vue diff --git a/settings/ui/components/settings/SettingSingleChoice.vue b/extensions/settings/ui/components/settings/SettingSingleChoice.vue similarity index 100% rename from settings/ui/components/settings/SettingSingleChoice.vue rename to extensions/settings/ui/components/settings/SettingSingleChoice.vue diff --git a/settings/ui/components/settings/SettingString.vue b/extensions/settings/ui/components/settings/SettingString.vue similarity index 100% rename from settings/ui/components/settings/SettingString.vue rename to extensions/settings/ui/components/settings/SettingString.vue diff --git a/settings/ui/components/settings/SettingUnknown.vue b/extensions/settings/ui/components/settings/SettingUnknown.vue similarity index 100% rename from settings/ui/components/settings/SettingUnknown.vue rename to extensions/settings/ui/components/settings/SettingUnknown.vue diff --git a/settings/ui/dictionary.js b/extensions/settings/ui/dictionary.js similarity index 100% rename from settings/ui/dictionary.js rename to extensions/settings/ui/dictionary.js diff --git a/settings/ui/store/index.js b/extensions/settings/ui/store/index.js similarity index 100% rename from settings/ui/store/index.js rename to extensions/settings/ui/store/index.js diff --git a/settings/ui/tests/acceptance/features/settings.feature b/extensions/settings/ui/tests/acceptance/features/settings.feature similarity index 100% rename from settings/ui/tests/acceptance/features/settings.feature rename to extensions/settings/ui/tests/acceptance/features/settings.feature diff --git a/settings/ui/tests/acceptance/helpers/language.js b/extensions/settings/ui/tests/acceptance/helpers/language.js similarity index 100% rename from settings/ui/tests/acceptance/helpers/language.js rename to extensions/settings/ui/tests/acceptance/helpers/language.js diff --git a/settings/ui/tests/acceptance/pageobjects/filesPageSettingsContext.js b/extensions/settings/ui/tests/acceptance/pageobjects/filesPageSettingsContext.js similarity index 100% rename from settings/ui/tests/acceptance/pageobjects/filesPageSettingsContext.js rename to extensions/settings/ui/tests/acceptance/pageobjects/filesPageSettingsContext.js diff --git a/settings/ui/tests/acceptance/pageobjects/settingsPage.js b/extensions/settings/ui/tests/acceptance/pageobjects/settingsPage.js similarity index 100% rename from settings/ui/tests/acceptance/pageobjects/settingsPage.js rename to extensions/settings/ui/tests/acceptance/pageobjects/settingsPage.js diff --git a/settings/ui/tests/acceptance/stepDefinitions/settingsContext.js b/extensions/settings/ui/tests/acceptance/stepDefinitions/settingsContext.js similarity index 100% rename from settings/ui/tests/acceptance/stepDefinitions/settingsContext.js rename to extensions/settings/ui/tests/acceptance/stepDefinitions/settingsContext.js diff --git a/settings/ui/tests/run-acceptance-test.sh b/extensions/settings/ui/tests/run-acceptance-test.sh similarity index 100% rename from settings/ui/tests/run-acceptance-test.sh rename to extensions/settings/ui/tests/run-acceptance-test.sh diff --git a/settings/yarn.lock b/extensions/settings/yarn.lock similarity index 100% rename from settings/yarn.lock rename to extensions/settings/yarn.lock diff --git a/storage/.dockerignore b/extensions/storage/.dockerignore similarity index 100% rename from storage/.dockerignore rename to extensions/storage/.dockerignore diff --git a/storage/Makefile b/extensions/storage/Makefile similarity index 78% rename from storage/Makefile rename to extensions/storage/Makefile index ac9af7fe1..bb9471219 100644 --- a/storage/Makefile +++ b/extensions/storage/Makefile @@ -1,27 +1,27 @@ SHELL := bash NAME := storage -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ######### -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: # CI runs ci-node-generate automatically before this target diff --git a/extensions/storage/cmd/storage/main.go b/extensions/storage/cmd/storage/main.go new file mode 100644 index 000000000..2941f76e7 --- /dev/null +++ b/extensions/storage/cmd/storage/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/storage/pkg/command" + "github.com/owncloud/ocis/extensions/storage/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/storage/docker/Dockerfile.linux.amd64 b/extensions/storage/docker/Dockerfile.linux.amd64 similarity index 100% rename from storage/docker/Dockerfile.linux.amd64 rename to extensions/storage/docker/Dockerfile.linux.amd64 diff --git a/storage/docker/Dockerfile.linux.arm b/extensions/storage/docker/Dockerfile.linux.arm similarity index 100% rename from storage/docker/Dockerfile.linux.arm rename to extensions/storage/docker/Dockerfile.linux.arm diff --git a/storage/docker/Dockerfile.linux.arm64 b/extensions/storage/docker/Dockerfile.linux.arm64 similarity index 100% rename from storage/docker/Dockerfile.linux.arm64 rename to extensions/storage/docker/Dockerfile.linux.arm64 diff --git a/storage/docker/manifest.tmpl b/extensions/storage/docker/manifest.tmpl similarity index 100% rename from storage/docker/manifest.tmpl rename to extensions/storage/docker/manifest.tmpl diff --git a/storage/pkg/command/appprovider.go b/extensions/storage/pkg/command/appprovider.go similarity index 96% rename from storage/pkg/command/appprovider.go rename to extensions/storage/pkg/command/appprovider.go index 94b0cafe2..54bf2e54c 100644 --- a/storage/pkg/command/appprovider.go +++ b/extensions/storage/pkg/command/appprovider.go @@ -9,11 +9,11 @@ import ( "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/authbasic.go b/extensions/storage/pkg/command/authbasic.go similarity index 96% rename from storage/pkg/command/authbasic.go rename to extensions/storage/pkg/command/authbasic.go index 30b0945a9..7b6d9be99 100644 --- a/storage/pkg/command/authbasic.go +++ b/extensions/storage/pkg/command/authbasic.go @@ -10,11 +10,11 @@ import ( "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/authbearer.go b/extensions/storage/pkg/command/authbearer.go similarity index 95% rename from storage/pkg/command/authbearer.go rename to extensions/storage/pkg/command/authbearer.go index b98f39a4b..be81f0a22 100644 --- a/storage/pkg/command/authbearer.go +++ b/extensions/storage/pkg/command/authbearer.go @@ -9,11 +9,11 @@ import ( "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/authmachine.go b/extensions/storage/pkg/command/authmachine.go similarity index 95% rename from storage/pkg/command/authmachine.go rename to extensions/storage/pkg/command/authmachine.go index 8812ca686..431b9e055 100644 --- a/storage/pkg/command/authmachine.go +++ b/extensions/storage/pkg/command/authmachine.go @@ -9,11 +9,11 @@ import ( "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/frontend.go b/extensions/storage/pkg/command/frontend.go similarity index 98% rename from storage/pkg/command/frontend.go rename to extensions/storage/pkg/command/frontend.go index e5f4d233b..a5b176d4e 100644 --- a/storage/pkg/command/frontend.go +++ b/extensions/storage/pkg/command/frontend.go @@ -12,12 +12,12 @@ import ( "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/conversions" "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/gateway.go b/extensions/storage/pkg/command/gateway.go similarity index 98% rename from storage/pkg/command/gateway.go rename to extensions/storage/pkg/command/gateway.go index 0001637aa..944d39d75 100644 --- a/storage/pkg/command/gateway.go +++ b/extensions/storage/pkg/command/gateway.go @@ -13,15 +13,15 @@ import ( "github.com/gofrs/uuid" "github.com/mitchellh/mapstructure" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/service/external" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/shared" "github.com/owncloud/ocis/ocis-pkg/sync" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/service/external" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/groups.go b/extensions/storage/pkg/command/groups.go similarity index 96% rename from storage/pkg/command/groups.go rename to extensions/storage/pkg/command/groups.go index 07a628ed8..e2e0747aa 100644 --- a/storage/pkg/command/groups.go +++ b/extensions/storage/pkg/command/groups.go @@ -10,11 +10,11 @@ import ( "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/health.go b/extensions/storage/pkg/command/health.go similarity index 94% rename from storage/pkg/command/health.go rename to extensions/storage/pkg/command/health.go index 7ba232a1c..3582a7731 100644 --- a/storage/pkg/command/health.go +++ b/extensions/storage/pkg/command/health.go @@ -4,7 +4,7 @@ import ( "fmt" "net/http" - "github.com/owncloud/ocis/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/ldapcfg.go b/extensions/storage/pkg/command/ldapcfg.go similarity index 97% rename from storage/pkg/command/ldapcfg.go rename to extensions/storage/pkg/command/ldapcfg.go index 9d9e39413..054cb023a 100644 --- a/storage/pkg/command/ldapcfg.go +++ b/extensions/storage/pkg/command/ldapcfg.go @@ -5,8 +5,8 @@ import ( "os" "time" + "github.com/owncloud/ocis/extensions/storage/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/storage/pkg/config" ) const caTimeout = 5 diff --git a/storage/pkg/command/ocdav.go b/extensions/storage/pkg/command/ocdav.go similarity index 94% rename from storage/pkg/command/ocdav.go rename to extensions/storage/pkg/command/ocdav.go index f3f64bf76..fd6afee77 100644 --- a/storage/pkg/command/ocdav.go +++ b/extensions/storage/pkg/command/ocdav.go @@ -6,11 +6,11 @@ import ( "github.com/cs3org/reva/v2/pkg/micro/ocdav" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/root.go b/extensions/storage/pkg/command/root.go similarity index 95% rename from storage/pkg/command/root.go rename to extensions/storage/pkg/command/root.go index 29c5b6a38..8493f125c 100644 --- a/storage/pkg/command/root.go +++ b/extensions/storage/pkg/command/root.go @@ -3,9 +3,9 @@ package command import ( "os" + "github.com/owncloud/ocis/extensions/storage/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/storage/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/sharing.go b/extensions/storage/pkg/command/sharing.go similarity index 97% rename from storage/pkg/command/sharing.go rename to extensions/storage/pkg/command/sharing.go index a3c17879d..f472e362d 100644 --- a/storage/pkg/command/sharing.go +++ b/extensions/storage/pkg/command/sharing.go @@ -7,16 +7,16 @@ import ( "path" "path/filepath" - "github.com/owncloud/ocis/storage/pkg/tracing" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/sync" "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/storagedrivers/metadata.go b/extensions/storage/pkg/command/storagedrivers/metadata.go similarity index 98% rename from storage/pkg/command/storagedrivers/metadata.go rename to extensions/storage/pkg/command/storagedrivers/metadata.go index 445d386c2..5e80e8981 100644 --- a/storage/pkg/command/storagedrivers/metadata.go +++ b/extensions/storage/pkg/command/storagedrivers/metadata.go @@ -1,7 +1,7 @@ package storagedrivers import ( - "github.com/owncloud/ocis/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/config" ) func MetadataDrivers(cfg *config.Config) map[string]interface{} { diff --git a/storage/pkg/command/storagedrivers/user.go b/extensions/storage/pkg/command/storagedrivers/user.go similarity index 99% rename from storage/pkg/command/storagedrivers/user.go rename to extensions/storage/pkg/command/storagedrivers/user.go index a15527344..83a80c354 100644 --- a/storage/pkg/command/storagedrivers/user.go +++ b/extensions/storage/pkg/command/storagedrivers/user.go @@ -1,7 +1,7 @@ package storagedrivers import ( - "github.com/owncloud/ocis/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/config" ) func UserDrivers(cfg *config.Config) map[string]interface{} { diff --git a/storage/pkg/command/storagemetadata.go b/extensions/storage/pkg/command/storagemetadata.go similarity index 94% rename from storage/pkg/command/storagemetadata.go rename to extensions/storage/pkg/command/storagemetadata.go index b57c466cf..946a5e625 100644 --- a/storage/pkg/command/storagemetadata.go +++ b/extensions/storage/pkg/command/storagemetadata.go @@ -11,13 +11,13 @@ import ( "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/command/storagedrivers" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/service/external" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/storage/pkg/command/storagedrivers" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/service/external" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/storagepubliclink.go b/extensions/storage/pkg/command/storagepubliclink.go similarity index 95% rename from storage/pkg/command/storagepubliclink.go rename to extensions/storage/pkg/command/storagepubliclink.go index a8c605b10..b2acc0574 100644 --- a/storage/pkg/command/storagepubliclink.go +++ b/extensions/storage/pkg/command/storagepubliclink.go @@ -9,11 +9,11 @@ import ( "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/storageshares.go b/extensions/storage/pkg/command/storageshares.go similarity index 95% rename from storage/pkg/command/storageshares.go rename to extensions/storage/pkg/command/storageshares.go index bc15a30dd..a4092bac4 100644 --- a/storage/pkg/command/storageshares.go +++ b/extensions/storage/pkg/command/storageshares.go @@ -11,10 +11,10 @@ import ( "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/storageusers.go b/extensions/storage/pkg/command/storageusers.go similarity index 95% rename from storage/pkg/command/storageusers.go rename to extensions/storage/pkg/command/storageusers.go index 0ebd68117..05b697d81 100644 --- a/storage/pkg/command/storageusers.go +++ b/extensions/storage/pkg/command/storageusers.go @@ -9,12 +9,12 @@ import ( "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/command/storagedrivers" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/owncloud/ocis/storage/pkg/command/storagedrivers" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/command/users.go b/extensions/storage/pkg/command/users.go similarity index 97% rename from storage/pkg/command/users.go rename to extensions/storage/pkg/command/users.go index 8e0bd0fbf..6e848cc86 100644 --- a/storage/pkg/command/users.go +++ b/extensions/storage/pkg/command/users.go @@ -10,11 +10,11 @@ import ( "github.com/cs3org/reva/v2/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/storage/pkg/config" + "github.com/owncloud/ocis/extensions/storage/pkg/server/debug" + "github.com/owncloud/ocis/extensions/storage/pkg/tracing" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/owncloud/ocis/storage/pkg/config" - "github.com/owncloud/ocis/storage/pkg/server/debug" - "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/storage/pkg/config/config.go b/extensions/storage/pkg/config/config.go similarity index 100% rename from storage/pkg/config/config.go rename to extensions/storage/pkg/config/config.go diff --git a/storage/pkg/config/defaults/defaultconfig.go b/extensions/storage/pkg/config/defaults/defaultconfig.go similarity index 99% rename from storage/pkg/config/defaults/defaultconfig.go rename to extensions/storage/pkg/config/defaults/defaultconfig.go index 3e51c8f3a..95cc5c6cd 100644 --- a/storage/pkg/config/defaults/defaultconfig.go +++ b/extensions/storage/pkg/config/defaults/defaultconfig.go @@ -4,8 +4,8 @@ import ( "os" "path" + "github.com/owncloud/ocis/extensions/storage/pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/defaults" - "github.com/owncloud/ocis/storage/pkg/config" ) const ( diff --git a/storage/pkg/server/debug/option.go b/extensions/storage/pkg/server/debug/option.go similarity index 95% rename from storage/pkg/server/debug/option.go rename to extensions/storage/pkg/server/debug/option.go index 7da000071..4cafd4120 100644 --- a/storage/pkg/server/debug/option.go +++ b/extensions/storage/pkg/server/debug/option.go @@ -3,8 +3,8 @@ package debug import ( "context" + "github.com/owncloud/ocis/extensions/storage/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/storage/pkg/config" ) // Option defines a single option function. diff --git a/storage/pkg/server/debug/server.go b/extensions/storage/pkg/server/debug/server.go similarity index 96% rename from storage/pkg/server/debug/server.go rename to extensions/storage/pkg/server/debug/server.go index 29ea57b0a..8b2759791 100644 --- a/storage/pkg/server/debug/server.go +++ b/extensions/storage/pkg/server/debug/server.go @@ -4,9 +4,9 @@ import ( "io" "net/http" + "github.com/owncloud/ocis/extensions/storage/pkg/config" "github.com/owncloud/ocis/ocis-pkg/service/debug" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/storage/pkg/config" ) // Server initializes the debug service and server. @@ -56,4 +56,4 @@ func ready(cfg *config.Config) func(http.ResponseWriter, *http.Request) { panic(err) } } -} \ No newline at end of file +} diff --git a/storage/pkg/service/external/external.go b/extensions/storage/pkg/service/external/external.go similarity index 100% rename from storage/pkg/service/external/external.go rename to extensions/storage/pkg/service/external/external.go diff --git a/storage/pkg/service/external/external_test.go b/extensions/storage/pkg/service/external/external_test.go similarity index 100% rename from storage/pkg/service/external/external_test.go rename to extensions/storage/pkg/service/external/external_test.go diff --git a/storage/pkg/tracing/tracing.go b/extensions/storage/pkg/tracing/tracing.go similarity index 93% rename from storage/pkg/tracing/tracing.go rename to extensions/storage/pkg/tracing/tracing.go index 2670283e8..c952d5df5 100644 --- a/storage/pkg/tracing/tracing.go +++ b/extensions/storage/pkg/tracing/tracing.go @@ -1,8 +1,8 @@ package tracing import ( + "github.com/owncloud/ocis/extensions/storage/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/storage/pkg/config" ) // Configure for Reva serves only as informational / instructive log messages. Tracing config will be delegated directly diff --git a/storage/reflex.conf b/extensions/storage/reflex.conf similarity index 100% rename from storage/reflex.conf rename to extensions/storage/reflex.conf diff --git a/store/.golangci.yaml b/extensions/store/.golangci.yaml similarity index 100% rename from store/.golangci.yaml rename to extensions/store/.golangci.yaml diff --git a/store/Makefile b/extensions/store/Makefile similarity index 78% rename from store/Makefile rename to extensions/store/Makefile index 3e913805b..70cef069d 100644 --- a/store/Makefile +++ b/extensions/store/Makefile @@ -1,28 +1,28 @@ SHELL := bash NAME := store -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ############ -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate \ grpc-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: protobuf # CI runs ci-node-generate automatically before this target @@ -32,7 +32,7 @@ ci-node-generate: ############ protobuf ############ -include ../.make/protobuf.mk +include ../../.make/protobuf.mk .PHONY: protobuf protobuf: buf-generate diff --git a/extensions/store/cmd/store/main.go b/extensions/store/cmd/store/main.go new file mode 100644 index 000000000..c520658d5 --- /dev/null +++ b/extensions/store/cmd/store/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/store/pkg/command" + "github.com/owncloud/ocis/extensions/store/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/store/docker/Dockerfile.linux.amd64 b/extensions/store/docker/Dockerfile.linux.amd64 similarity index 100% rename from store/docker/Dockerfile.linux.amd64 rename to extensions/store/docker/Dockerfile.linux.amd64 diff --git a/store/docker/Dockerfile.linux.arm b/extensions/store/docker/Dockerfile.linux.arm similarity index 100% rename from store/docker/Dockerfile.linux.arm rename to extensions/store/docker/Dockerfile.linux.arm diff --git a/store/docker/Dockerfile.linux.arm64 b/extensions/store/docker/Dockerfile.linux.arm64 similarity index 100% rename from store/docker/Dockerfile.linux.arm64 rename to extensions/store/docker/Dockerfile.linux.arm64 diff --git a/store/docker/manifest.tmpl b/extensions/store/docker/manifest.tmpl similarity index 100% rename from store/docker/manifest.tmpl rename to extensions/store/docker/manifest.tmpl diff --git a/extensions/store/pkg/command/health.go b/extensions/store/pkg/command/health.go new file mode 100644 index 000000000..7bf3ba8f4 --- /dev/null +++ b/extensions/store/pkg/command/health.go @@ -0,0 +1,53 @@ +package command + +import ( + "fmt" + "net/http" + + "github.com/owncloud/ocis/extensions/store/pkg/config" + "github.com/owncloud/ocis/extensions/store/pkg/config/parser" + "github.com/owncloud/ocis/extensions/store/pkg/logging" + "github.com/urfave/cli/v2" +) + +// Health is the entrypoint for the health command. +func Health(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "health", + Usage: "check health status", + Category: "info", + Before: func(c *cli.Context) error { + return parser.ParseConfig(cfg) + }, + Action: func(c *cli.Context) error { + logger := logging.Configure(cfg.Service.Name, cfg.Log) + + resp, err := http.Get( + fmt.Sprintf( + "http://%s/healthz", + cfg.Debug.Addr, + ), + ) + + if err != nil { + logger.Fatal(). + Err(err). + Msg("Failed to request health check") + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + logger.Fatal(). + Int("code", resp.StatusCode). + Msg("Health seems to be in bad state") + } + + logger.Debug(). + Int("code", resp.StatusCode). + Msg("Health got a good state") + + return nil + }, + } +} diff --git a/store/pkg/command/root.go b/extensions/store/pkg/command/root.go similarity index 96% rename from store/pkg/command/root.go rename to extensions/store/pkg/command/root.go index add49da6f..9dc06b0e7 100644 --- a/store/pkg/command/root.go +++ b/extensions/store/pkg/command/root.go @@ -4,9 +4,9 @@ import ( "context" "os" + "github.com/owncloud/ocis/extensions/store/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/store/pkg/config" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/store/pkg/command/server.go b/extensions/store/pkg/command/server.go similarity index 80% rename from store/pkg/command/server.go rename to extensions/store/pkg/command/server.go index eb0b7f8d6..ac14affd2 100644 --- a/store/pkg/command/server.go +++ b/extensions/store/pkg/command/server.go @@ -6,14 +6,14 @@ import ( "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/store/pkg/config" + "github.com/owncloud/ocis/extensions/store/pkg/config/parser" + "github.com/owncloud/ocis/extensions/store/pkg/logging" + "github.com/owncloud/ocis/extensions/store/pkg/metrics" + "github.com/owncloud/ocis/extensions/store/pkg/server/debug" + "github.com/owncloud/ocis/extensions/store/pkg/server/grpc" + "github.com/owncloud/ocis/extensions/store/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/store/pkg/config" - "github.com/owncloud/ocis/store/pkg/config/parser" - "github.com/owncloud/ocis/store/pkg/logging" - "github.com/owncloud/ocis/store/pkg/metrics" - "github.com/owncloud/ocis/store/pkg/server/debug" - "github.com/owncloud/ocis/store/pkg/server/grpc" - "github.com/owncloud/ocis/store/pkg/tracing" "github.com/urfave/cli/v2" ) diff --git a/accounts/pkg/command/version.go b/extensions/store/pkg/command/version.go similarity index 95% rename from accounts/pkg/command/version.go rename to extensions/store/pkg/command/version.go index a77668937..099101772 100644 --- a/accounts/pkg/command/version.go +++ b/extensions/store/pkg/command/version.go @@ -8,7 +8,7 @@ import ( "github.com/owncloud/ocis/ocis-pkg/version" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/store/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/store/pkg/config/config.go b/extensions/store/pkg/config/config.go similarity index 100% rename from store/pkg/config/config.go rename to extensions/store/pkg/config/config.go diff --git a/store/pkg/config/debug.go b/extensions/store/pkg/config/debug.go similarity index 100% rename from store/pkg/config/debug.go rename to extensions/store/pkg/config/debug.go diff --git a/store/pkg/config/defaults/defaultconfig.go b/extensions/store/pkg/config/defaults/defaultconfig.go similarity index 96% rename from store/pkg/config/defaults/defaultconfig.go rename to extensions/store/pkg/config/defaults/defaultconfig.go index 2381ceb4a..1d84c1c47 100644 --- a/store/pkg/config/defaults/defaultconfig.go +++ b/extensions/store/pkg/config/defaults/defaultconfig.go @@ -3,8 +3,8 @@ package defaults import ( "path" + "github.com/owncloud/ocis/extensions/store/pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/defaults" - "github.com/owncloud/ocis/store/pkg/config" ) func FullDefaultConfig() *config.Config { diff --git a/store/pkg/config/grpc.go b/extensions/store/pkg/config/grpc.go similarity index 100% rename from store/pkg/config/grpc.go rename to extensions/store/pkg/config/grpc.go diff --git a/store/pkg/config/log.go b/extensions/store/pkg/config/log.go similarity index 100% rename from store/pkg/config/log.go rename to extensions/store/pkg/config/log.go diff --git a/graph-explorer/pkg/config/parser/parse.go b/extensions/store/pkg/config/parser/parse.go similarity index 85% rename from graph-explorer/pkg/config/parser/parse.go rename to extensions/store/pkg/config/parser/parse.go index b9801ba94..7c9f02bda 100644 --- a/graph-explorer/pkg/config/parser/parse.go +++ b/extensions/store/pkg/config/parser/parse.go @@ -3,8 +3,8 @@ package parser import ( "errors" - "github.com/owncloud/ocis/graph-explorer/pkg/config" - "github.com/owncloud/ocis/graph-explorer/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/store/pkg/config" + "github.com/owncloud/ocis/extensions/store/pkg/config/defaults" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/envdecode" @@ -29,6 +29,5 @@ func ParseConfig(cfg *config.Config) error { // sanitize config defaults.Sanitize(cfg) - return nil } diff --git a/store/pkg/config/service.go b/extensions/store/pkg/config/service.go similarity index 100% rename from store/pkg/config/service.go rename to extensions/store/pkg/config/service.go diff --git a/store/pkg/config/tracing.go b/extensions/store/pkg/config/tracing.go similarity index 100% rename from store/pkg/config/tracing.go rename to extensions/store/pkg/config/tracing.go diff --git a/extensions/store/pkg/logging/logging.go b/extensions/store/pkg/logging/logging.go new file mode 100644 index 000000000..ae9008b4e --- /dev/null +++ b/extensions/store/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/store/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/store/pkg/metrics/metrics.go b/extensions/store/pkg/metrics/metrics.go similarity index 100% rename from store/pkg/metrics/metrics.go rename to extensions/store/pkg/metrics/metrics.go diff --git a/extensions/store/pkg/server/debug/option.go b/extensions/store/pkg/server/debug/option.go new file mode 100644 index 000000000..c911ff703 --- /dev/null +++ b/extensions/store/pkg/server/debug/option.go @@ -0,0 +1,50 @@ +package debug + +import ( + "context" + + "github.com/owncloud/ocis/extensions/store/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// Option defines a single option function. +type Option func(o *Options) + +// Options defines the available options for this package. +type Options struct { + Logger log.Logger + Context context.Context + Config *config.Config +} + +// newOptions initializes the available default options. +func newOptions(opts ...Option) Options { + opt := Options{} + + for _, o := range opts { + o(&opt) + } + + return opt +} + +// Logger provides a function to set the logger option. +func Logger(val log.Logger) Option { + return func(o *Options) { + o.Logger = val + } +} + +// Context provides a function to set the context option. +func Context(val context.Context) Option { + return func(o *Options) { + o.Context = val + } +} + +// Config provides a function to set the config option. +func Config(val *config.Config) Option { + return func(o *Options) { + o.Config = val + } +} diff --git a/graph-explorer/pkg/server/debug/server.go b/extensions/store/pkg/server/debug/server.go similarity index 96% rename from graph-explorer/pkg/server/debug/server.go rename to extensions/store/pkg/server/debug/server.go index 116509739..b82ec6a2f 100644 --- a/graph-explorer/pkg/server/debug/server.go +++ b/extensions/store/pkg/server/debug/server.go @@ -4,7 +4,7 @@ import ( "io" "net/http" - "github.com/owncloud/ocis/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/store/pkg/config" "github.com/owncloud/ocis/ocis-pkg/service/debug" "github.com/owncloud/ocis/ocis-pkg/version" ) diff --git a/store/pkg/server/grpc/option.go b/extensions/store/pkg/server/grpc/option.go similarity index 92% rename from store/pkg/server/grpc/option.go rename to extensions/store/pkg/server/grpc/option.go index 389c2918b..4e4bc9c88 100644 --- a/store/pkg/server/grpc/option.go +++ b/extensions/store/pkg/server/grpc/option.go @@ -3,9 +3,9 @@ package grpc import ( "context" + "github.com/owncloud/ocis/extensions/store/pkg/config" + "github.com/owncloud/ocis/extensions/store/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/store/pkg/config" - "github.com/owncloud/ocis/store/pkg/metrics" "github.com/urfave/cli/v2" ) diff --git a/store/pkg/server/grpc/server.go b/extensions/store/pkg/server/grpc/server.go similarity index 93% rename from store/pkg/server/grpc/server.go rename to extensions/store/pkg/server/grpc/server.go index d17a40ea2..cf75ac3a2 100644 --- a/store/pkg/server/grpc/server.go +++ b/extensions/store/pkg/server/grpc/server.go @@ -1,10 +1,10 @@ package grpc import ( + svc "github.com/owncloud/ocis/extensions/store/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/service/grpc" "github.com/owncloud/ocis/ocis-pkg/version" storesvc "github.com/owncloud/ocis/protogen/gen/ocis/services/store/v0" - svc "github.com/owncloud/ocis/store/pkg/service/v0" ) // Server initializes a new go-micro service ready to run diff --git a/store/pkg/service/v0/option.go b/extensions/store/pkg/service/v0/option.go similarity index 95% rename from store/pkg/service/v0/option.go rename to extensions/store/pkg/service/v0/option.go index 5b44f70fc..5b53e01ee 100644 --- a/store/pkg/service/v0/option.go +++ b/extensions/store/pkg/service/v0/option.go @@ -1,8 +1,8 @@ package service import ( + "github.com/owncloud/ocis/extensions/store/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/store/pkg/config" ) // Option defines a single option function. diff --git a/store/pkg/service/v0/service.go b/extensions/store/pkg/service/v0/service.go similarity index 99% rename from store/pkg/service/v0/service.go rename to extensions/store/pkg/service/v0/service.go index 2373d3b4a..72dcf6170 100644 --- a/store/pkg/service/v0/service.go +++ b/extensions/store/pkg/service/v0/service.go @@ -9,10 +9,10 @@ import ( "github.com/blevesearch/bleve/v2" "github.com/blevesearch/bleve/v2/analysis/analyzer/keyword" + "github.com/owncloud/ocis/extensions/store/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" storemsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/store/v0" storesvc "github.com/owncloud/ocis/protogen/gen/ocis/services/store/v0" - "github.com/owncloud/ocis/store/pkg/config" merrors "go-micro.dev/v4/errors" "google.golang.org/protobuf/encoding/protojson" ) diff --git a/store/pkg/tracing/tracing.go b/extensions/store/pkg/tracing/tracing.go similarity index 90% rename from store/pkg/tracing/tracing.go rename to extensions/store/pkg/tracing/tracing.go index 54eef8ca3..1c67fa097 100644 --- a/store/pkg/tracing/tracing.go +++ b/extensions/store/pkg/tracing/tracing.go @@ -1,8 +1,8 @@ package tracing import ( + "github.com/owncloud/ocis/extensions/store/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - "github.com/owncloud/ocis/store/pkg/config" "go.opentelemetry.io/otel/trace" ) diff --git a/store/reflex.conf b/extensions/store/reflex.conf similarity index 100% rename from store/reflex.conf rename to extensions/store/reflex.conf diff --git a/thumbnails/Makefile b/extensions/thumbnails/Makefile similarity index 78% rename from thumbnails/Makefile rename to extensions/thumbnails/Makefile index d5444df91..9e2fe5df8 100644 --- a/thumbnails/Makefile +++ b/extensions/thumbnails/Makefile @@ -1,28 +1,28 @@ SHELL := bash NAME := thumbnails -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ######### -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate \ grpc-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: protobuf # CI runs ci-node-generate automatically before this target @@ -31,7 +31,7 @@ ci-go-generate: protobuf # CI runs ci-node-generate automatically before this ta ci-node-generate: ############ protobuf ############ -include ../.make/protobuf.mk +include ../../.make/protobuf.mk .PHONY: protobuf protobuf: buf-generate diff --git a/extensions/thumbnails/cmd/thumbnails/main.go b/extensions/thumbnails/cmd/thumbnails/main.go new file mode 100644 index 000000000..89f908cca --- /dev/null +++ b/extensions/thumbnails/cmd/thumbnails/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/thumbnails/pkg/command" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/thumbnails/docker/Dockerfile.linux.amd64 b/extensions/thumbnails/docker/Dockerfile.linux.amd64 similarity index 100% rename from thumbnails/docker/Dockerfile.linux.amd64 rename to extensions/thumbnails/docker/Dockerfile.linux.amd64 diff --git a/thumbnails/docker/Dockerfile.linux.arm b/extensions/thumbnails/docker/Dockerfile.linux.arm similarity index 100% rename from thumbnails/docker/Dockerfile.linux.arm rename to extensions/thumbnails/docker/Dockerfile.linux.arm diff --git a/thumbnails/docker/Dockerfile.linux.arm64 b/extensions/thumbnails/docker/Dockerfile.linux.arm64 similarity index 100% rename from thumbnails/docker/Dockerfile.linux.arm64 rename to extensions/thumbnails/docker/Dockerfile.linux.arm64 diff --git a/thumbnails/docker/manifest.tmpl b/extensions/thumbnails/docker/manifest.tmpl similarity index 100% rename from thumbnails/docker/manifest.tmpl rename to extensions/thumbnails/docker/manifest.tmpl diff --git a/extensions/thumbnails/pkg/command/health.go b/extensions/thumbnails/pkg/command/health.go new file mode 100644 index 000000000..f63d023d5 --- /dev/null +++ b/extensions/thumbnails/pkg/command/health.go @@ -0,0 +1,53 @@ +package command + +import ( + "fmt" + "net/http" + + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config/parser" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/logging" + "github.com/urfave/cli/v2" +) + +// Health is the entrypoint for the health command. +func Health(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "health", + Usage: "check health status", + Category: "info", + Before: func(c *cli.Context) error { + return parser.ParseConfig(cfg) + }, + Action: func(c *cli.Context) error { + logger := logging.Configure(cfg.Service.Name, cfg.Log) + + resp, err := http.Get( + fmt.Sprintf( + "http://%s/healthz", + cfg.Debug.Addr, + ), + ) + + if err != nil { + logger.Fatal(). + Err(err). + Msg("Failed to request health check") + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + logger.Fatal(). + Int("code", resp.StatusCode). + Msg("Health seems to be in bad state") + } + + logger.Debug(). + Int("code", resp.StatusCode). + Msg("Health got a good state") + + return nil + }, + } +} diff --git a/thumbnails/pkg/command/root.go b/extensions/thumbnails/pkg/command/root.go similarity index 95% rename from thumbnails/pkg/command/root.go rename to extensions/thumbnails/pkg/command/root.go index 83b311196..44d4948db 100644 --- a/thumbnails/pkg/command/root.go +++ b/extensions/thumbnails/pkg/command/root.go @@ -4,9 +4,9 @@ import ( "context" "os" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/thumbnails/pkg/config" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/thumbnails/pkg/command/server.go b/extensions/thumbnails/pkg/command/server.go similarity index 80% rename from thumbnails/pkg/command/server.go rename to extensions/thumbnails/pkg/command/server.go index 86fb9d91a..8bfd35a1b 100644 --- a/thumbnails/pkg/command/server.go +++ b/extensions/thumbnails/pkg/command/server.go @@ -5,15 +5,15 @@ import ( "fmt" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config/parser" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/logging" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/metrics" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/server/debug" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/server/grpc" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/server/http" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/thumbnails/pkg/config" - "github.com/owncloud/ocis/thumbnails/pkg/config/parser" - "github.com/owncloud/ocis/thumbnails/pkg/logging" - "github.com/owncloud/ocis/thumbnails/pkg/metrics" - "github.com/owncloud/ocis/thumbnails/pkg/server/debug" - "github.com/owncloud/ocis/thumbnails/pkg/server/grpc" - "github.com/owncloud/ocis/thumbnails/pkg/server/http" - "github.com/owncloud/ocis/thumbnails/pkg/tracing" "github.com/urfave/cli/v2" ) diff --git a/extensions/thumbnails/pkg/command/version.go b/extensions/thumbnails/pkg/command/version.go new file mode 100644 index 000000000..ce2752f9e --- /dev/null +++ b/extensions/thumbnails/pkg/command/version.go @@ -0,0 +1,50 @@ +package command + +import ( + "fmt" + "os" + + "github.com/owncloud/ocis/ocis-pkg/registry" + "github.com/owncloud/ocis/ocis-pkg/version" + + tw "github.com/olekukonko/tablewriter" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + "github.com/urfave/cli/v2" +) + +// Version prints the service versions of all running instances. +func Version(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "version", + Usage: "print the version of this binary and the running extension instances", + Category: "info", + Action: func(c *cli.Context) error { + fmt.Println("Version: " + version.String) + fmt.Printf("Compiled: %s\n", version.Compiled()) + fmt.Println("") + + reg := registry.GetRegistry() + services, err := reg.GetService(cfg.GRPC.Namespace + "." + cfg.Service.Name) + if err != nil { + fmt.Println(fmt.Errorf("could not get %s services from the registry: %v", cfg.Service.Name, err)) + return err + } + + if len(services) == 0 { + fmt.Println("No running " + cfg.Service.Name + " service found.") + return nil + } + + table := tw.NewWriter(os.Stdout) + table.SetHeader([]string{"Version", "Address", "Id"}) + table.SetAutoFormatHeaders(false) + for _, s := range services { + for _, n := range s.Nodes { + table.Append([]string{s.Version, n.Address, n.Id}) + } + } + table.Render() + return nil + }, + } +} diff --git a/thumbnails/pkg/config/config.go b/extensions/thumbnails/pkg/config/config.go similarity index 100% rename from thumbnails/pkg/config/config.go rename to extensions/thumbnails/pkg/config/config.go diff --git a/thumbnails/pkg/config/debug.go b/extensions/thumbnails/pkg/config/debug.go similarity index 100% rename from thumbnails/pkg/config/debug.go rename to extensions/thumbnails/pkg/config/debug.go diff --git a/thumbnails/pkg/config/defaults/defaultconfig.go b/extensions/thumbnails/pkg/config/defaults/defaultconfig.go similarity index 97% rename from thumbnails/pkg/config/defaults/defaultconfig.go rename to extensions/thumbnails/pkg/config/defaults/defaultconfig.go index f52e21232..c74b85065 100644 --- a/thumbnails/pkg/config/defaults/defaultconfig.go +++ b/extensions/thumbnails/pkg/config/defaults/defaultconfig.go @@ -3,8 +3,8 @@ package defaults import ( "path" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/defaults" - "github.com/owncloud/ocis/thumbnails/pkg/config" ) func FullDefaultConfig() *config.Config { diff --git a/thumbnails/pkg/config/grpc.go b/extensions/thumbnails/pkg/config/grpc.go similarity index 100% rename from thumbnails/pkg/config/grpc.go rename to extensions/thumbnails/pkg/config/grpc.go diff --git a/thumbnails/pkg/config/http.go b/extensions/thumbnails/pkg/config/http.go similarity index 100% rename from thumbnails/pkg/config/http.go rename to extensions/thumbnails/pkg/config/http.go diff --git a/thumbnails/pkg/config/log.go b/extensions/thumbnails/pkg/config/log.go similarity index 100% rename from thumbnails/pkg/config/log.go rename to extensions/thumbnails/pkg/config/log.go diff --git a/thumbnails/pkg/config/parser/parse.go b/extensions/thumbnails/pkg/config/parser/parse.go similarity index 84% rename from thumbnails/pkg/config/parser/parse.go rename to extensions/thumbnails/pkg/config/parser/parse.go index 705425a65..4ed732553 100644 --- a/thumbnails/pkg/config/parser/parse.go +++ b/extensions/thumbnails/pkg/config/parser/parse.go @@ -3,9 +3,9 @@ package parser import ( "errors" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config/defaults" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/thumbnails/pkg/config" - "github.com/owncloud/ocis/thumbnails/pkg/config/defaults" "github.com/owncloud/ocis/ocis-pkg/config/envdecode" ) diff --git a/thumbnails/pkg/config/service.go b/extensions/thumbnails/pkg/config/service.go similarity index 100% rename from thumbnails/pkg/config/service.go rename to extensions/thumbnails/pkg/config/service.go diff --git a/thumbnails/pkg/config/tracing.go b/extensions/thumbnails/pkg/config/tracing.go similarity index 100% rename from thumbnails/pkg/config/tracing.go rename to extensions/thumbnails/pkg/config/tracing.go diff --git a/extensions/thumbnails/pkg/logging/logging.go b/extensions/thumbnails/pkg/logging/logging.go new file mode 100644 index 000000000..d63c5a3f7 --- /dev/null +++ b/extensions/thumbnails/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/thumbnails/pkg/metrics/metrics.go b/extensions/thumbnails/pkg/metrics/metrics.go similarity index 100% rename from thumbnails/pkg/metrics/metrics.go rename to extensions/thumbnails/pkg/metrics/metrics.go diff --git a/thumbnails/pkg/preprocessor/fontloader.go b/extensions/thumbnails/pkg/preprocessor/fontloader.go similarity index 100% rename from thumbnails/pkg/preprocessor/fontloader.go rename to extensions/thumbnails/pkg/preprocessor/fontloader.go diff --git a/thumbnails/pkg/preprocessor/preprocessor.go b/extensions/thumbnails/pkg/preprocessor/preprocessor.go similarity index 100% rename from thumbnails/pkg/preprocessor/preprocessor.go rename to extensions/thumbnails/pkg/preprocessor/preprocessor.go diff --git a/thumbnails/pkg/preprocessor/textanalyzer.go b/extensions/thumbnails/pkg/preprocessor/textanalyzer.go similarity index 100% rename from thumbnails/pkg/preprocessor/textanalyzer.go rename to extensions/thumbnails/pkg/preprocessor/textanalyzer.go diff --git a/thumbnails/pkg/preprocessor/textanalyzer_test.go b/extensions/thumbnails/pkg/preprocessor/textanalyzer_test.go similarity index 100% rename from thumbnails/pkg/preprocessor/textanalyzer_test.go rename to extensions/thumbnails/pkg/preprocessor/textanalyzer_test.go diff --git a/thumbnails/pkg/server/debug/option.go b/extensions/thumbnails/pkg/server/debug/option.go similarity index 92% rename from thumbnails/pkg/server/debug/option.go rename to extensions/thumbnails/pkg/server/debug/option.go index df3947209..730203573 100644 --- a/thumbnails/pkg/server/debug/option.go +++ b/extensions/thumbnails/pkg/server/debug/option.go @@ -1,8 +1,8 @@ package debug import ( + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/thumbnails/pkg/config" ) // Option defines a single option function. diff --git a/extensions/thumbnails/pkg/server/debug/server.go b/extensions/thumbnails/pkg/server/debug/server.go new file mode 100644 index 000000000..2492f95c3 --- /dev/null +++ b/extensions/thumbnails/pkg/server/debug/server.go @@ -0,0 +1,59 @@ +package debug + +import ( + "io" + "net/http" + + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/service/debug" + "github.com/owncloud/ocis/ocis-pkg/version" +) + +// Server initializes the debug service and server. +func Server(opts ...Option) (*http.Server, error) { + options := newOptions(opts...) + + return debug.NewService( + debug.Logger(options.Logger), + debug.Name(options.Config.Service.Name), + debug.Version(version.String), + debug.Address(options.Config.Debug.Addr), + debug.Token(options.Config.Debug.Token), + debug.Pprof(options.Config.Debug.Pprof), + debug.Zpages(options.Config.Debug.Zpages), + debug.Health(health(options.Config)), + debug.Ready(ready(options.Config)), + ), nil +} + +// health implements the health check. +func health(cfg *config.Config) func(http.ResponseWriter, *http.Request) { + return func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/plain") + w.WriteHeader(http.StatusOK) + + // TODO: check if services are up and running + + _, err := io.WriteString(w, http.StatusText(http.StatusOK)) + // io.WriteString should not fail but if it does we want to know. + if err != nil { + panic(err) + } + } +} + +// ready implements the ready check. +func ready(cfg *config.Config) func(http.ResponseWriter, *http.Request) { + return func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/plain") + w.WriteHeader(http.StatusOK) + + // TODO: check if services are up and running + + _, err := io.WriteString(w, http.StatusText(http.StatusOK)) + // io.WriteString should not fail but if it does we want to know. + if err != nil { + panic(err) + } + } +} diff --git a/thumbnails/pkg/server/grpc/option.go b/extensions/thumbnails/pkg/server/grpc/option.go similarity index 93% rename from thumbnails/pkg/server/grpc/option.go rename to extensions/thumbnails/pkg/server/grpc/option.go index aa14ccbde..a9c4491a0 100644 --- a/thumbnails/pkg/server/grpc/option.go +++ b/extensions/thumbnails/pkg/server/grpc/option.go @@ -3,9 +3,9 @@ package grpc import ( "context" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/thumbnails/pkg/config" - "github.com/owncloud/ocis/thumbnails/pkg/metrics" "github.com/urfave/cli/v2" ) diff --git a/thumbnails/pkg/server/grpc/server.go b/extensions/thumbnails/pkg/server/grpc/server.go similarity index 83% rename from thumbnails/pkg/server/grpc/server.go rename to extensions/thumbnails/pkg/server/grpc/server.go index f4e11e451..49fb39e00 100644 --- a/thumbnails/pkg/server/grpc/server.go +++ b/extensions/thumbnails/pkg/server/grpc/server.go @@ -2,13 +2,13 @@ package grpc import ( "github.com/cs3org/reva/v2/pkg/rgrpc/todo/pool" + svc "github.com/owncloud/ocis/extensions/thumbnails/pkg/service/grpc/v0" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/service/grpc/v0/decorators" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/thumbnail/imgsource" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/thumbnail/storage" "github.com/owncloud/ocis/ocis-pkg/service/grpc" "github.com/owncloud/ocis/ocis-pkg/version" thumbnailssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/thumbnails/v0" - svc "github.com/owncloud/ocis/thumbnails/pkg/service/grpc/v0" - "github.com/owncloud/ocis/thumbnails/pkg/service/grpc/v0/decorators" - "github.com/owncloud/ocis/thumbnails/pkg/thumbnail/imgsource" - "github.com/owncloud/ocis/thumbnails/pkg/thumbnail/storage" ) // NewService initializes the grpc service and server. diff --git a/thumbnails/pkg/server/http/option.go b/extensions/thumbnails/pkg/server/http/option.go similarity index 91% rename from thumbnails/pkg/server/http/option.go rename to extensions/thumbnails/pkg/server/http/option.go index 9f1fa828e..b75f298be 100644 --- a/thumbnails/pkg/server/http/option.go +++ b/extensions/thumbnails/pkg/server/http/option.go @@ -3,9 +3,9 @@ package http import ( "context" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/thumbnails/pkg/config" - "github.com/owncloud/ocis/thumbnails/pkg/metrics" "github.com/urfave/cli/v2" ) diff --git a/thumbnails/pkg/server/http/server.go b/extensions/thumbnails/pkg/server/http/server.go similarity index 90% rename from thumbnails/pkg/server/http/server.go rename to extensions/thumbnails/pkg/server/http/server.go index 10d013a34..50f3e6b82 100644 --- a/thumbnails/pkg/server/http/server.go +++ b/extensions/thumbnails/pkg/server/http/server.go @@ -2,11 +2,11 @@ package http import ( "github.com/go-chi/chi/v5/middleware" + svc "github.com/owncloud/ocis/extensions/thumbnails/pkg/service/http/v0" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/thumbnail/storage" ocismiddleware "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" "github.com/owncloud/ocis/ocis-pkg/version" - svc "github.com/owncloud/ocis/thumbnails/pkg/service/http/v0" - "github.com/owncloud/ocis/thumbnails/pkg/thumbnail/storage" "go-micro.dev/v4" ) diff --git a/thumbnails/pkg/service/grpc/v0/decorators/base.go b/extensions/thumbnails/pkg/service/grpc/v0/decorators/base.go similarity index 100% rename from thumbnails/pkg/service/grpc/v0/decorators/base.go rename to extensions/thumbnails/pkg/service/grpc/v0/decorators/base.go diff --git a/thumbnails/pkg/service/grpc/v0/decorators/instrument.go b/extensions/thumbnails/pkg/service/grpc/v0/decorators/instrument.go similarity index 94% rename from thumbnails/pkg/service/grpc/v0/decorators/instrument.go rename to extensions/thumbnails/pkg/service/grpc/v0/decorators/instrument.go index 32db036f1..bafbb8287 100644 --- a/thumbnails/pkg/service/grpc/v0/decorators/instrument.go +++ b/extensions/thumbnails/pkg/service/grpc/v0/decorators/instrument.go @@ -3,8 +3,8 @@ package decorators import ( "context" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/metrics" thumbnailssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/thumbnails/v0" - "github.com/owncloud/ocis/thumbnails/pkg/metrics" "github.com/prometheus/client_golang/prometheus" ) diff --git a/thumbnails/pkg/service/grpc/v0/decorators/logging.go b/extensions/thumbnails/pkg/service/grpc/v0/decorators/logging.go similarity index 100% rename from thumbnails/pkg/service/grpc/v0/decorators/logging.go rename to extensions/thumbnails/pkg/service/grpc/v0/decorators/logging.go diff --git a/thumbnails/pkg/service/grpc/v0/decorators/tracing.go b/extensions/thumbnails/pkg/service/grpc/v0/decorators/tracing.go similarity index 93% rename from thumbnails/pkg/service/grpc/v0/decorators/tracing.go rename to extensions/thumbnails/pkg/service/grpc/v0/decorators/tracing.go index 634cc348b..53d219b88 100644 --- a/thumbnails/pkg/service/grpc/v0/decorators/tracing.go +++ b/extensions/thumbnails/pkg/service/grpc/v0/decorators/tracing.go @@ -5,8 +5,8 @@ import ( "go.opentelemetry.io/otel/trace" + thumbnailsTracing "github.com/owncloud/ocis/extensions/thumbnails/pkg/tracing" thumbnailssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/thumbnails/v0" - thumbnailsTracing "github.com/owncloud/ocis/thumbnails/pkg/tracing" "go.opentelemetry.io/otel/attribute" ) diff --git a/thumbnails/pkg/service/grpc/v0/option.go b/extensions/thumbnails/pkg/service/grpc/v0/option.go similarity index 89% rename from thumbnails/pkg/service/grpc/v0/option.go rename to extensions/thumbnails/pkg/service/grpc/v0/option.go index 06b8013b5..1d75bb98c 100644 --- a/thumbnails/pkg/service/grpc/v0/option.go +++ b/extensions/thumbnails/pkg/service/grpc/v0/option.go @@ -1,13 +1,14 @@ package svc import ( - gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" "net/http" + gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" + + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/thumbnail/imgsource" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/thumbnail/storage" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/thumbnails/pkg/config" - "github.com/owncloud/ocis/thumbnails/pkg/thumbnail/imgsource" - "github.com/owncloud/ocis/thumbnails/pkg/thumbnail/storage" ) // Option defines a single option function. diff --git a/thumbnails/pkg/service/grpc/v0/service.go b/extensions/thumbnails/pkg/service/grpc/v0/service.go similarity index 96% rename from thumbnails/pkg/service/grpc/v0/service.go rename to extensions/thumbnails/pkg/service/grpc/v0/service.go index ef1b16b87..b5f34f32f 100644 --- a/thumbnails/pkg/service/grpc/v0/service.go +++ b/extensions/thumbnails/pkg/service/grpc/v0/service.go @@ -13,14 +13,14 @@ import ( provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" revactx "github.com/cs3org/reva/v2/pkg/ctx" "github.com/golang-jwt/jwt/v4" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/preprocessor" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/service/grpc/v0/decorators" + tjwt "github.com/owncloud/ocis/extensions/thumbnails/pkg/service/jwt" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/thumbnail" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/thumbnail/imgsource" "github.com/owncloud/ocis/ocis-pkg/log" thumbnailsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/thumbnails/v0" thumbnailssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/thumbnails/v0" - "github.com/owncloud/ocis/thumbnails/pkg/preprocessor" - "github.com/owncloud/ocis/thumbnails/pkg/service/grpc/v0/decorators" - tjwt "github.com/owncloud/ocis/thumbnails/pkg/service/jwt" - "github.com/owncloud/ocis/thumbnails/pkg/thumbnail" - "github.com/owncloud/ocis/thumbnails/pkg/thumbnail/imgsource" "github.com/pkg/errors" merrors "go-micro.dev/v4/errors" "google.golang.org/grpc/metadata" diff --git a/thumbnails/pkg/service/http/v0/instrument.go b/extensions/thumbnails/pkg/service/http/v0/instrument.go similarity index 90% rename from thumbnails/pkg/service/http/v0/instrument.go rename to extensions/thumbnails/pkg/service/http/v0/instrument.go index baab1c6fe..95454462b 100644 --- a/thumbnails/pkg/service/http/v0/instrument.go +++ b/extensions/thumbnails/pkg/service/http/v0/instrument.go @@ -3,7 +3,7 @@ package svc import ( "net/http" - "github.com/owncloud/ocis/thumbnails/pkg/metrics" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/metrics" ) // NewInstrument returns a service that instruments metrics. diff --git a/thumbnails/pkg/service/http/v0/logging.go b/extensions/thumbnails/pkg/service/http/v0/logging.go similarity index 100% rename from thumbnails/pkg/service/http/v0/logging.go rename to extensions/thumbnails/pkg/service/http/v0/logging.go diff --git a/thumbnails/pkg/service/http/v0/option.go b/extensions/thumbnails/pkg/service/http/v0/option.go similarity index 90% rename from thumbnails/pkg/service/http/v0/option.go rename to extensions/thumbnails/pkg/service/http/v0/option.go index efcf65f35..b45429224 100644 --- a/thumbnails/pkg/service/http/v0/option.go +++ b/extensions/thumbnails/pkg/service/http/v0/option.go @@ -3,9 +3,9 @@ package svc import ( "net/http" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/thumbnail/storage" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/thumbnails/pkg/config" - "github.com/owncloud/ocis/thumbnails/pkg/thumbnail/storage" ) // Option defines a single option function. diff --git a/thumbnails/pkg/service/http/v0/service.go b/extensions/thumbnails/pkg/service/http/v0/service.go similarity index 93% rename from thumbnails/pkg/service/http/v0/service.go rename to extensions/thumbnails/pkg/service/http/v0/service.go index 76df357a2..864dca0ae 100644 --- a/thumbnails/pkg/service/http/v0/service.go +++ b/extensions/thumbnails/pkg/service/http/v0/service.go @@ -9,10 +9,10 @@ import ( "github.com/go-chi/chi/v5" "github.com/golang-jwt/jwt/v4" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + tjwt "github.com/owncloud/ocis/extensions/thumbnails/pkg/service/jwt" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/thumbnail" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/thumbnails/pkg/config" - tjwt "github.com/owncloud/ocis/thumbnails/pkg/service/jwt" - "github.com/owncloud/ocis/thumbnails/pkg/thumbnail" ) type contextKey string diff --git a/thumbnails/pkg/service/http/v0/tracing.go b/extensions/thumbnails/pkg/service/http/v0/tracing.go similarity index 100% rename from thumbnails/pkg/service/http/v0/tracing.go rename to extensions/thumbnails/pkg/service/http/v0/tracing.go diff --git a/thumbnails/pkg/service/jwt/jwt.go b/extensions/thumbnails/pkg/service/jwt/jwt.go similarity index 100% rename from thumbnails/pkg/service/jwt/jwt.go rename to extensions/thumbnails/pkg/service/jwt/jwt.go diff --git a/thumbnails/pkg/thumbnail/encoding.go b/extensions/thumbnails/pkg/thumbnail/encoding.go similarity index 100% rename from thumbnails/pkg/thumbnail/encoding.go rename to extensions/thumbnails/pkg/thumbnail/encoding.go diff --git a/thumbnails/pkg/thumbnail/encoding_test.go b/extensions/thumbnails/pkg/thumbnail/encoding_test.go similarity index 100% rename from thumbnails/pkg/thumbnail/encoding_test.go rename to extensions/thumbnails/pkg/thumbnail/encoding_test.go diff --git a/thumbnails/pkg/thumbnail/generator.go b/extensions/thumbnails/pkg/thumbnail/generator.go similarity index 100% rename from thumbnails/pkg/thumbnail/generator.go rename to extensions/thumbnails/pkg/thumbnail/generator.go diff --git a/thumbnails/pkg/thumbnail/imgsource/cs3.go b/extensions/thumbnails/pkg/thumbnail/imgsource/cs3.go similarity index 97% rename from thumbnails/pkg/thumbnail/imgsource/cs3.go rename to extensions/thumbnails/pkg/thumbnail/imgsource/cs3.go index d7343e72f..9b0cdfa25 100644 --- a/thumbnails/pkg/thumbnail/imgsource/cs3.go +++ b/extensions/thumbnails/pkg/thumbnail/imgsource/cs3.go @@ -13,7 +13,7 @@ import ( provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" revactx "github.com/cs3org/reva/v2/pkg/ctx" "github.com/cs3org/reva/v2/pkg/rhttp" - "github.com/owncloud/ocis/thumbnails/pkg/config" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" "github.com/pkg/errors" "google.golang.org/grpc/metadata" ) diff --git a/thumbnails/pkg/thumbnail/imgsource/filesystem.go b/extensions/thumbnails/pkg/thumbnail/imgsource/filesystem.go similarity index 92% rename from thumbnails/pkg/thumbnail/imgsource/filesystem.go rename to extensions/thumbnails/pkg/thumbnail/imgsource/filesystem.go index 68f0ce35b..641d19ab2 100644 --- a/thumbnails/pkg/thumbnail/imgsource/filesystem.go +++ b/extensions/thumbnails/pkg/thumbnail/imgsource/filesystem.go @@ -6,7 +6,7 @@ import ( "os" "path/filepath" - "github.com/owncloud/ocis/thumbnails/pkg/config" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" "github.com/pkg/errors" ) diff --git a/thumbnails/pkg/thumbnail/imgsource/imgsource.go b/extensions/thumbnails/pkg/thumbnail/imgsource/imgsource.go similarity index 100% rename from thumbnails/pkg/thumbnail/imgsource/imgsource.go rename to extensions/thumbnails/pkg/thumbnail/imgsource/imgsource.go diff --git a/thumbnails/pkg/thumbnail/imgsource/webdav.go b/extensions/thumbnails/pkg/thumbnail/imgsource/webdav.go similarity index 96% rename from thumbnails/pkg/thumbnail/imgsource/webdav.go rename to extensions/thumbnails/pkg/thumbnail/imgsource/webdav.go index ea95ea32a..db24ea9e5 100644 --- a/thumbnails/pkg/thumbnail/imgsource/webdav.go +++ b/extensions/thumbnails/pkg/thumbnail/imgsource/webdav.go @@ -4,13 +4,14 @@ import ( "context" "crypto/tls" "fmt" - "github.com/owncloud/ocis/thumbnails/pkg/config" - "github.com/pkg/errors" _ "image/gif" // Import the gif package so that image.Decode can understand gifs _ "image/jpeg" // Import the jpeg package so that image.Decode can understand jpegs _ "image/png" // Import the png package so that image.Decode can understand pngs "io" "net/http" + + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + "github.com/pkg/errors" ) // NewWebDavSource creates a new webdav instance. diff --git a/thumbnails/pkg/thumbnail/resolutions.go b/extensions/thumbnails/pkg/thumbnail/resolutions.go similarity index 100% rename from thumbnails/pkg/thumbnail/resolutions.go rename to extensions/thumbnails/pkg/thumbnail/resolutions.go diff --git a/thumbnails/pkg/thumbnail/resolutions_test.go b/extensions/thumbnails/pkg/thumbnail/resolutions_test.go similarity index 100% rename from thumbnails/pkg/thumbnail/resolutions_test.go rename to extensions/thumbnails/pkg/thumbnail/resolutions_test.go diff --git a/thumbnails/pkg/thumbnail/storage/filesystem.go b/extensions/thumbnails/pkg/thumbnail/storage/filesystem.go similarity index 97% rename from thumbnails/pkg/thumbnail/storage/filesystem.go rename to extensions/thumbnails/pkg/thumbnail/storage/filesystem.go index 980adedd3..102bbc876 100644 --- a/thumbnails/pkg/thumbnail/storage/filesystem.go +++ b/extensions/thumbnails/pkg/thumbnail/storage/filesystem.go @@ -6,8 +6,8 @@ import ( "path/filepath" "strconv" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/thumbnails/pkg/config" "github.com/pkg/errors" ) diff --git a/thumbnails/pkg/thumbnail/storage/inmemory.go b/extensions/thumbnails/pkg/thumbnail/storage/inmemory.go similarity index 100% rename from thumbnails/pkg/thumbnail/storage/inmemory.go rename to extensions/thumbnails/pkg/thumbnail/storage/inmemory.go diff --git a/thumbnails/pkg/thumbnail/storage/storage.go b/extensions/thumbnails/pkg/thumbnail/storage/storage.go similarity index 100% rename from thumbnails/pkg/thumbnail/storage/storage.go rename to extensions/thumbnails/pkg/thumbnail/storage/storage.go diff --git a/thumbnails/pkg/thumbnail/thumbnail.go b/extensions/thumbnails/pkg/thumbnail/thumbnail.go similarity index 97% rename from thumbnails/pkg/thumbnail/thumbnail.go rename to extensions/thumbnails/pkg/thumbnail/thumbnail.go index b4f2f7b80..587d623f3 100644 --- a/thumbnails/pkg/thumbnail/thumbnail.go +++ b/extensions/thumbnails/pkg/thumbnail/thumbnail.go @@ -6,8 +6,8 @@ import ( "image/gif" "mime" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/thumbnail/storage" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/thumbnails/pkg/thumbnail/storage" ) var ( diff --git a/thumbnails/pkg/thumbnail/thumbnail_test.go b/extensions/thumbnails/pkg/thumbnail/thumbnail_test.go similarity index 91% rename from thumbnails/pkg/thumbnail/thumbnail_test.go rename to extensions/thumbnails/pkg/thumbnail/thumbnail_test.go index 76be41a66..97120ebf0 100644 --- a/thumbnails/pkg/thumbnail/thumbnail_test.go +++ b/extensions/thumbnails/pkg/thumbnail/thumbnail_test.go @@ -6,8 +6,8 @@ import ( "path/filepath" "testing" + "github.com/owncloud/ocis/extensions/thumbnails/pkg/thumbnail/storage" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/thumbnails/pkg/thumbnail/storage" ) type NoOpManager struct { diff --git a/thumbnails/pkg/tracing/tracing.go b/extensions/thumbnails/pkg/tracing/tracing.go similarity index 89% rename from thumbnails/pkg/tracing/tracing.go rename to extensions/thumbnails/pkg/tracing/tracing.go index 16db3bb6f..11c8490ec 100644 --- a/thumbnails/pkg/tracing/tracing.go +++ b/extensions/thumbnails/pkg/tracing/tracing.go @@ -1,8 +1,8 @@ package tracing import ( + "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - "github.com/owncloud/ocis/thumbnails/pkg/config" "go.opentelemetry.io/otel/trace" ) diff --git a/thumbnails/reflex.conf b/extensions/thumbnails/reflex.conf similarity index 100% rename from thumbnails/reflex.conf rename to extensions/thumbnails/reflex.conf diff --git a/thumbnails/testdata/oc.png b/extensions/thumbnails/testdata/oc.png similarity index 100% rename from thumbnails/testdata/oc.png rename to extensions/thumbnails/testdata/oc.png diff --git a/web/.dockerignore b/extensions/web/.dockerignore similarity index 100% rename from web/.dockerignore rename to extensions/web/.dockerignore diff --git a/web/Makefile b/extensions/web/Makefile similarity index 86% rename from web/Makefile rename to extensions/web/Makefile index d8a2766e0..39bfce1fe 100644 --- a/web/Makefile +++ b/extensions/web/Makefile @@ -2,27 +2,27 @@ SHELL := bash NAME := web WEB_ASSETS_VERSION = v5.4.0 -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ######### -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: # CI runs ci-node-generate automatically before this target diff --git a/web/assets/.keep b/extensions/web/assets/.keep similarity index 100% rename from web/assets/.keep rename to extensions/web/assets/.keep diff --git a/audit/cmd/notifications/main.go b/extensions/web/cmd/web/main.go similarity index 52% rename from audit/cmd/notifications/main.go rename to extensions/web/cmd/web/main.go index 68f15f670..cde38ffee 100644 --- a/audit/cmd/notifications/main.go +++ b/extensions/web/cmd/web/main.go @@ -3,8 +3,8 @@ package main import ( "os" - "github.com/owncloud/ocis/audit/pkg/command" - "github.com/owncloud/ocis/audit/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/web/pkg/command" + "github.com/owncloud/ocis/extensions/web/pkg/config/defaults" ) func main() { diff --git a/web/docker/Dockerfile.linux.amd64 b/extensions/web/docker/Dockerfile.linux.amd64 similarity index 100% rename from web/docker/Dockerfile.linux.amd64 rename to extensions/web/docker/Dockerfile.linux.amd64 diff --git a/web/docker/Dockerfile.linux.arm b/extensions/web/docker/Dockerfile.linux.arm similarity index 100% rename from web/docker/Dockerfile.linux.arm rename to extensions/web/docker/Dockerfile.linux.arm diff --git a/web/docker/Dockerfile.linux.arm64 b/extensions/web/docker/Dockerfile.linux.arm64 similarity index 100% rename from web/docker/Dockerfile.linux.arm64 rename to extensions/web/docker/Dockerfile.linux.arm64 diff --git a/web/docker/manifest.tmpl b/extensions/web/docker/manifest.tmpl similarity index 100% rename from web/docker/manifest.tmpl rename to extensions/web/docker/manifest.tmpl diff --git a/web/pkg/assets/option.go b/extensions/web/pkg/assets/option.go similarity index 91% rename from web/pkg/assets/option.go rename to extensions/web/pkg/assets/option.go index 233ca8435..0112dab59 100644 --- a/web/pkg/assets/option.go +++ b/extensions/web/pkg/assets/option.go @@ -3,10 +3,10 @@ package assets import ( "net/http" + "github.com/owncloud/ocis/extensions/web" + "github.com/owncloud/ocis/extensions/web/pkg/config" "github.com/owncloud/ocis/ocis-pkg/assetsfs" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/web" - "github.com/owncloud/ocis/web/pkg/config" ) // New returns a new http filesystem to serve assets. diff --git a/web/pkg/assets/server.go b/extensions/web/pkg/assets/server.go similarity index 100% rename from web/pkg/assets/server.go rename to extensions/web/pkg/assets/server.go diff --git a/glauth/pkg/command/health.go b/extensions/web/pkg/command/health.go similarity index 84% rename from glauth/pkg/command/health.go rename to extensions/web/pkg/command/health.go index edc25b50a..397f14da4 100644 --- a/glauth/pkg/command/health.go +++ b/extensions/web/pkg/command/health.go @@ -4,9 +4,9 @@ import ( "fmt" "net/http" - "github.com/owncloud/ocis/glauth/pkg/config" - "github.com/owncloud/ocis/glauth/pkg/config/parser" - "github.com/owncloud/ocis/glauth/pkg/logging" + "github.com/owncloud/ocis/extensions/web/pkg/config" + "github.com/owncloud/ocis/extensions/web/pkg/config/parser" + "github.com/owncloud/ocis/extensions/web/pkg/logging" "github.com/urfave/cli/v2" ) diff --git a/web/pkg/command/root.go b/extensions/web/pkg/command/root.go similarity index 96% rename from web/pkg/command/root.go rename to extensions/web/pkg/command/root.go index 2dbe61c1b..ce1b7b693 100644 --- a/web/pkg/command/root.go +++ b/extensions/web/pkg/command/root.go @@ -4,9 +4,9 @@ import ( "context" "os" + "github.com/owncloud/ocis/extensions/web/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/web/pkg/config" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/web/pkg/command/server.go b/extensions/web/pkg/command/server.go similarity index 85% rename from web/pkg/command/server.go rename to extensions/web/pkg/command/server.go index f68d16a5d..e62494d07 100644 --- a/web/pkg/command/server.go +++ b/extensions/web/pkg/command/server.go @@ -7,13 +7,13 @@ import ( "io/ioutil" "github.com/oklog/run" - "github.com/owncloud/ocis/web/pkg/config" - "github.com/owncloud/ocis/web/pkg/config/parser" - "github.com/owncloud/ocis/web/pkg/logging" - "github.com/owncloud/ocis/web/pkg/metrics" - "github.com/owncloud/ocis/web/pkg/server/debug" - "github.com/owncloud/ocis/web/pkg/server/http" - "github.com/owncloud/ocis/web/pkg/tracing" + "github.com/owncloud/ocis/extensions/web/pkg/config" + "github.com/owncloud/ocis/extensions/web/pkg/config/parser" + "github.com/owncloud/ocis/extensions/web/pkg/logging" + "github.com/owncloud/ocis/extensions/web/pkg/metrics" + "github.com/owncloud/ocis/extensions/web/pkg/server/debug" + "github.com/owncloud/ocis/extensions/web/pkg/server/http" + "github.com/owncloud/ocis/extensions/web/pkg/tracing" "github.com/urfave/cli/v2" ) diff --git a/ocs/pkg/command/version.go b/extensions/web/pkg/command/version.go similarity index 96% rename from ocs/pkg/command/version.go rename to extensions/web/pkg/command/version.go index e00e7b980..121572ceb 100644 --- a/ocs/pkg/command/version.go +++ b/extensions/web/pkg/command/version.go @@ -8,7 +8,7 @@ import ( "github.com/owncloud/ocis/ocis-pkg/version" tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/ocs/pkg/config" + "github.com/owncloud/ocis/extensions/web/pkg/config" "github.com/urfave/cli/v2" ) diff --git a/web/pkg/config/config.go b/extensions/web/pkg/config/config.go similarity index 100% rename from web/pkg/config/config.go rename to extensions/web/pkg/config/config.go diff --git a/web/pkg/config/debug.go b/extensions/web/pkg/config/debug.go similarity index 100% rename from web/pkg/config/debug.go rename to extensions/web/pkg/config/debug.go diff --git a/web/pkg/config/defaults/defaultconfig.go b/extensions/web/pkg/config/defaults/defaultconfig.go similarity index 97% rename from web/pkg/config/defaults/defaultconfig.go rename to extensions/web/pkg/config/defaults/defaultconfig.go index d61321a7e..bbfad9bdf 100644 --- a/web/pkg/config/defaults/defaultconfig.go +++ b/extensions/web/pkg/config/defaults/defaultconfig.go @@ -3,7 +3,7 @@ package defaults import ( "strings" - "github.com/owncloud/ocis/web/pkg/config" + "github.com/owncloud/ocis/extensions/web/pkg/config" ) func FullDefaultConfig() *config.Config { diff --git a/web/pkg/config/http.go b/extensions/web/pkg/config/http.go similarity index 100% rename from web/pkg/config/http.go rename to extensions/web/pkg/config/http.go diff --git a/web/pkg/config/log.go b/extensions/web/pkg/config/log.go similarity index 100% rename from web/pkg/config/log.go rename to extensions/web/pkg/config/log.go diff --git a/graph/pkg/config/parser/parse.go b/extensions/web/pkg/config/parser/parse.go similarity index 85% rename from graph/pkg/config/parser/parse.go rename to extensions/web/pkg/config/parser/parse.go index a1892f095..d85094357 100644 --- a/graph/pkg/config/parser/parse.go +++ b/extensions/web/pkg/config/parser/parse.go @@ -3,8 +3,8 @@ package parser import ( "errors" - "github.com/owncloud/ocis/graph/pkg/config" - "github.com/owncloud/ocis/graph/pkg/config/defaults" + "github.com/owncloud/ocis/extensions/web/pkg/config" + "github.com/owncloud/ocis/extensions/web/pkg/config/defaults" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/envdecode" diff --git a/web/pkg/config/service.go b/extensions/web/pkg/config/service.go similarity index 100% rename from web/pkg/config/service.go rename to extensions/web/pkg/config/service.go diff --git a/web/pkg/config/tracing.go b/extensions/web/pkg/config/tracing.go similarity index 100% rename from web/pkg/config/tracing.go rename to extensions/web/pkg/config/tracing.go diff --git a/graph-explorer/pkg/logging/logging.go b/extensions/web/pkg/logging/logging.go similarity index 86% rename from graph-explorer/pkg/logging/logging.go rename to extensions/web/pkg/logging/logging.go index 24a2567a1..ed81b87a1 100644 --- a/graph-explorer/pkg/logging/logging.go +++ b/extensions/web/pkg/logging/logging.go @@ -1,7 +1,7 @@ package logging import ( - "github.com/owncloud/ocis/graph-explorer/pkg/config" + "github.com/owncloud/ocis/extensions/web/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/web/pkg/metrics/metrics.go b/extensions/web/pkg/metrics/metrics.go similarity index 100% rename from web/pkg/metrics/metrics.go rename to extensions/web/pkg/metrics/metrics.go diff --git a/web/pkg/middleware/silentrefresh.go b/extensions/web/pkg/middleware/silentrefresh.go similarity index 100% rename from web/pkg/middleware/silentrefresh.go rename to extensions/web/pkg/middleware/silentrefresh.go diff --git a/graph/pkg/server/debug/option.go b/extensions/web/pkg/server/debug/option.go similarity index 94% rename from graph/pkg/server/debug/option.go rename to extensions/web/pkg/server/debug/option.go index 1a71993ad..f875a2109 100644 --- a/graph/pkg/server/debug/option.go +++ b/extensions/web/pkg/server/debug/option.go @@ -3,7 +3,7 @@ package debug import ( "context" - "github.com/owncloud/ocis/graph/pkg/config" + "github.com/owncloud/ocis/extensions/web/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" ) diff --git a/graph/pkg/server/debug/server.go b/extensions/web/pkg/server/debug/server.go similarity index 96% rename from graph/pkg/server/debug/server.go rename to extensions/web/pkg/server/debug/server.go index 240b1f936..0557fc70b 100644 --- a/graph/pkg/server/debug/server.go +++ b/extensions/web/pkg/server/debug/server.go @@ -4,7 +4,7 @@ import ( "io" "net/http" - "github.com/owncloud/ocis/graph/pkg/config" + "github.com/owncloud/ocis/extensions/web/pkg/config" "github.com/owncloud/ocis/ocis-pkg/service/debug" "github.com/owncloud/ocis/ocis-pkg/version" ) diff --git a/web/pkg/server/http/option.go b/extensions/web/pkg/server/http/option.go similarity index 93% rename from web/pkg/server/http/option.go rename to extensions/web/pkg/server/http/option.go index 5d77b6cea..ee00b4c1d 100644 --- a/web/pkg/server/http/option.go +++ b/extensions/web/pkg/server/http/option.go @@ -3,9 +3,9 @@ package http import ( "context" + "github.com/owncloud/ocis/extensions/web/pkg/config" + "github.com/owncloud/ocis/extensions/web/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/web/pkg/config" - "github.com/owncloud/ocis/web/pkg/metrics" "github.com/urfave/cli/v2" ) diff --git a/web/pkg/server/http/server.go b/extensions/web/pkg/server/http/server.go similarity index 90% rename from web/pkg/server/http/server.go rename to extensions/web/pkg/server/http/server.go index b33019e83..9ee620cc1 100644 --- a/web/pkg/server/http/server.go +++ b/extensions/web/pkg/server/http/server.go @@ -2,11 +2,11 @@ package http import ( chimiddleware "github.com/go-chi/chi/v5/middleware" + webmid "github.com/owncloud/ocis/extensions/web/pkg/middleware" + svc "github.com/owncloud/ocis/extensions/web/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" "github.com/owncloud/ocis/ocis-pkg/version" - webmid "github.com/owncloud/ocis/web/pkg/middleware" - svc "github.com/owncloud/ocis/web/pkg/service/v0" "go-micro.dev/v4" ) diff --git a/web/pkg/service/v0/instrument.go b/extensions/web/pkg/service/v0/instrument.go similarity index 91% rename from web/pkg/service/v0/instrument.go rename to extensions/web/pkg/service/v0/instrument.go index 45934e03a..49cef7036 100644 --- a/web/pkg/service/v0/instrument.go +++ b/extensions/web/pkg/service/v0/instrument.go @@ -3,7 +3,7 @@ package svc import ( "net/http" - "github.com/owncloud/ocis/web/pkg/metrics" + "github.com/owncloud/ocis/extensions/web/pkg/metrics" ) // NewInstrument returns a service that instruments metrics. diff --git a/web/pkg/service/v0/logging.go b/extensions/web/pkg/service/v0/logging.go similarity index 100% rename from web/pkg/service/v0/logging.go rename to extensions/web/pkg/service/v0/logging.go diff --git a/webdav/pkg/service/v0/option.go b/extensions/web/pkg/service/v0/option.go similarity index 94% rename from webdav/pkg/service/v0/option.go rename to extensions/web/pkg/service/v0/option.go index bd689c3e6..bd55a2b1a 100644 --- a/webdav/pkg/service/v0/option.go +++ b/extensions/web/pkg/service/v0/option.go @@ -3,8 +3,8 @@ package svc import ( "net/http" + "github.com/owncloud/ocis/extensions/web/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/webdav/pkg/config" ) // Option defines a single option function. diff --git a/web/pkg/service/v0/service.go b/extensions/web/pkg/service/v0/service.go similarity index 97% rename from web/pkg/service/v0/service.go rename to extensions/web/pkg/service/v0/service.go index d7a92c3ad..3f762fded 100644 --- a/web/pkg/service/v0/service.go +++ b/extensions/web/pkg/service/v0/service.go @@ -12,9 +12,9 @@ import ( "time" "github.com/go-chi/chi/v5" + "github.com/owncloud/ocis/extensions/web/pkg/assets" + "github.com/owncloud/ocis/extensions/web/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/web/pkg/assets" - "github.com/owncloud/ocis/web/pkg/config" ) var ( diff --git a/web/pkg/service/v0/tracing.go b/extensions/web/pkg/service/v0/tracing.go similarity index 100% rename from web/pkg/service/v0/tracing.go rename to extensions/web/pkg/service/v0/tracing.go diff --git a/web/pkg/tracing/tracing.go b/extensions/web/pkg/tracing/tracing.go similarity index 90% rename from web/pkg/tracing/tracing.go rename to extensions/web/pkg/tracing/tracing.go index cebc588bd..f6e977d24 100644 --- a/web/pkg/tracing/tracing.go +++ b/extensions/web/pkg/tracing/tracing.go @@ -1,8 +1,8 @@ package tracing import ( + "github.com/owncloud/ocis/extensions/web/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - "github.com/owncloud/ocis/web/pkg/config" "go.opentelemetry.io/otel/trace" ) diff --git a/web/reflex.conf b/extensions/web/reflex.conf similarity index 100% rename from web/reflex.conf rename to extensions/web/reflex.conf diff --git a/web/web.go b/extensions/web/web.go similarity index 100% rename from web/web.go rename to extensions/web/web.go diff --git a/webdav/.dockerignore b/extensions/webdav/.dockerignore similarity index 100% rename from webdav/.dockerignore rename to extensions/webdav/.dockerignore diff --git a/webdav/Makefile b/extensions/webdav/Makefile similarity index 78% rename from webdav/Makefile rename to extensions/webdav/Makefile index 87ceace39..c6418420a 100644 --- a/webdav/Makefile +++ b/extensions/webdav/Makefile @@ -1,27 +1,27 @@ SHELL := bash NAME := webdav -include ../.make/recursion.mk +include ../../.make/recursion.mk ############ tooling ############ ifneq (, $(shell which go 2> /dev/null)) # suppress `command not found warnings` for non go targets in CI -include ../.bingo/Variables.mk +include ../../.bingo/Variables.mk endif ############ go tooling ############ -include ../.make/go.mk +include ../../.make/go.mk ############ release ######### -include ../.make/release.mk +include ../../.make/release.mk ############ docs generate ############ -include ../.make/docs.mk +include ../../.make/docs.mk .PHONY: docs-generate docs-generate: config-docs-generate ############ generate ############ -include ../.make/generate.mk +include ../../.make/generate.mk .PHONY: ci-go-generate ci-go-generate: # CI runs ci-node-generate automatically before this target diff --git a/extensions/webdav/cmd/webdav/main.go b/extensions/webdav/cmd/webdav/main.go new file mode 100644 index 000000000..0a65c6442 --- /dev/null +++ b/extensions/webdav/cmd/webdav/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis/extensions/webdav/pkg/command" + "github.com/owncloud/ocis/extensions/webdav/pkg/config/defaults" +) + +func main() { + if err := command.Execute(defaults.DefaultConfig()); err != nil { + os.Exit(1) + } +} diff --git a/webdav/config/.gitignore b/extensions/webdav/config/.gitignore similarity index 100% rename from webdav/config/.gitignore rename to extensions/webdav/config/.gitignore diff --git a/webdav/docker/Dockerfile.linux.amd64 b/extensions/webdav/docker/Dockerfile.linux.amd64 similarity index 100% rename from webdav/docker/Dockerfile.linux.amd64 rename to extensions/webdav/docker/Dockerfile.linux.amd64 diff --git a/webdav/docker/Dockerfile.linux.arm b/extensions/webdav/docker/Dockerfile.linux.arm similarity index 100% rename from webdav/docker/Dockerfile.linux.arm rename to extensions/webdav/docker/Dockerfile.linux.arm diff --git a/webdav/docker/Dockerfile.linux.arm64 b/extensions/webdav/docker/Dockerfile.linux.arm64 similarity index 100% rename from webdav/docker/Dockerfile.linux.arm64 rename to extensions/webdav/docker/Dockerfile.linux.arm64 diff --git a/webdav/docker/manifest.tmpl b/extensions/webdav/docker/manifest.tmpl similarity index 100% rename from webdav/docker/manifest.tmpl rename to extensions/webdav/docker/manifest.tmpl diff --git a/extensions/webdav/pkg/command/health.go b/extensions/webdav/pkg/command/health.go new file mode 100644 index 000000000..d6226f8e8 --- /dev/null +++ b/extensions/webdav/pkg/command/health.go @@ -0,0 +1,53 @@ +package command + +import ( + "fmt" + "net/http" + + "github.com/owncloud/ocis/extensions/webdav/pkg/config" + "github.com/owncloud/ocis/extensions/webdav/pkg/config/parser" + "github.com/owncloud/ocis/extensions/webdav/pkg/logging" + "github.com/urfave/cli/v2" +) + +// Health is the entrypoint for the health command. +func Health(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "health", + Usage: "check health status", + Category: "info", + Before: func(c *cli.Context) error { + return parser.ParseConfig(cfg) + }, + Action: func(c *cli.Context) error { + logger := logging.Configure(cfg.Service.Name, cfg.Log) + + resp, err := http.Get( + fmt.Sprintf( + "http://%s/healthz", + cfg.Debug.Addr, + ), + ) + + if err != nil { + logger.Fatal(). + Err(err). + Msg("Failed to request health check") + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + logger.Fatal(). + Int("code", resp.StatusCode). + Msg("Health seems to be in bad state") + } + + logger.Debug(). + Int("code", resp.StatusCode). + Msg("Health got a good state") + + return nil + }, + } +} diff --git a/webdav/pkg/command/root.go b/extensions/webdav/pkg/command/root.go similarity index 95% rename from webdav/pkg/command/root.go rename to extensions/webdav/pkg/command/root.go index 3a3a3432b..fe2a7f3c2 100644 --- a/webdav/pkg/command/root.go +++ b/extensions/webdav/pkg/command/root.go @@ -4,9 +4,9 @@ import ( "context" "os" + "github.com/owncloud/ocis/extensions/webdav/pkg/config" "github.com/owncloud/ocis/ocis-pkg/clihelper" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/webdav/pkg/config" "github.com/thejerf/suture/v4" "github.com/urfave/cli/v2" ) diff --git a/webdav/pkg/command/server.go b/extensions/webdav/pkg/command/server.go similarity index 82% rename from webdav/pkg/command/server.go rename to extensions/webdav/pkg/command/server.go index 3511d326c..291276cbb 100644 --- a/webdav/pkg/command/server.go +++ b/extensions/webdav/pkg/command/server.go @@ -5,14 +5,14 @@ import ( "fmt" "github.com/oklog/run" + "github.com/owncloud/ocis/extensions/webdav/pkg/config" + "github.com/owncloud/ocis/extensions/webdav/pkg/config/parser" + "github.com/owncloud/ocis/extensions/webdav/pkg/logging" + "github.com/owncloud/ocis/extensions/webdav/pkg/metrics" + "github.com/owncloud/ocis/extensions/webdav/pkg/server/debug" + "github.com/owncloud/ocis/extensions/webdav/pkg/server/http" + "github.com/owncloud/ocis/extensions/webdav/pkg/tracing" "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/webdav/pkg/config" - "github.com/owncloud/ocis/webdav/pkg/config/parser" - "github.com/owncloud/ocis/webdav/pkg/logging" - "github.com/owncloud/ocis/webdav/pkg/metrics" - "github.com/owncloud/ocis/webdav/pkg/server/debug" - "github.com/owncloud/ocis/webdav/pkg/server/http" - "github.com/owncloud/ocis/webdav/pkg/tracing" "github.com/urfave/cli/v2" ) diff --git a/extensions/webdav/pkg/command/version.go b/extensions/webdav/pkg/command/version.go new file mode 100644 index 000000000..b45684708 --- /dev/null +++ b/extensions/webdav/pkg/command/version.go @@ -0,0 +1,50 @@ +package command + +import ( + "fmt" + "os" + + "github.com/owncloud/ocis/ocis-pkg/registry" + "github.com/owncloud/ocis/ocis-pkg/version" + + tw "github.com/olekukonko/tablewriter" + "github.com/owncloud/ocis/extensions/webdav/pkg/config" + "github.com/urfave/cli/v2" +) + +// Version prints the service versions of all running instances. +func Version(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "version", + Usage: "print the version of this binary and the running extension instances", + Category: "info", + Action: func(c *cli.Context) error { + fmt.Println("Version: " + version.String) + fmt.Printf("Compiled: %s\n", version.Compiled()) + fmt.Println("") + + reg := registry.GetRegistry() + services, err := reg.GetService(cfg.HTTP.Namespace + "." + cfg.Service.Name) + if err != nil { + fmt.Println(fmt.Errorf("could not get %s services from the registry: %v", cfg.Service.Name, err)) + return err + } + + if len(services) == 0 { + fmt.Println("No running " + cfg.Service.Name + " service found.") + return nil + } + + table := tw.NewWriter(os.Stdout) + table.SetHeader([]string{"Version", "Address", "Id"}) + table.SetAutoFormatHeaders(false) + for _, s := range services { + for _, n := range s.Nodes { + table.Append([]string{s.Version, n.Address, n.Id}) + } + } + table.Render() + return nil + }, + } +} diff --git a/webdav/pkg/config/config.go b/extensions/webdav/pkg/config/config.go similarity index 100% rename from webdav/pkg/config/config.go rename to extensions/webdav/pkg/config/config.go diff --git a/webdav/pkg/config/debug.go b/extensions/webdav/pkg/config/debug.go similarity index 100% rename from webdav/pkg/config/debug.go rename to extensions/webdav/pkg/config/debug.go diff --git a/webdav/pkg/config/defaults/defaultconfig.go b/extensions/webdav/pkg/config/defaults/defaultconfig.go similarity index 97% rename from webdav/pkg/config/defaults/defaultconfig.go rename to extensions/webdav/pkg/config/defaults/defaultconfig.go index 8c2e16470..48e00e17f 100644 --- a/webdav/pkg/config/defaults/defaultconfig.go +++ b/extensions/webdav/pkg/config/defaults/defaultconfig.go @@ -3,7 +3,7 @@ package defaults import ( "strings" - "github.com/owncloud/ocis/webdav/pkg/config" + "github.com/owncloud/ocis/extensions/webdav/pkg/config" ) func FullDefaultConfig() *config.Config { diff --git a/webdav/pkg/config/http.go b/extensions/webdav/pkg/config/http.go similarity index 100% rename from webdav/pkg/config/http.go rename to extensions/webdav/pkg/config/http.go diff --git a/webdav/pkg/config/log.go b/extensions/webdav/pkg/config/log.go similarity index 100% rename from webdav/pkg/config/log.go rename to extensions/webdav/pkg/config/log.go diff --git a/extensions/webdav/pkg/config/parser/parse.go b/extensions/webdav/pkg/config/parser/parse.go new file mode 100644 index 000000000..7597255f9 --- /dev/null +++ b/extensions/webdav/pkg/config/parser/parse.go @@ -0,0 +1,33 @@ +package parser + +import ( + "errors" + + "github.com/owncloud/ocis/extensions/webdav/pkg/config" + "github.com/owncloud/ocis/extensions/webdav/pkg/config/defaults" + ociscfg "github.com/owncloud/ocis/ocis-pkg/config" + + "github.com/owncloud/ocis/ocis-pkg/config/envdecode" +) + +// ParseConfig loads accounts configuration from known paths. +func ParseConfig(cfg *config.Config) error { + _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) + if err != nil { + return err + } + + defaults.EnsureDefaults(cfg) + + // load all env variables relevant to the config in the current context. + if err := envdecode.Decode(cfg); err != nil { + // no environment variable set for this config is an expected "error" + if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { + return err + } + } + + defaults.Sanitize(cfg) + + return nil +} diff --git a/webdav/pkg/config/service.go b/extensions/webdav/pkg/config/service.go similarity index 100% rename from webdav/pkg/config/service.go rename to extensions/webdav/pkg/config/service.go diff --git a/webdav/pkg/config/tracing.go b/extensions/webdav/pkg/config/tracing.go similarity index 100% rename from webdav/pkg/config/tracing.go rename to extensions/webdav/pkg/config/tracing.go diff --git a/webdav/pkg/dav/requests/thumbnail.go b/extensions/webdav/pkg/dav/requests/thumbnail.go similarity index 100% rename from webdav/pkg/dav/requests/thumbnail.go rename to extensions/webdav/pkg/dav/requests/thumbnail.go diff --git a/webdav/pkg/errors/error.go b/extensions/webdav/pkg/errors/error.go similarity index 100% rename from webdav/pkg/errors/error.go rename to extensions/webdav/pkg/errors/error.go diff --git a/extensions/webdav/pkg/logging/logging.go b/extensions/webdav/pkg/logging/logging.go new file mode 100644 index 000000000..454e207cf --- /dev/null +++ b/extensions/webdav/pkg/logging/logging.go @@ -0,0 +1,17 @@ +package logging + +import ( + "github.com/owncloud/ocis/extensions/webdav/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// LoggerFromConfig initializes a service-specific logger instance. +func Configure(name string, cfg *config.Log) log.Logger { + return log.NewLogger( + log.Name(name), + log.Level(cfg.Level), + log.Pretty(cfg.Pretty), + log.Color(cfg.Color), + log.File(cfg.File), + ) +} diff --git a/webdav/pkg/metrics/metrics.go b/extensions/webdav/pkg/metrics/metrics.go similarity index 100% rename from webdav/pkg/metrics/metrics.go rename to extensions/webdav/pkg/metrics/metrics.go diff --git a/webdav/pkg/net/headers.go b/extensions/webdav/pkg/net/headers.go similarity index 100% rename from webdav/pkg/net/headers.go rename to extensions/webdav/pkg/net/headers.go diff --git a/webdav/pkg/net/net.go b/extensions/webdav/pkg/net/net.go similarity index 100% rename from webdav/pkg/net/net.go rename to extensions/webdav/pkg/net/net.go diff --git a/webdav/pkg/prop/prop.go b/extensions/webdav/pkg/prop/prop.go similarity index 100% rename from webdav/pkg/prop/prop.go rename to extensions/webdav/pkg/prop/prop.go diff --git a/webdav/pkg/propfind/propfind.go b/extensions/webdav/pkg/propfind/propfind.go similarity index 98% rename from webdav/pkg/propfind/propfind.go rename to extensions/webdav/pkg/propfind/propfind.go index 5a2f551cb..8be26112f 100644 --- a/webdav/pkg/propfind/propfind.go +++ b/extensions/webdav/pkg/propfind/propfind.go @@ -6,8 +6,8 @@ import ( "io" "net/http" - "github.com/owncloud/ocis/webdav/pkg/errors" - "github.com/owncloud/ocis/webdav/pkg/prop" + "github.com/owncloud/ocis/extensions/webdav/pkg/errors" + "github.com/owncloud/ocis/extensions/webdav/pkg/prop" ) const ( diff --git a/extensions/webdav/pkg/server/debug/option.go b/extensions/webdav/pkg/server/debug/option.go new file mode 100644 index 000000000..629ebebcd --- /dev/null +++ b/extensions/webdav/pkg/server/debug/option.go @@ -0,0 +1,50 @@ +package debug + +import ( + "context" + + "github.com/owncloud/ocis/extensions/webdav/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/log" +) + +// Option defines a single option function. +type Option func(o *Options) + +// Options defines the available options for this package. +type Options struct { + Logger log.Logger + Context context.Context + Config *config.Config +} + +// newOptions initializes the available default options. +func newOptions(opts ...Option) Options { + opt := Options{} + + for _, o := range opts { + o(&opt) + } + + return opt +} + +// Logger provides a function to set the logger option. +func Logger(val log.Logger) Option { + return func(o *Options) { + o.Logger = val + } +} + +// Context provides a function to set the context option. +func Context(val context.Context) Option { + return func(o *Options) { + o.Context = val + } +} + +// Config provides a function to set the config option. +func Config(val *config.Config) Option { + return func(o *Options) { + o.Config = val + } +} diff --git a/accounts/pkg/server/debug/server.go b/extensions/webdav/pkg/server/debug/server.go similarity index 97% rename from accounts/pkg/server/debug/server.go rename to extensions/webdav/pkg/server/debug/server.go index cabc14464..a17e16752 100644 --- a/accounts/pkg/server/debug/server.go +++ b/extensions/webdav/pkg/server/debug/server.go @@ -4,7 +4,7 @@ import ( "io" "net/http" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/webdav/pkg/config" "github.com/owncloud/ocis/ocis-pkg/service/debug" "github.com/owncloud/ocis/ocis-pkg/version" ) diff --git a/idp/pkg/server/http/option.go b/extensions/webdav/pkg/server/http/option.go similarity index 92% rename from idp/pkg/server/http/option.go rename to extensions/webdav/pkg/server/http/option.go index 9f12bd9b3..352d103cf 100644 --- a/idp/pkg/server/http/option.go +++ b/extensions/webdav/pkg/server/http/option.go @@ -3,8 +3,8 @@ package http import ( "context" - "github.com/owncloud/ocis/idp/pkg/config" - "github.com/owncloud/ocis/idp/pkg/metrics" + "github.com/owncloud/ocis/extensions/webdav/pkg/config" + "github.com/owncloud/ocis/extensions/webdav/pkg/metrics" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/urfave/cli/v2" ) diff --git a/webdav/pkg/server/http/server.go b/extensions/webdav/pkg/server/http/server.go similarity index 96% rename from webdav/pkg/server/http/server.go rename to extensions/webdav/pkg/server/http/server.go index 029245bba..c23a5516e 100644 --- a/webdav/pkg/server/http/server.go +++ b/extensions/webdav/pkg/server/http/server.go @@ -2,11 +2,11 @@ package http import ( chimiddleware "github.com/go-chi/chi/v5/middleware" + svc "github.com/owncloud/ocis/extensions/webdav/pkg/service/v0" "github.com/owncloud/ocis/ocis-pkg/cors" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" "github.com/owncloud/ocis/ocis-pkg/version" - svc "github.com/owncloud/ocis/webdav/pkg/service/v0" "go-micro.dev/v4" ) diff --git a/webdav/pkg/service/v0/instrument.go b/extensions/webdav/pkg/service/v0/instrument.go similarity index 91% rename from webdav/pkg/service/v0/instrument.go rename to extensions/webdav/pkg/service/v0/instrument.go index 4f5d6cb94..d476f3630 100644 --- a/webdav/pkg/service/v0/instrument.go +++ b/extensions/webdav/pkg/service/v0/instrument.go @@ -3,7 +3,7 @@ package svc import ( "net/http" - "github.com/owncloud/ocis/webdav/pkg/metrics" + "github.com/owncloud/ocis/extensions/webdav/pkg/metrics" ) // NewInstrument returns a service that instruments metrics. diff --git a/webdav/pkg/service/v0/logging.go b/extensions/webdav/pkg/service/v0/logging.go similarity index 100% rename from webdav/pkg/service/v0/logging.go rename to extensions/webdav/pkg/service/v0/logging.go diff --git a/web/pkg/service/v0/option.go b/extensions/webdav/pkg/service/v0/option.go similarity index 94% rename from web/pkg/service/v0/option.go rename to extensions/webdav/pkg/service/v0/option.go index 534ed9bd5..e1e88b2cf 100644 --- a/web/pkg/service/v0/option.go +++ b/extensions/webdav/pkg/service/v0/option.go @@ -3,8 +3,8 @@ package svc import ( "net/http" + "github.com/owncloud/ocis/extensions/webdav/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/web/pkg/config" ) // Option defines a single option function. diff --git a/webdav/pkg/service/v0/search.go b/extensions/webdav/pkg/service/v0/search.go similarity index 97% rename from webdav/pkg/service/v0/search.go rename to extensions/webdav/pkg/service/v0/search.go index f10c4309b..ce777a464 100644 --- a/webdav/pkg/service/v0/search.go +++ b/extensions/webdav/pkg/service/v0/search.go @@ -7,11 +7,11 @@ import ( "net/http" "strconv" + "github.com/owncloud/ocis/extensions/webdav/pkg/net" + "github.com/owncloud/ocis/extensions/webdav/pkg/prop" + "github.com/owncloud/ocis/extensions/webdav/pkg/propfind" searchmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/search/v0" searchsvc "github.com/owncloud/ocis/protogen/gen/ocis/services/search/v0" - "github.com/owncloud/ocis/webdav/pkg/net" - "github.com/owncloud/ocis/webdav/pkg/prop" - "github.com/owncloud/ocis/webdav/pkg/propfind" merrors "go-micro.dev/v4/errors" ) diff --git a/webdav/pkg/service/v0/service.go b/extensions/webdav/pkg/service/v0/service.go similarity index 98% rename from webdav/pkg/service/v0/service.go rename to extensions/webdav/pkg/service/v0/service.go index 2d7c541f1..1e982f920 100644 --- a/webdav/pkg/service/v0/service.go +++ b/extensions/webdav/pkg/service/v0/service.go @@ -20,11 +20,11 @@ import ( "github.com/owncloud/ocis/ocis-pkg/service/grpc" "github.com/go-chi/chi/v5" + "github.com/owncloud/ocis/extensions/webdav/pkg/config" + "github.com/owncloud/ocis/extensions/webdav/pkg/dav/requests" thumbnailsmsg "github.com/owncloud/ocis/protogen/gen/ocis/messages/thumbnails/v0" searchsvc "github.com/owncloud/ocis/protogen/gen/ocis/services/search/v0" thumbnailssvc "github.com/owncloud/ocis/protogen/gen/ocis/services/thumbnails/v0" - "github.com/owncloud/ocis/webdav/pkg/config" - "github.com/owncloud/ocis/webdav/pkg/dav/requests" ) const ( diff --git a/webdav/pkg/service/v0/tracing.go b/extensions/webdav/pkg/service/v0/tracing.go similarity index 100% rename from webdav/pkg/service/v0/tracing.go rename to extensions/webdav/pkg/service/v0/tracing.go diff --git a/proxy/pkg/tracing/tracing.go b/extensions/webdav/pkg/tracing/tracing.go similarity index 89% rename from proxy/pkg/tracing/tracing.go rename to extensions/webdav/pkg/tracing/tracing.go index 5ab072223..2412c7366 100644 --- a/proxy/pkg/tracing/tracing.go +++ b/extensions/webdav/pkg/tracing/tracing.go @@ -1,8 +1,8 @@ package tracing import ( + "github.com/owncloud/ocis/extensions/webdav/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - "github.com/owncloud/ocis/proxy/pkg/config" "go.opentelemetry.io/otel/trace" ) diff --git a/webdav/reflex.conf b/extensions/webdav/reflex.conf similarity index 100% rename from webdav/reflex.conf rename to extensions/webdav/reflex.conf diff --git a/graph/cmd/graph/main.go b/graph/cmd/graph/main.go deleted file mode 100644 index ddce12e82..000000000 --- a/graph/cmd/graph/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/graph/pkg/command" - "github.com/owncloud/ocis/graph/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/graph/pkg/logging/logging.go b/graph/pkg/logging/logging.go deleted file mode 100644 index daf29f40b..000000000 --- a/graph/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/graph/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/idm/cmd/idm/main.go b/idm/cmd/idm/main.go deleted file mode 100644 index 7463a99c7..000000000 --- a/idm/cmd/idm/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/idm/pkg/command" - "github.com/owncloud/ocis/idm/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/idm/pkg/command/health.go b/idm/pkg/command/health.go deleted file mode 100644 index 2de74ad12..000000000 --- a/idm/pkg/command/health.go +++ /dev/null @@ -1,53 +0,0 @@ -package command - -import ( - "fmt" - "net/http" - - "github.com/owncloud/ocis/idm/pkg/config" - "github.com/owncloud/ocis/idm/pkg/config/parser" - "github.com/owncloud/ocis/idm/pkg/logging" - "github.com/urfave/cli/v2" -) - -// Health is the entrypoint for the health command. -func Health(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "health", - Usage: "check health status", - Category: "info", - Before: func(c *cli.Context) error { - return parser.ParseConfig(cfg) - }, - Action: func(c *cli.Context) error { - logger := logging.Configure(cfg.Service.Name, cfg.Log) - - resp, err := http.Get( - fmt.Sprintf( - "http://%s/healthz", - cfg.Debug.Addr, - ), - ) - - if err != nil { - logger.Fatal(). - Err(err). - Msg("Failed to request health check") - } - - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - logger.Fatal(). - Int("code", resp.StatusCode). - Msg("Health seems to be in bad state") - } - - logger.Debug(). - Int("code", resp.StatusCode). - Msg("Health got a good state") - - return nil - }, - } -} diff --git a/idm/pkg/logging/logging.go b/idm/pkg/logging/logging.go deleted file mode 100644 index b43451cf7..000000000 --- a/idm/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/idm/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/idm/pkg/server/debug/option.go b/idm/pkg/server/debug/option.go deleted file mode 100644 index 1fbc90465..000000000 --- a/idm/pkg/server/debug/option.go +++ /dev/null @@ -1,50 +0,0 @@ -package debug - -import ( - "context" - - "github.com/owncloud/ocis/idm/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" -) - -// Option defines a single option function. -type Option func(o *Options) - -// Options defines the available options for this package. -type Options struct { - Logger log.Logger - Context context.Context - Config *config.Config -} - -// newOptions initializes the available default options. -func newOptions(opts ...Option) Options { - opt := Options{} - - for _, o := range opts { - o(&opt) - } - - return opt -} - -// Logger provides a function to set the logger option. -func Logger(val log.Logger) Option { - return func(o *Options) { - o.Logger = val - } -} - -// Context provides a function to set the context option. -func Context(val context.Context) Option { - return func(o *Options) { - o.Context = val - } -} - -// Config provides a function to set the config option. -func Config(val *config.Config) Option { - return func(o *Options) { - o.Config = val - } -} diff --git a/idp/cmd/idp/main.go b/idp/cmd/idp/main.go deleted file mode 100644 index f2faebb06..000000000 --- a/idp/cmd/idp/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/idp/pkg/command" - "github.com/owncloud/ocis/idp/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/idp/pkg/command/health.go b/idp/pkg/command/health.go deleted file mode 100644 index d1da86af7..000000000 --- a/idp/pkg/command/health.go +++ /dev/null @@ -1,53 +0,0 @@ -package command - -import ( - "fmt" - "net/http" - - "github.com/owncloud/ocis/idp/pkg/config" - "github.com/owncloud/ocis/idp/pkg/config/parser" - "github.com/owncloud/ocis/idp/pkg/logging" - "github.com/urfave/cli/v2" -) - -// Health is the entrypoint for the health command. -func Health(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "health", - Usage: "check health status", - Category: "info", - Before: func(c *cli.Context) error { - return parser.ParseConfig(cfg) - }, - Action: func(c *cli.Context) error { - logger := logging.Configure(cfg.Service.Name, cfg.Log) - - resp, err := http.Get( - fmt.Sprintf( - "http://%s/healthz", - cfg.Debug.Addr, - ), - ) - - if err != nil { - logger.Fatal(). - Err(err). - Msg("Failed to request health check") - } - - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - logger.Fatal(). - Int("code", resp.StatusCode). - Msg("Health seems to be in bad state") - } - - logger.Debug(). - Int("code", resp.StatusCode). - Msg("Health got a good state") - - return nil - }, - } -} diff --git a/idp/pkg/logging/logging.go b/idp/pkg/logging/logging.go deleted file mode 100644 index 97eb83fcd..000000000 --- a/idp/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/idp/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/idp/pkg/server/debug/option.go b/idp/pkg/server/debug/option.go deleted file mode 100644 index 5e0d17f8a..000000000 --- a/idp/pkg/server/debug/option.go +++ /dev/null @@ -1,50 +0,0 @@ -package debug - -import ( - "context" - - "github.com/owncloud/ocis/idp/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" -) - -// Option defines a single option function. -type Option func(o *Options) - -// Options defines the available options for this package. -type Options struct { - Logger log.Logger - Context context.Context - Config *config.Config -} - -// newOptions initializes the available default options. -func newOptions(opts ...Option) Options { - opt := Options{} - - for _, o := range opts { - o(&opt) - } - - return opt -} - -// Logger provides a function to set the logger option. -func Logger(val log.Logger) Option { - return func(o *Options) { - o.Logger = val - } -} - -// Context provides a function to set the context option. -func Context(val context.Context) Option { - return func(o *Options) { - o.Context = val - } -} - -// Config provides a function to set the config option. -func Config(val *config.Config) Option { - return func(o *Options) { - o.Config = val - } -} diff --git a/nats/cmd/nats/main.go b/nats/cmd/nats/main.go deleted file mode 100644 index a117af3cb..000000000 --- a/nats/cmd/nats/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/nats/pkg/command" - "github.com/owncloud/ocis/nats/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/nats/pkg/config/parser/parse.go b/nats/pkg/config/parser/parse.go deleted file mode 100644 index fb198fac2..000000000 --- a/nats/pkg/config/parser/parse.go +++ /dev/null @@ -1,33 +0,0 @@ -package parser - -import ( - "errors" - - "github.com/owncloud/ocis/nats/pkg/config" - "github.com/owncloud/ocis/nats/pkg/config/defaults" - ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - - "github.com/owncloud/ocis/ocis-pkg/config/envdecode" -) - -// ParseConfig loads accounts configuration from known paths. -func ParseConfig(cfg *config.Config) error { - _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) - if err != nil { - return err - } - - defaults.EnsureDefaults(cfg) - - // load all env variables relevant to the config in the current context. - if err := envdecode.Decode(cfg); err != nil { - // no environment variable set for this config is an expected "error" - if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { - return err - } - } - - defaults.Sanitize(cfg) - - return nil -} diff --git a/nats/pkg/logging/logging.go b/nats/pkg/logging/logging.go deleted file mode 100644 index b60d2c9f9..000000000 --- a/nats/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/nats/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/notifications/cmd/notifications/main.go b/notifications/cmd/notifications/main.go deleted file mode 100644 index 29d60a18b..000000000 --- a/notifications/cmd/notifications/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/notifications/pkg/command" - "github.com/owncloud/ocis/notifications/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/notifications/pkg/config/parser/parse.go b/notifications/pkg/config/parser/parse.go deleted file mode 100644 index 36231a708..000000000 --- a/notifications/pkg/config/parser/parse.go +++ /dev/null @@ -1,33 +0,0 @@ -package parser - -import ( - "errors" - - "github.com/owncloud/ocis/notifications/pkg/config" - "github.com/owncloud/ocis/notifications/pkg/config/defaults" - ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - - "github.com/owncloud/ocis/ocis-pkg/config/envdecode" -) - -// ParseConfig loads accounts configuration from known paths. -func ParseConfig(cfg *config.Config) error { - _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) - if err != nil { - return err - } - - defaults.EnsureDefaults(cfg) - - // load all env variables relevant to the config in the current context. - if err := envdecode.Decode(cfg); err != nil { - // no environment variable set for this config is an expected "error" - if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { - return err - } - } - - defaults.Sanitize(cfg) - - return nil -} diff --git a/notifications/pkg/logging/logging.go b/notifications/pkg/logging/logging.go deleted file mode 100644 index 039b0451c..000000000 --- a/notifications/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/notifications/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/ocis-pkg/config/config.go b/ocis-pkg/config/config.go index 60544abe9..5b95e9d4f 100644 --- a/ocis-pkg/config/config.go +++ b/ocis-pkg/config/config.go @@ -3,24 +3,24 @@ package config import ( "github.com/owncloud/ocis/ocis-pkg/shared" - accounts "github.com/owncloud/ocis/accounts/pkg/config" - audit "github.com/owncloud/ocis/audit/pkg/config" - glauth "github.com/owncloud/ocis/glauth/pkg/config" - graphExplorer "github.com/owncloud/ocis/graph-explorer/pkg/config" - graph "github.com/owncloud/ocis/graph/pkg/config" - idm "github.com/owncloud/ocis/idm/pkg/config" - idp "github.com/owncloud/ocis/idp/pkg/config" - nats "github.com/owncloud/ocis/nats/pkg/config" - notifications "github.com/owncloud/ocis/notifications/pkg/config" - ocs "github.com/owncloud/ocis/ocs/pkg/config" - proxy "github.com/owncloud/ocis/proxy/pkg/config" - search "github.com/owncloud/ocis/search/pkg/config" - settings "github.com/owncloud/ocis/settings/pkg/config" - storage "github.com/owncloud/ocis/storage/pkg/config" - store "github.com/owncloud/ocis/store/pkg/config" - thumbnails "github.com/owncloud/ocis/thumbnails/pkg/config" - web "github.com/owncloud/ocis/web/pkg/config" - webdav "github.com/owncloud/ocis/webdav/pkg/config" + accounts "github.com/owncloud/ocis/extensions/accounts/pkg/config" + audit "github.com/owncloud/ocis/extensions/audit/pkg/config" + glauth "github.com/owncloud/ocis/extensions/glauth/pkg/config" + graphExplorer "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config" + graph "github.com/owncloud/ocis/extensions/graph/pkg/config" + idm "github.com/owncloud/ocis/extensions/idm/pkg/config" + idp "github.com/owncloud/ocis/extensions/idp/pkg/config" + nats "github.com/owncloud/ocis/extensions/nats/pkg/config" + notifications "github.com/owncloud/ocis/extensions/notifications/pkg/config" + ocs "github.com/owncloud/ocis/extensions/ocs/pkg/config" + proxy "github.com/owncloud/ocis/extensions/proxy/pkg/config" + search "github.com/owncloud/ocis/extensions/search/pkg/config" + settings "github.com/owncloud/ocis/extensions/settings/pkg/config" + storage "github.com/owncloud/ocis/extensions/storage/pkg/config" + store "github.com/owncloud/ocis/extensions/store/pkg/config" + thumbnails "github.com/owncloud/ocis/extensions/thumbnails/pkg/config" + web "github.com/owncloud/ocis/extensions/web/pkg/config" + webdav "github.com/owncloud/ocis/extensions/webdav/pkg/config" ) // TokenManager is the config for using the reva token manager diff --git a/ocis-pkg/config/defaultconfig.go b/ocis-pkg/config/defaultconfig.go index 2ea23c401..51dd78565 100644 --- a/ocis-pkg/config/defaultconfig.go +++ b/ocis-pkg/config/defaultconfig.go @@ -1,24 +1,24 @@ package config import ( - accounts "github.com/owncloud/ocis/accounts/pkg/config/defaults" - audit "github.com/owncloud/ocis/audit/pkg/config/defaults" - glauth "github.com/owncloud/ocis/glauth/pkg/config/defaults" - graphExplorer "github.com/owncloud/ocis/graph-explorer/pkg/config/defaults" - graph "github.com/owncloud/ocis/graph/pkg/config/defaults" - idm "github.com/owncloud/ocis/idm/pkg/config/defaults" - idp "github.com/owncloud/ocis/idp/pkg/config/defaults" - nats "github.com/owncloud/ocis/nats/pkg/config/defaults" - notifications "github.com/owncloud/ocis/notifications/pkg/config/defaults" - ocs "github.com/owncloud/ocis/ocs/pkg/config/defaults" - proxy "github.com/owncloud/ocis/proxy/pkg/config/defaults" - search "github.com/owncloud/ocis/search/pkg/config/defaults" - settings "github.com/owncloud/ocis/settings/pkg/config/defaults" - storage "github.com/owncloud/ocis/storage/pkg/config/defaults" - store "github.com/owncloud/ocis/store/pkg/config/defaults" - thumbnails "github.com/owncloud/ocis/thumbnails/pkg/config/defaults" - web "github.com/owncloud/ocis/web/pkg/config/defaults" - webdav "github.com/owncloud/ocis/webdav/pkg/config/defaults" + accounts "github.com/owncloud/ocis/extensions/accounts/pkg/config/defaults" + audit "github.com/owncloud/ocis/extensions/audit/pkg/config/defaults" + glauth "github.com/owncloud/ocis/extensions/glauth/pkg/config/defaults" + graphExplorer "github.com/owncloud/ocis/extensions/graph-explorer/pkg/config/defaults" + graph "github.com/owncloud/ocis/extensions/graph/pkg/config/defaults" + idm "github.com/owncloud/ocis/extensions/idm/pkg/config/defaults" + idp "github.com/owncloud/ocis/extensions/idp/pkg/config/defaults" + nats "github.com/owncloud/ocis/extensions/nats/pkg/config/defaults" + notifications "github.com/owncloud/ocis/extensions/notifications/pkg/config/defaults" + ocs "github.com/owncloud/ocis/extensions/ocs/pkg/config/defaults" + proxy "github.com/owncloud/ocis/extensions/proxy/pkg/config/defaults" + search "github.com/owncloud/ocis/extensions/search/pkg/config/defaults" + settings "github.com/owncloud/ocis/extensions/settings/pkg/config/defaults" + storage "github.com/owncloud/ocis/extensions/storage/pkg/config/defaults" + store "github.com/owncloud/ocis/extensions/store/pkg/config/defaults" + thumbnails "github.com/owncloud/ocis/extensions/thumbnails/pkg/config/defaults" + web "github.com/owncloud/ocis/extensions/web/pkg/config/defaults" + webdav "github.com/owncloud/ocis/extensions/webdav/pkg/config/defaults" ) func DefaultConfig() *Config { diff --git a/ocis-pkg/indexer/config/config.go b/ocis-pkg/indexer/config/config.go index 5d2b23f71..1fd1ec724 100644 --- a/ocis-pkg/indexer/config/config.go +++ b/ocis-pkg/indexer/config/config.go @@ -2,7 +2,7 @@ package config import ( - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" ) // Repo defines which storage implementation is to be used. diff --git a/ocis-pkg/indexer/index/cs3/autoincrement.go b/ocis-pkg/indexer/index/cs3/autoincrement.go index 74ec81c0a..ceffd3653 100644 --- a/ocis-pkg/indexer/index/cs3/autoincrement.go +++ b/ocis-pkg/indexer/index/cs3/autoincrement.go @@ -9,7 +9,7 @@ import ( "strconv" "strings" - "github.com/owncloud/ocis/accounts/pkg/storage" + "github.com/owncloud/ocis/extensions/accounts/pkg/storage" idxerrs "github.com/owncloud/ocis/ocis-pkg/indexer/errors" diff --git a/ocis-pkg/indexer/index/cs3/config.go b/ocis-pkg/indexer/index/cs3/config.go index 430927d4c..c87e24c90 100644 --- a/ocis-pkg/indexer/index/cs3/config.go +++ b/ocis-pkg/indexer/index/cs3/config.go @@ -1,7 +1,7 @@ package cs3 import ( - acccfg "github.com/owncloud/ocis/accounts/pkg/config" + acccfg "github.com/owncloud/ocis/extensions/accounts/pkg/config" ) // Config represents cs3conf. Should be deprecated in favor of config.Config. diff --git a/ocis-pkg/indexer/index/cs3/non_unique.go b/ocis-pkg/indexer/index/cs3/non_unique.go index e25b860dc..19df6f5c2 100644 --- a/ocis-pkg/indexer/index/cs3/non_unique.go +++ b/ocis-pkg/indexer/index/cs3/non_unique.go @@ -7,7 +7,7 @@ import ( "path/filepath" "strings" - "github.com/owncloud/ocis/accounts/pkg/storage" + "github.com/owncloud/ocis/extensions/accounts/pkg/storage" v1beta11 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" diff --git a/ocis-pkg/indexer/index/cs3/unique.go b/ocis-pkg/indexer/index/cs3/unique.go index 8329d4ae5..f916d5c69 100644 --- a/ocis-pkg/indexer/index/cs3/unique.go +++ b/ocis-pkg/indexer/index/cs3/unique.go @@ -7,7 +7,7 @@ import ( "path/filepath" "strings" - "github.com/owncloud/ocis/accounts/pkg/storage" + "github.com/owncloud/ocis/extensions/accounts/pkg/storage" v1beta11 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" diff --git a/ocis-pkg/indexer/index/disk/unique_test.go b/ocis-pkg/indexer/index/disk/unique_test.go index fca28895e..4804691bd 100644 --- a/ocis-pkg/indexer/index/disk/unique_test.go +++ b/ocis-pkg/indexer/index/disk/unique_test.go @@ -5,7 +5,7 @@ import ( "path" "testing" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "github.com/owncloud/ocis/ocis-pkg/indexer/errors" "github.com/owncloud/ocis/ocis-pkg/indexer/index" "github.com/owncloud/ocis/ocis-pkg/indexer/option" diff --git a/ocis-pkg/indexer/option/option.go b/ocis-pkg/indexer/option/option.go index 8b819919d..13316fd0c 100644 --- a/ocis-pkg/indexer/option/option.go +++ b/ocis-pkg/indexer/option/option.go @@ -1,6 +1,6 @@ package option -import "github.com/owncloud/ocis/accounts/pkg/config" +import "github.com/owncloud/ocis/extensions/accounts/pkg/config" // Option defines a single option function. type Option func(o *Options) diff --git a/ocis-pkg/metadata_storage/metadata_storage.go b/ocis-pkg/metadata_storage/metadata_storage.go index 879fff03d..b5cbfc0ff 100644 --- a/ocis-pkg/metadata_storage/metadata_storage.go +++ b/ocis-pkg/metadata_storage/metadata_storage.go @@ -15,7 +15,7 @@ import ( "github.com/cs3org/reva/v2/pkg/errtypes" "github.com/cs3org/reva/v2/pkg/rgrpc/todo/pool" "github.com/cs3org/reva/v2/pkg/utils" - "github.com/owncloud/ocis/accounts/pkg/config" + "github.com/owncloud/ocis/extensions/accounts/pkg/config" "google.golang.org/grpc/metadata" ) diff --git a/ocis/pkg/command/accounts.go b/ocis/pkg/command/accounts.go index 5671fa9b6..f8a56bfcc 100644 --- a/ocis/pkg/command/accounts.go +++ b/ocis/pkg/command/accounts.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/accounts/pkg/command" + "github.com/owncloud/ocis/extensions/accounts/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" diff --git a/ocis/pkg/command/audit.go b/ocis/pkg/command/audit.go index 02fbb7a31..638367a16 100644 --- a/ocis/pkg/command/audit.go +++ b/ocis/pkg/command/audit.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/audit/pkg/command" + "github.com/owncloud/ocis/extensions/audit/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" diff --git a/ocis/pkg/command/glauth.go b/ocis/pkg/command/glauth.go index 9d7b09b02..ad91954eb 100644 --- a/ocis/pkg/command/glauth.go +++ b/ocis/pkg/command/glauth.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/glauth/pkg/command" + "github.com/owncloud/ocis/extensions/glauth/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" diff --git a/ocis/pkg/command/graph.go b/ocis/pkg/command/graph.go index 0a663e6db..836ad4446 100644 --- a/ocis/pkg/command/graph.go +++ b/ocis/pkg/command/graph.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/graph/pkg/command" + "github.com/owncloud/ocis/extensions/graph/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" diff --git a/ocis/pkg/command/graphexplorer.go b/ocis/pkg/command/graphexplorer.go index d88135d0b..95be9e503 100644 --- a/ocis/pkg/command/graphexplorer.go +++ b/ocis/pkg/command/graphexplorer.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/graph-explorer/pkg/command" + "github.com/owncloud/ocis/extensions/graph-explorer/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" diff --git a/ocis/pkg/command/idm.go b/ocis/pkg/command/idm.go index fbfa4ba06..d768b6dc5 100644 --- a/ocis/pkg/command/idm.go +++ b/ocis/pkg/command/idm.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/idm/pkg/command" + "github.com/owncloud/ocis/extensions/idm/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" diff --git a/ocis/pkg/command/idp.go b/ocis/pkg/command/idp.go index 8e64daee7..0c6828c59 100644 --- a/ocis/pkg/command/idp.go +++ b/ocis/pkg/command/idp.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/idp/pkg/command" + "github.com/owncloud/ocis/extensions/idp/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" diff --git a/ocis/pkg/command/natsserver.go b/ocis/pkg/command/natsserver.go index 165f61f0a..1e7f34323 100644 --- a/ocis/pkg/command/natsserver.go +++ b/ocis/pkg/command/natsserver.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/nats/pkg/command" + "github.com/owncloud/ocis/extensions/nats/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" diff --git a/ocis/pkg/command/notifications.go b/ocis/pkg/command/notifications.go index ec2eb3570..f4108e299 100644 --- a/ocis/pkg/command/notifications.go +++ b/ocis/pkg/command/notifications.go @@ -1,7 +1,7 @@ package command import ( - "github.com/owncloud/ocis/notifications/pkg/command" + "github.com/owncloud/ocis/extensions/notifications/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" diff --git a/ocis/pkg/command/ocdav.go b/ocis/pkg/command/ocdav.go index b04c673ea..c458ee285 100644 --- a/ocis/pkg/command/ocdav.go +++ b/ocis/pkg/command/ocdav.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/ocs.go b/ocis/pkg/command/ocs.go index 2570f2a38..2fae3beb9 100644 --- a/ocis/pkg/command/ocs.go +++ b/ocis/pkg/command/ocs.go @@ -1,10 +1,10 @@ package command import ( + "github.com/owncloud/ocis/extensions/ocs/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/ocs/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/proxy.go b/ocis/pkg/command/proxy.go index cd59c6090..429ca83e1 100644 --- a/ocis/pkg/command/proxy.go +++ b/ocis/pkg/command/proxy.go @@ -1,10 +1,10 @@ package command import ( + "github.com/owncloud/ocis/extensions/proxy/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/proxy/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/search.go b/ocis/pkg/command/search.go index 79a643b3f..61ef30884 100644 --- a/ocis/pkg/command/search.go +++ b/ocis/pkg/command/search.go @@ -1,10 +1,10 @@ package command import ( + "github.com/owncloud/ocis/extensions/search/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/search/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/settings.go b/ocis/pkg/command/settings.go index d489ccc80..32c8b43e6 100644 --- a/ocis/pkg/command/settings.go +++ b/ocis/pkg/command/settings.go @@ -1,10 +1,10 @@ package command import ( + "github.com/owncloud/ocis/extensions/settings/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/settings/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storageappprovider.go b/ocis/pkg/command/storageappprovider.go index 48744bff5..39444d492 100644 --- a/ocis/pkg/command/storageappprovider.go +++ b/ocis/pkg/command/storageappprovider.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storageauthbasic.go b/ocis/pkg/command/storageauthbasic.go index 3523c40b7..5059fd1e0 100644 --- a/ocis/pkg/command/storageauthbasic.go +++ b/ocis/pkg/command/storageauthbasic.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storageauthbearer.go b/ocis/pkg/command/storageauthbearer.go index 8486373a8..f9b1912f5 100644 --- a/ocis/pkg/command/storageauthbearer.go +++ b/ocis/pkg/command/storageauthbearer.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storageauthmachine.go b/ocis/pkg/command/storageauthmachine.go index 2f3392caf..64bded070 100644 --- a/ocis/pkg/command/storageauthmachine.go +++ b/ocis/pkg/command/storageauthmachine.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storagefrontend.go b/ocis/pkg/command/storagefrontend.go index 9079e268c..0bc98cbbd 100644 --- a/ocis/pkg/command/storagefrontend.go +++ b/ocis/pkg/command/storagefrontend.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storagegateway.go b/ocis/pkg/command/storagegateway.go index 615490fdd..fb96d116d 100644 --- a/ocis/pkg/command/storagegateway.go +++ b/ocis/pkg/command/storagegateway.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storagegroupprovider.go b/ocis/pkg/command/storagegroupprovider.go index ed7907f4e..a3703ac79 100644 --- a/ocis/pkg/command/storagegroupprovider.go +++ b/ocis/pkg/command/storagegroupprovider.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storagemetadata.go b/ocis/pkg/command/storagemetadata.go index cab4a7a08..ef3d4d205 100644 --- a/ocis/pkg/command/storagemetadata.go +++ b/ocis/pkg/command/storagemetadata.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storagepubliclink.go b/ocis/pkg/command/storagepubliclink.go index 653d7baf6..516bc6c72 100644 --- a/ocis/pkg/command/storagepubliclink.go +++ b/ocis/pkg/command/storagepubliclink.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storageshares.go b/ocis/pkg/command/storageshares.go index 1ae1c2a5e..e906cb20e 100644 --- a/ocis/pkg/command/storageshares.go +++ b/ocis/pkg/command/storageshares.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storagesharing.go b/ocis/pkg/command/storagesharing.go index 1a2e5f791..4a70baa80 100644 --- a/ocis/pkg/command/storagesharing.go +++ b/ocis/pkg/command/storagesharing.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storageuserprovider.go b/ocis/pkg/command/storageuserprovider.go index 611592452..896d05720 100644 --- a/ocis/pkg/command/storageuserprovider.go +++ b/ocis/pkg/command/storageuserprovider.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/storageusers.go b/ocis/pkg/command/storageusers.go index a6b57ceff..0c2a62c77 100644 --- a/ocis/pkg/command/storageusers.go +++ b/ocis/pkg/command/storageusers.go @@ -1,9 +1,9 @@ package command import ( + "github.com/owncloud/ocis/extensions/storage/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/storage/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/store.go b/ocis/pkg/command/store.go index 7e10d3628..e37d5ab79 100644 --- a/ocis/pkg/command/store.go +++ b/ocis/pkg/command/store.go @@ -1,10 +1,10 @@ package command import ( + "github.com/owncloud/ocis/extensions/store/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/store/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/thumbnails.go b/ocis/pkg/command/thumbnails.go index f2c2284b9..8409c98dc 100644 --- a/ocis/pkg/command/thumbnails.go +++ b/ocis/pkg/command/thumbnails.go @@ -1,10 +1,10 @@ package command import ( + "github.com/owncloud/ocis/extensions/thumbnails/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/thumbnails/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/web.go b/ocis/pkg/command/web.go index d5b2a9133..0b3ec822e 100644 --- a/ocis/pkg/command/web.go +++ b/ocis/pkg/command/web.go @@ -1,10 +1,10 @@ package command import ( + "github.com/owncloud/ocis/extensions/web/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/web/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/command/webdav.go b/ocis/pkg/command/webdav.go index f09b59a13..7add32497 100644 --- a/ocis/pkg/command/webdav.go +++ b/ocis/pkg/command/webdav.go @@ -1,10 +1,10 @@ package command import ( + "github.com/owncloud/ocis/extensions/webdav/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/config/parser" "github.com/owncloud/ocis/ocis/pkg/register" - "github.com/owncloud/ocis/webdav/pkg/command" "github.com/urfave/cli/v2" ) diff --git a/ocis/pkg/runtime/service/service.go b/ocis/pkg/runtime/service/service.go index db5b9f72b..b5fc813c5 100644 --- a/ocis/pkg/runtime/service/service.go +++ b/ocis/pkg/runtime/service/service.go @@ -19,26 +19,26 @@ import ( "github.com/mohae/deepcopy" "github.com/olekukonko/tablewriter" - accounts "github.com/owncloud/ocis/accounts/pkg/command" - glauth "github.com/owncloud/ocis/glauth/pkg/command" - graphExplorer "github.com/owncloud/ocis/graph-explorer/pkg/command" - graph "github.com/owncloud/ocis/graph/pkg/command" - idm "github.com/owncloud/ocis/idm/pkg/command" - idp "github.com/owncloud/ocis/idp/pkg/command" - nats "github.com/owncloud/ocis/nats/pkg/command" - notifications "github.com/owncloud/ocis/notifications/pkg/command" + accounts "github.com/owncloud/ocis/extensions/accounts/pkg/command" + glauth "github.com/owncloud/ocis/extensions/glauth/pkg/command" + graphExplorer "github.com/owncloud/ocis/extensions/graph-explorer/pkg/command" + graph "github.com/owncloud/ocis/extensions/graph/pkg/command" + idm "github.com/owncloud/ocis/extensions/idm/pkg/command" + idp "github.com/owncloud/ocis/extensions/idp/pkg/command" + nats "github.com/owncloud/ocis/extensions/nats/pkg/command" + notifications "github.com/owncloud/ocis/extensions/notifications/pkg/command" + ocs "github.com/owncloud/ocis/extensions/ocs/pkg/command" + proxy "github.com/owncloud/ocis/extensions/proxy/pkg/command" + search "github.com/owncloud/ocis/extensions/search/pkg/command" + settings "github.com/owncloud/ocis/extensions/settings/pkg/command" + storage "github.com/owncloud/ocis/extensions/storage/pkg/command" + store "github.com/owncloud/ocis/extensions/store/pkg/command" + thumbnails "github.com/owncloud/ocis/extensions/thumbnails/pkg/command" + web "github.com/owncloud/ocis/extensions/web/pkg/command" + webdav "github.com/owncloud/ocis/extensions/webdav/pkg/command" "github.com/owncloud/ocis/ocis-pkg/config" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - ocs "github.com/owncloud/ocis/ocs/pkg/command" - proxy "github.com/owncloud/ocis/proxy/pkg/command" - search "github.com/owncloud/ocis/search/pkg/command" - settings "github.com/owncloud/ocis/settings/pkg/command" - storage "github.com/owncloud/ocis/storage/pkg/command" - store "github.com/owncloud/ocis/store/pkg/command" - thumbnails "github.com/owncloud/ocis/thumbnails/pkg/command" - web "github.com/owncloud/ocis/web/pkg/command" - webdav "github.com/owncloud/ocis/webdav/pkg/command" "github.com/rs/zerolog" "github.com/thejerf/suture/v4" "go-micro.dev/v4/logger" diff --git a/ocs/cmd/ocs/main.go b/ocs/cmd/ocs/main.go deleted file mode 100644 index 22f6a011e..000000000 --- a/ocs/cmd/ocs/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/ocs/pkg/command" - "github.com/owncloud/ocis/ocs/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/ocs/pkg/command/health.go b/ocs/pkg/command/health.go deleted file mode 100644 index b49d3b41a..000000000 --- a/ocs/pkg/command/health.go +++ /dev/null @@ -1,53 +0,0 @@ -package command - -import ( - "fmt" - "net/http" - - "github.com/owncloud/ocis/ocs/pkg/config" - "github.com/owncloud/ocis/ocs/pkg/config/parser" - "github.com/owncloud/ocis/ocs/pkg/logging" - "github.com/urfave/cli/v2" -) - -// Health is the entrypoint for the health command. -func Health(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "health", - Usage: "check health status", - Category: "info", - Before: func(c *cli.Context) error { - return parser.ParseConfig(cfg) - }, - Action: func(c *cli.Context) error { - logger := logging.Configure(cfg.Service.Name, cfg.Log) - - resp, err := http.Get( - fmt.Sprintf( - "http://%s/healthz", - cfg.Debug.Addr, - ), - ) - - if err != nil { - logger.Fatal(). - Err(err). - Msg("Failed to request health check") - } - - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - logger.Fatal(). - Int("code", resp.StatusCode). - Msg("Health seems to be in bad state") - } - - logger.Debug(). - Int("code", resp.StatusCode). - Msg("Health got a good state") - - return nil - }, - } -} diff --git a/ocs/pkg/config/parser/parse.go b/ocs/pkg/config/parser/parse.go deleted file mode 100644 index f5cbc34cb..000000000 --- a/ocs/pkg/config/parser/parse.go +++ /dev/null @@ -1,33 +0,0 @@ -package parser - -import ( - "errors" - - ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/ocs/pkg/config" - "github.com/owncloud/ocis/ocs/pkg/config/defaults" - - "github.com/owncloud/ocis/ocis-pkg/config/envdecode" -) - -// ParseConfig loads accounts configuration from known paths. -func ParseConfig(cfg *config.Config) error { - _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) - if err != nil { - return err - } - - defaults.EnsureDefaults(cfg) - - // load all env variables relevant to the config in the current context. - if err := envdecode.Decode(cfg); err != nil { - // no environment variable set for this config is an expected "error" - if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { - return err - } - } - - defaults.Sanitize(cfg) - - return nil -} diff --git a/ocs/pkg/logging/logging.go b/ocs/pkg/logging/logging.go deleted file mode 100644 index 80350b0d0..000000000 --- a/ocs/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/ocs/pkg/config" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/ocs/pkg/server/debug/option.go b/ocs/pkg/server/debug/option.go deleted file mode 100644 index 683f63d90..000000000 --- a/ocs/pkg/server/debug/option.go +++ /dev/null @@ -1,50 +0,0 @@ -package debug - -import ( - "context" - - "github.com/owncloud/ocis/ocs/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" -) - -// Option defines a single option function. -type Option func(o *Options) - -// Options defines the available options for this package. -type Options struct { - Logger log.Logger - Context context.Context - Config *config.Config -} - -// newOptions initializes the available default options. -func newOptions(opts ...Option) Options { - opt := Options{} - - for _, o := range opts { - o(&opt) - } - - return opt -} - -// Logger provides a function to set the logger option. -func Logger(val log.Logger) Option { - return func(o *Options) { - o.Logger = val - } -} - -// Context provides a function to set the context option. -func Context(val context.Context) Option { - return func(o *Options) { - o.Context = val - } -} - -// Config provides a function to set the config option. -func Config(val *config.Config) Option { - return func(o *Options) { - o.Config = val - } -} diff --git a/proxy/cmd/proxy/main.go b/proxy/cmd/proxy/main.go deleted file mode 100644 index 144059b22..000000000 --- a/proxy/cmd/proxy/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/proxy/pkg/command" - "github.com/owncloud/ocis/proxy/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/proxy/pkg/command/health.go b/proxy/pkg/command/health.go deleted file mode 100644 index ff004eae4..000000000 --- a/proxy/pkg/command/health.go +++ /dev/null @@ -1,53 +0,0 @@ -package command - -import ( - "fmt" - "net/http" - - "github.com/owncloud/ocis/proxy/pkg/config" - "github.com/owncloud/ocis/proxy/pkg/config/parser" - "github.com/owncloud/ocis/proxy/pkg/logging" - "github.com/urfave/cli/v2" -) - -// Health is the entrypoint for the health command. -func Health(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "health", - Usage: "check health status", - Category: "info", - Before: func(c *cli.Context) error { - return parser.ParseConfig(cfg) - }, - Action: func(c *cli.Context) error { - logger := logging.Configure(cfg.Service.Name, cfg.Log) - - resp, err := http.Get( - fmt.Sprintf( - "http://%s/healthz", - cfg.Debug.Addr, - ), - ) - - if err != nil { - logger.Fatal(). - Err(err). - Msg("Failed to request health check") - } - - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - logger.Fatal(). - Int("code", resp.StatusCode). - Msg("Health seems to be in bad state") - } - - logger.Debug(). - Int("code", resp.StatusCode). - Msg("Health got a good state") - - return nil - }, - } -} diff --git a/proxy/pkg/config/parser/parse.go b/proxy/pkg/config/parser/parse.go deleted file mode 100644 index ef6d2cec4..000000000 --- a/proxy/pkg/config/parser/parse.go +++ /dev/null @@ -1,32 +0,0 @@ -package parser - -import ( - "errors" - - ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/proxy/pkg/config" - "github.com/owncloud/ocis/proxy/pkg/config/defaults" - - "github.com/owncloud/ocis/ocis-pkg/config/envdecode" -) - -// ParseConfig loads accounts configuration from known paths. -func ParseConfig(cfg *config.Config) error { - _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) - if err != nil { - return err - } - - defaults.EnsureDefaults(cfg) - // load all env variables relevant to the config in the current context. - if err := envdecode.Decode(cfg); err != nil { - // no environment variable set for this config is an expected "error" - if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { - return err - } - } - - defaults.Sanitize(cfg) - - return nil -} diff --git a/proxy/pkg/logging/logging.go b/proxy/pkg/logging/logging.go deleted file mode 100644 index dfaeabd24..000000000 --- a/proxy/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/proxy/pkg/config" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/proxy/pkg/server/debug/option.go b/proxy/pkg/server/debug/option.go deleted file mode 100644 index c34b917ca..000000000 --- a/proxy/pkg/server/debug/option.go +++ /dev/null @@ -1,50 +0,0 @@ -package debug - -import ( - "context" - - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/proxy/pkg/config" -) - -// Option defines a single option function. -type Option func(o *Options) - -// Options defines the available options for this package. -type Options struct { - Logger log.Logger - Context context.Context - Config *config.Config -} - -// newOptions initializes the available default options. -func newOptions(opts ...Option) Options { - opt := Options{} - - for _, o := range opts { - o(&opt) - } - - return opt -} - -// Logger provides a function to set the logger option. -func Logger(val log.Logger) Option { - return func(o *Options) { - o.Logger = val - } -} - -// Context provides a function to set the context option. -func Context(val context.Context) Option { - return func(o *Options) { - o.Context = val - } -} - -// Config provides a function to set the config option. -func Config(val *config.Config) Option { - return func(o *Options) { - o.Config = val - } -} diff --git a/search/cmd/search/main.go b/search/cmd/search/main.go deleted file mode 100644 index 71f142061..000000000 --- a/search/cmd/search/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/search/pkg/command" - "github.com/owncloud/ocis/search/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/search/pkg/command/health.go b/search/pkg/command/health.go deleted file mode 100644 index d0389cc9c..000000000 --- a/search/pkg/command/health.go +++ /dev/null @@ -1,53 +0,0 @@ -package command - -import ( - "fmt" - "net/http" - - "github.com/owncloud/ocis/search/pkg/config" - "github.com/owncloud/ocis/search/pkg/config/parser" - "github.com/owncloud/ocis/search/pkg/logging" - "github.com/urfave/cli/v2" -) - -// Health is the entrypoint for the health command. -func Health(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "health", - Usage: "check health status", - Category: "info", - Before: func(c *cli.Context) error { - return parser.ParseConfig(cfg) - }, - Action: func(c *cli.Context) error { - logger := logging.Configure(cfg.Service.Name, cfg.Log) - - resp, err := http.Get( - fmt.Sprintf( - "http://%s/healthz", - cfg.Debug.Addr, - ), - ) - - if err != nil { - logger.Fatal(). - Err(err). - Msg("Failed to request health check") - } - - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - logger.Fatal(). - Int("code", resp.StatusCode). - Msg("Health seems to be in bad state") - } - - logger.Debug(). - Int("code", resp.StatusCode). - Msg("Health got a good state") - - return nil - }, - } -} diff --git a/search/pkg/config/parser/parse.go b/search/pkg/config/parser/parse.go deleted file mode 100644 index b467524d7..000000000 --- a/search/pkg/config/parser/parse.go +++ /dev/null @@ -1,33 +0,0 @@ -package parser - -import ( - "errors" - - ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/search/pkg/config" - "github.com/owncloud/ocis/search/pkg/config/defaults" - - "github.com/owncloud/ocis/ocis-pkg/config/envdecode" -) - -// ParseConfig loads accounts configuration from known paths. -func ParseConfig(cfg *config.Config) error { - _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) - if err != nil { - return err - } - - defaults.EnsureDefaults(cfg) - - // load all env variables relevant to the config in the current context. - if err := envdecode.Decode(cfg); err != nil { - // no environment variable set for this config is an expected "error" - if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { - return err - } - } - - defaults.Sanitize(cfg) - - return nil -} diff --git a/search/pkg/logging/logging.go b/search/pkg/logging/logging.go deleted file mode 100644 index eeb49456f..000000000 --- a/search/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/search/pkg/config" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/search/pkg/search/provider/provider_suite_test.go b/search/pkg/search/provider/provider_suite_test.go deleted file mode 100644 index abe3eb217..000000000 --- a/search/pkg/search/provider/provider_suite_test.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2018-2022 CERN -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// In applying this license, CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -package provider_test - -import ( - "testing" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -func TestProvider(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "Provider Suite") -} diff --git a/search/pkg/search/search_suite_test.go b/search/pkg/search/search_suite_test.go deleted file mode 100644 index 46c3962a2..000000000 --- a/search/pkg/search/search_suite_test.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2018-2022 CERN -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// In applying this license, CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -package search_test - -import ( - "testing" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -func TestSearch(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "Search Suite") -} diff --git a/search/pkg/server/debug/option.go b/search/pkg/server/debug/option.go deleted file mode 100644 index 1a88ca113..000000000 --- a/search/pkg/server/debug/option.go +++ /dev/null @@ -1,50 +0,0 @@ -package debug - -import ( - "context" - - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/search/pkg/config" -) - -// Option defines a single option function. -type Option func(o *Options) - -// Options defines the available options for this package. -type Options struct { - Logger log.Logger - Context context.Context - Config *config.Config -} - -// newOptions initializes the available default options. -func newOptions(opts ...Option) Options { - opt := Options{} - - for _, o := range opts { - o(&opt) - } - - return opt -} - -// Logger provides a function to set the logger option. -func Logger(val log.Logger) Option { - return func(o *Options) { - o.Logger = val - } -} - -// Context provides a function to set the context option. -func Context(val context.Context) Option { - return func(o *Options) { - o.Context = val - } -} - -// Config provides a function to set the config option. -func Config(val *config.Config) Option { - return func(o *Options) { - o.Config = val - } -} diff --git a/search/pkg/server/debug/server.go b/search/pkg/server/debug/server.go deleted file mode 100644 index 88b51662b..000000000 --- a/search/pkg/server/debug/server.go +++ /dev/null @@ -1,59 +0,0 @@ -package debug - -import ( - "io" - "net/http" - - "github.com/owncloud/ocis/ocis-pkg/service/debug" - "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/search/pkg/config" -) - -// Server initializes the debug service and server. -func Server(opts ...Option) (*http.Server, error) { - options := newOptions(opts...) - - return debug.NewService( - debug.Logger(options.Logger), - debug.Name(options.Config.Service.Name), - debug.Version(version.String), - debug.Address(options.Config.Debug.Addr), - debug.Token(options.Config.Debug.Token), - debug.Pprof(options.Config.Debug.Pprof), - debug.Zpages(options.Config.Debug.Zpages), - debug.Health(health(options.Config)), - debug.Ready(ready(options.Config)), - ), nil -} - -// health implements the health check. -func health(cfg *config.Config) func(http.ResponseWriter, *http.Request) { - return func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/plain") - w.WriteHeader(http.StatusOK) - - // TODO: check if services are up and running - - _, err := io.WriteString(w, http.StatusText(http.StatusOK)) - // io.WriteString should not fail but if it does we want to know. - if err != nil { - panic(err) - } - } -} - -// ready implements the ready check. -func ready(cfg *config.Config) func(http.ResponseWriter, *http.Request) { - return func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/plain") - w.WriteHeader(http.StatusOK) - - // TODO: check if services are up and running - - _, err := io.WriteString(w, http.StatusText(http.StatusOK)) - // io.WriteString should not fail but if it does we want to know. - if err != nil { - panic(err) - } - } -} diff --git a/settings/cmd/settings/main.go b/settings/cmd/settings/main.go deleted file mode 100644 index ce7ff878f..000000000 --- a/settings/cmd/settings/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/settings/pkg/command" - "github.com/owncloud/ocis/settings/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/settings/pkg/config/parser/parse.go b/settings/pkg/config/parser/parse.go deleted file mode 100644 index ec2926d14..000000000 --- a/settings/pkg/config/parser/parse.go +++ /dev/null @@ -1,32 +0,0 @@ -package parser - -import ( - "errors" - - ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/settings/pkg/config" - "github.com/owncloud/ocis/settings/pkg/config/defaults" - - "github.com/owncloud/ocis/ocis-pkg/config/envdecode" -) - -// ParseConfig loads accounts configuration from known paths. -func ParseConfig(cfg *config.Config) error { - _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) - if err != nil { - return err - } - - defaults.EnsureDefaults(cfg) - // load all env variables relevant to the config in the current context. - if err := envdecode.Decode(cfg); err != nil { - // no environment variable set for this config is an expected "error" - if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { - return err - } - } - - defaults.Sanitize(cfg) - - return nil -} diff --git a/settings/pkg/logging/logging.go b/settings/pkg/logging/logging.go deleted file mode 100644 index aba0cbe82..000000000 --- a/settings/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/settings/pkg/config" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/settings/pkg/server/debug/option.go b/settings/pkg/server/debug/option.go deleted file mode 100644 index efcc12b6c..000000000 --- a/settings/pkg/server/debug/option.go +++ /dev/null @@ -1,50 +0,0 @@ -package debug - -import ( - "context" - - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/settings/pkg/config" -) - -// Option defines a single option function. -type Option func(o *Options) - -// Options defines the available options for this package. -type Options struct { - Logger log.Logger - Context context.Context - Config *config.Config -} - -// newOptions initializes the available default options. -func newOptions(opts ...Option) Options { - opt := Options{} - - for _, o := range opts { - o(&opt) - } - - return opt -} - -// Logger provides a function to set the logger option. -func Logger(val log.Logger) Option { - return func(o *Options) { - o.Logger = val - } -} - -// Context provides a function to set the context option. -func Context(val context.Context) Option { - return func(o *Options) { - o.Context = val - } -} - -// Config provides a function to set the config option. -func Config(val *config.Config) Option { - return func(o *Options) { - o.Config = val - } -} diff --git a/settings/pkg/store/registry.go b/settings/pkg/store/registry.go deleted file mode 100644 index 2359e0d39..000000000 --- a/settings/pkg/store/registry.go +++ /dev/null @@ -1,7 +0,0 @@ -package store - -import ( - // init filesystem store - _ "github.com/owncloud/ocis/settings/pkg/store/filesystem" - _ "github.com/owncloud/ocis/settings/pkg/store/metadata" -) diff --git a/sonar-project.properties b/sonar-project.properties index 52ef9a9c5..cb6e40fd9 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -2,7 +2,7 @@ sonar.projectKey=owncloud_ocis sonar.organization=owncloud-1 sonar.projectName=ocis -sonar.projectVersion=1.19.1 +sonar.projectVersion=1.20.0 sonar.host.url=https://sonarcloud.io # ===================================================== @@ -33,7 +33,7 @@ sonar.go.coverage.reportPaths=cache/coverage/* # golangci-lint does not support wildcard # https://github.com/SonarSource/slang/blob/85b05160bc1b31c6072a35f8818da4376b107afa/sonar-go-plugin/src/main/java/org/sonar/go/externalreport/GolangCILintReportSensor.java#L37 # https://github.com/SonarSource/slang/blob/85b05160bc1b31c6072a35f8818da4376b107afa/sonar-go-plugin/src/main/java/org/sonar/go/externalreport/AbstractReportSensor.java#L76-L90 -sonar.go.golangci-lint.reportPaths=cache/checkstyle/accounts_checkstyle.xml,cache/checkstyle/glauth_checkstyle.xml,cache/checkstyle/graph_checkstyle.xml,cache/checkstyle/graph-explorer_checkstyle.xml,cache/checkstyle/idp_checkstyle.xml,cache/checkstyle/ocis_checkstyle.xml,cache/checkstyle/ocis-pkg_checkstyle.xml,cache/checkstyle/ocs_checkstyle.xml,cache/checkstyle/proxy_checkstyle.xml,cache/checkstyle/settings_checkstyle.xml,cache/checkstyle/storage_checkstyle.xml,cache/checkstyle/store_checkstyle.xml,cache/checkstyle/thumbnails_checkstyle.xml,cache/checkstyle/web_checkstyle.xml,cache/checkstyle/webdav_checkstyle.xml +sonar.go.golangci-lint.reportPaths=cache/checkstyle/accounts_checkstyle.xml,cache/checkstyle/audit_checkstyle.xml,cache/checkstyle/glauth_checkstyle.xml,cache/checkstyle/graph_checkstyle.xml,cache/checkstyle/graph-explorer_checkstyle.xml,cache/checkstyle/idm_checkstyle.xml,cache/checkstyle/idp_checkstyle.xml,cache/checkstyle/nats_checkstyle.xml,cache/checkstyle/notifications_checkstyle.xml,cache/checkstyle/ocis_checkstyle.xml,cache/checkstyle/ocis-pkg_checkstyle.xml,cache/checkstyle/ocs_checkstyle.xml,cache/checkstyle/proxy_checkstyle.xml,cache/checkstyle/settings_checkstyle.xml,cache/checkstyle/storage_checkstyle.xml,cache/checkstyle/store_checkstyle.xml,cache/checkstyle/thumbnails_checkstyle.xml,cache/checkstyle/web_checkstyle.xml,cache/checkstyle/webdav_checkstyle.xml # Exclude files sonar.exclusions=**/third_party,docs/**,changelog/**,*/pkg/assets/embed.go,idp/assets/identifier/**,**/package.json,**/rollup.config.js,CHANGELOG.md,**/pkg/proto/**/*.pb.*,deployments/**,tests/**,vendor-bin/**,README.md,**/mocks/ diff --git a/storage/cmd/storage/main.go b/storage/cmd/storage/main.go deleted file mode 100644 index 4503dac72..000000000 --- a/storage/cmd/storage/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/storage/pkg/command" - "github.com/owncloud/ocis/storage/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/store/cmd/store/main.go b/store/cmd/store/main.go deleted file mode 100644 index 06cc58efa..000000000 --- a/store/cmd/store/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/store/pkg/command" - "github.com/owncloud/ocis/store/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/store/pkg/command/health.go b/store/pkg/command/health.go deleted file mode 100644 index fafc60e02..000000000 --- a/store/pkg/command/health.go +++ /dev/null @@ -1,53 +0,0 @@ -package command - -import ( - "fmt" - "net/http" - - "github.com/owncloud/ocis/store/pkg/config" - "github.com/owncloud/ocis/store/pkg/config/parser" - "github.com/owncloud/ocis/store/pkg/logging" - "github.com/urfave/cli/v2" -) - -// Health is the entrypoint for the health command. -func Health(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "health", - Usage: "check health status", - Category: "info", - Before: func(c *cli.Context) error { - return parser.ParseConfig(cfg) - }, - Action: func(c *cli.Context) error { - logger := logging.Configure(cfg.Service.Name, cfg.Log) - - resp, err := http.Get( - fmt.Sprintf( - "http://%s/healthz", - cfg.Debug.Addr, - ), - ) - - if err != nil { - logger.Fatal(). - Err(err). - Msg("Failed to request health check") - } - - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - logger.Fatal(). - Int("code", resp.StatusCode). - Msg("Health seems to be in bad state") - } - - logger.Debug(). - Int("code", resp.StatusCode). - Msg("Health got a good state") - - return nil - }, - } -} diff --git a/store/pkg/logging/logging.go b/store/pkg/logging/logging.go deleted file mode 100644 index c5c6d4520..000000000 --- a/store/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/store/pkg/config" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/store/pkg/server/debug/option.go b/store/pkg/server/debug/option.go deleted file mode 100644 index 416777bde..000000000 --- a/store/pkg/server/debug/option.go +++ /dev/null @@ -1,50 +0,0 @@ -package debug - -import ( - "context" - - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/store/pkg/config" -) - -// Option defines a single option function. -type Option func(o *Options) - -// Options defines the available options for this package. -type Options struct { - Logger log.Logger - Context context.Context - Config *config.Config -} - -// newOptions initializes the available default options. -func newOptions(opts ...Option) Options { - opt := Options{} - - for _, o := range opts { - o(&opt) - } - - return opt -} - -// Logger provides a function to set the logger option. -func Logger(val log.Logger) Option { - return func(o *Options) { - o.Logger = val - } -} - -// Context provides a function to set the context option. -func Context(val context.Context) Option { - return func(o *Options) { - o.Context = val - } -} - -// Config provides a function to set the config option. -func Config(val *config.Config) Option { - return func(o *Options) { - o.Config = val - } -} diff --git a/store/pkg/server/debug/server.go b/store/pkg/server/debug/server.go deleted file mode 100644 index 874071c71..000000000 --- a/store/pkg/server/debug/server.go +++ /dev/null @@ -1,59 +0,0 @@ -package debug - -import ( - "io" - "net/http" - - "github.com/owncloud/ocis/ocis-pkg/service/debug" - "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/store/pkg/config" -) - -// Server initializes the debug service and server. -func Server(opts ...Option) (*http.Server, error) { - options := newOptions(opts...) - - return debug.NewService( - debug.Logger(options.Logger), - debug.Name(options.Config.Service.Name), - debug.Version(version.String), - debug.Address(options.Config.Debug.Addr), - debug.Token(options.Config.Debug.Token), - debug.Pprof(options.Config.Debug.Pprof), - debug.Zpages(options.Config.Debug.Zpages), - debug.Health(health(options.Config)), - debug.Ready(ready(options.Config)), - ), nil -} - -// health implements the health check. -func health(cfg *config.Config) func(http.ResponseWriter, *http.Request) { - return func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/plain") - w.WriteHeader(http.StatusOK) - - // TODO: check if services are up and running - - _, err := io.WriteString(w, http.StatusText(http.StatusOK)) - // io.WriteString should not fail but if it does we want to know. - if err != nil { - panic(err) - } - } -} - -// ready implements the ready check. -func ready(cfg *config.Config) func(http.ResponseWriter, *http.Request) { - return func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/plain") - w.WriteHeader(http.StatusOK) - - // TODO: check if services are up and running - - _, err := io.WriteString(w, http.StatusText(http.StatusOK)) - // io.WriteString should not fail but if it does we want to know. - if err != nil { - panic(err) - } - } -} diff --git a/thumbnails/cmd/thumbnails/main.go b/thumbnails/cmd/thumbnails/main.go deleted file mode 100644 index 945b3ec15..000000000 --- a/thumbnails/cmd/thumbnails/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/thumbnails/pkg/command" - "github.com/owncloud/ocis/thumbnails/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/thumbnails/pkg/command/health.go b/thumbnails/pkg/command/health.go deleted file mode 100644 index 7eb462475..000000000 --- a/thumbnails/pkg/command/health.go +++ /dev/null @@ -1,53 +0,0 @@ -package command - -import ( - "fmt" - "net/http" - - "github.com/owncloud/ocis/thumbnails/pkg/config" - "github.com/owncloud/ocis/thumbnails/pkg/config/parser" - "github.com/owncloud/ocis/thumbnails/pkg/logging" - "github.com/urfave/cli/v2" -) - -// Health is the entrypoint for the health command. -func Health(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "health", - Usage: "check health status", - Category: "info", - Before: func(c *cli.Context) error { - return parser.ParseConfig(cfg) - }, - Action: func(c *cli.Context) error { - logger := logging.Configure(cfg.Service.Name, cfg.Log) - - resp, err := http.Get( - fmt.Sprintf( - "http://%s/healthz", - cfg.Debug.Addr, - ), - ) - - if err != nil { - logger.Fatal(). - Err(err). - Msg("Failed to request health check") - } - - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - logger.Fatal(). - Int("code", resp.StatusCode). - Msg("Health seems to be in bad state") - } - - logger.Debug(). - Int("code", resp.StatusCode). - Msg("Health got a good state") - - return nil - }, - } -} diff --git a/thumbnails/pkg/command/version.go b/thumbnails/pkg/command/version.go deleted file mode 100644 index b909db37d..000000000 --- a/thumbnails/pkg/command/version.go +++ /dev/null @@ -1,50 +0,0 @@ -package command - -import ( - "fmt" - "os" - - "github.com/owncloud/ocis/ocis-pkg/registry" - "github.com/owncloud/ocis/ocis-pkg/version" - - tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/thumbnails/pkg/config" - "github.com/urfave/cli/v2" -) - -// Version prints the service versions of all running instances. -func Version(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "version", - Usage: "print the version of this binary and the running extension instances", - Category: "info", - Action: func(c *cli.Context) error { - fmt.Println("Version: " + version.String) - fmt.Printf("Compiled: %s\n", version.Compiled()) - fmt.Println("") - - reg := registry.GetRegistry() - services, err := reg.GetService(cfg.GRPC.Namespace + "." + cfg.Service.Name) - if err != nil { - fmt.Println(fmt.Errorf("could not get %s services from the registry: %v", cfg.Service.Name, err)) - return err - } - - if len(services) == 0 { - fmt.Println("No running " + cfg.Service.Name + " service found.") - return nil - } - - table := tw.NewWriter(os.Stdout) - table.SetHeader([]string{"Version", "Address", "Id"}) - table.SetAutoFormatHeaders(false) - for _, s := range services { - for _, n := range s.Nodes { - table.Append([]string{s.Version, n.Address, n.Id}) - } - } - table.Render() - return nil - }, - } -} diff --git a/thumbnails/pkg/logging/logging.go b/thumbnails/pkg/logging/logging.go deleted file mode 100644 index 41d558326..000000000 --- a/thumbnails/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/thumbnails/pkg/config" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/thumbnails/pkg/server/debug/server.go b/thumbnails/pkg/server/debug/server.go deleted file mode 100644 index dd7b40a1f..000000000 --- a/thumbnails/pkg/server/debug/server.go +++ /dev/null @@ -1,59 +0,0 @@ -package debug - -import ( - "io" - "net/http" - - "github.com/owncloud/ocis/ocis-pkg/service/debug" - "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/thumbnails/pkg/config" -) - -// Server initializes the debug service and server. -func Server(opts ...Option) (*http.Server, error) { - options := newOptions(opts...) - - return debug.NewService( - debug.Logger(options.Logger), - debug.Name(options.Config.Service.Name), - debug.Version(version.String), - debug.Address(options.Config.Debug.Addr), - debug.Token(options.Config.Debug.Token), - debug.Pprof(options.Config.Debug.Pprof), - debug.Zpages(options.Config.Debug.Zpages), - debug.Health(health(options.Config)), - debug.Ready(ready(options.Config)), - ), nil -} - -// health implements the health check. -func health(cfg *config.Config) func(http.ResponseWriter, *http.Request) { - return func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/plain") - w.WriteHeader(http.StatusOK) - - // TODO: check if services are up and running - - _, err := io.WriteString(w, http.StatusText(http.StatusOK)) - // io.WriteString should not fail but if it does we want to know. - if err != nil { - panic(err) - } - } -} - -// ready implements the ready check. -func ready(cfg *config.Config) func(http.ResponseWriter, *http.Request) { - return func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/plain") - w.WriteHeader(http.StatusOK) - - // TODO: check if services are up and running - - _, err := io.WriteString(w, http.StatusText(http.StatusOK)) - // io.WriteString should not fail but if it does we want to know. - if err != nil { - panic(err) - } - } -} diff --git a/web/cmd/web/main.go b/web/cmd/web/main.go deleted file mode 100644 index f46816b8c..000000000 --- a/web/cmd/web/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/web/pkg/command" - "github.com/owncloud/ocis/web/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/web/pkg/command/health.go b/web/pkg/command/health.go deleted file mode 100644 index 38713676a..000000000 --- a/web/pkg/command/health.go +++ /dev/null @@ -1,53 +0,0 @@ -package command - -import ( - "fmt" - "net/http" - - "github.com/owncloud/ocis/web/pkg/config" - "github.com/owncloud/ocis/web/pkg/config/parser" - "github.com/owncloud/ocis/web/pkg/logging" - "github.com/urfave/cli/v2" -) - -// Health is the entrypoint for the health command. -func Health(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "health", - Usage: "check health status", - Category: "info", - Before: func(c *cli.Context) error { - return parser.ParseConfig(cfg) - }, - Action: func(c *cli.Context) error { - logger := logging.Configure(cfg.Service.Name, cfg.Log) - - resp, err := http.Get( - fmt.Sprintf( - "http://%s/healthz", - cfg.Debug.Addr, - ), - ) - - if err != nil { - logger.Fatal(). - Err(err). - Msg("Failed to request health check") - } - - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - logger.Fatal(). - Int("code", resp.StatusCode). - Msg("Health seems to be in bad state") - } - - logger.Debug(). - Int("code", resp.StatusCode). - Msg("Health got a good state") - - return nil - }, - } -} diff --git a/web/pkg/command/version.go b/web/pkg/command/version.go deleted file mode 100644 index 783dd284e..000000000 --- a/web/pkg/command/version.go +++ /dev/null @@ -1,50 +0,0 @@ -package command - -import ( - "fmt" - "os" - - "github.com/owncloud/ocis/ocis-pkg/registry" - "github.com/owncloud/ocis/ocis-pkg/version" - - tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/web/pkg/config" - "github.com/urfave/cli/v2" -) - -// Version prints the service versions of all running instances. -func Version(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "version", - Usage: "print the version of this binary and the running extension instances", - Category: "info", - Action: func(c *cli.Context) error { - fmt.Println("Version: " + version.String) - fmt.Printf("Compiled: %s\n", version.Compiled()) - fmt.Println("") - - reg := registry.GetRegistry() - services, err := reg.GetService(cfg.HTTP.Namespace + "." + cfg.Service.Name) - if err != nil { - fmt.Println(fmt.Errorf("could not get %s services from the registry: %v", cfg.Service.Name, err)) - return err - } - - if len(services) == 0 { - fmt.Println("No running " + cfg.Service.Name + " service found.") - return nil - } - - table := tw.NewWriter(os.Stdout) - table.SetHeader([]string{"Version", "Address", "Id"}) - table.SetAutoFormatHeaders(false) - for _, s := range services { - for _, n := range s.Nodes { - table.Append([]string{s.Version, n.Address, n.Id}) - } - } - table.Render() - return nil - }, - } -} diff --git a/web/pkg/config/parser/parse.go b/web/pkg/config/parser/parse.go deleted file mode 100644 index 2f8fe31d0..000000000 --- a/web/pkg/config/parser/parse.go +++ /dev/null @@ -1,33 +0,0 @@ -package parser - -import ( - "errors" - - ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/web/pkg/config" - "github.com/owncloud/ocis/web/pkg/config/defaults" - - "github.com/owncloud/ocis/ocis-pkg/config/envdecode" -) - -// ParseConfig loads accounts configuration from known paths. -func ParseConfig(cfg *config.Config) error { - _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) - if err != nil { - return err - } - - defaults.EnsureDefaults(cfg) - - // load all env variables relevant to the config in the current context. - if err := envdecode.Decode(cfg); err != nil { - // no environment variable set for this config is an expected "error" - if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { - return err - } - } - - defaults.Sanitize(cfg) - - return nil -} diff --git a/web/pkg/logging/logging.go b/web/pkg/logging/logging.go deleted file mode 100644 index 57616a43b..000000000 --- a/web/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/web/pkg/config" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/web/pkg/server/debug/option.go b/web/pkg/server/debug/option.go deleted file mode 100644 index e16759e76..000000000 --- a/web/pkg/server/debug/option.go +++ /dev/null @@ -1,50 +0,0 @@ -package debug - -import ( - "context" - - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/web/pkg/config" -) - -// Option defines a single option function. -type Option func(o *Options) - -// Options defines the available options for this package. -type Options struct { - Logger log.Logger - Context context.Context - Config *config.Config -} - -// newOptions initializes the available default options. -func newOptions(opts ...Option) Options { - opt := Options{} - - for _, o := range opts { - o(&opt) - } - - return opt -} - -// Logger provides a function to set the logger option. -func Logger(val log.Logger) Option { - return func(o *Options) { - o.Logger = val - } -} - -// Context provides a function to set the context option. -func Context(val context.Context) Option { - return func(o *Options) { - o.Context = val - } -} - -// Config provides a function to set the config option. -func Config(val *config.Config) Option { - return func(o *Options) { - o.Config = val - } -} diff --git a/web/pkg/server/debug/server.go b/web/pkg/server/debug/server.go deleted file mode 100644 index d4d7e302e..000000000 --- a/web/pkg/server/debug/server.go +++ /dev/null @@ -1,59 +0,0 @@ -package debug - -import ( - "io" - "net/http" - - "github.com/owncloud/ocis/ocis-pkg/service/debug" - "github.com/owncloud/ocis/ocis-pkg/version" - "github.com/owncloud/ocis/web/pkg/config" -) - -// Server initializes the debug service and server. -func Server(opts ...Option) (*http.Server, error) { - options := newOptions(opts...) - - return debug.NewService( - debug.Logger(options.Logger), - debug.Name(options.Config.Service.Name), - debug.Version(version.String), - debug.Address(options.Config.Debug.Addr), - debug.Token(options.Config.Debug.Token), - debug.Pprof(options.Config.Debug.Pprof), - debug.Zpages(options.Config.Debug.Zpages), - debug.Health(health(options.Config)), - debug.Ready(ready(options.Config)), - ), nil -} - -// health implements the health check. -func health(cfg *config.Config) func(http.ResponseWriter, *http.Request) { - return func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/plain") - w.WriteHeader(http.StatusOK) - - // TODO: check if services are up and running - - _, err := io.WriteString(w, http.StatusText(http.StatusOK)) - // io.WriteString should not fail but if it does we want to know. - if err != nil { - panic(err) - } - } -} - -// ready implements the ready check. -func ready(cfg *config.Config) func(http.ResponseWriter, *http.Request) { - return func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/plain") - w.WriteHeader(http.StatusOK) - - // TODO: check if services are up and running - - _, err := io.WriteString(w, http.StatusText(http.StatusOK)) - // io.WriteString should not fail but if it does we want to know. - if err != nil { - panic(err) - } - } -} diff --git a/webdav/cmd/webdav/main.go b/webdav/cmd/webdav/main.go deleted file mode 100644 index 88b1185d7..000000000 --- a/webdav/cmd/webdav/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "os" - - "github.com/owncloud/ocis/webdav/pkg/command" - "github.com/owncloud/ocis/webdav/pkg/config/defaults" -) - -func main() { - if err := command.Execute(defaults.DefaultConfig()); err != nil { - os.Exit(1) - } -} diff --git a/webdav/pkg/command/health.go b/webdav/pkg/command/health.go deleted file mode 100644 index 94741b29a..000000000 --- a/webdav/pkg/command/health.go +++ /dev/null @@ -1,53 +0,0 @@ -package command - -import ( - "fmt" - "net/http" - - "github.com/owncloud/ocis/webdav/pkg/config" - "github.com/owncloud/ocis/webdav/pkg/config/parser" - "github.com/owncloud/ocis/webdav/pkg/logging" - "github.com/urfave/cli/v2" -) - -// Health is the entrypoint for the health command. -func Health(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "health", - Usage: "check health status", - Category: "info", - Before: func(c *cli.Context) error { - return parser.ParseConfig(cfg) - }, - Action: func(c *cli.Context) error { - logger := logging.Configure(cfg.Service.Name, cfg.Log) - - resp, err := http.Get( - fmt.Sprintf( - "http://%s/healthz", - cfg.Debug.Addr, - ), - ) - - if err != nil { - logger.Fatal(). - Err(err). - Msg("Failed to request health check") - } - - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - logger.Fatal(). - Int("code", resp.StatusCode). - Msg("Health seems to be in bad state") - } - - logger.Debug(). - Int("code", resp.StatusCode). - Msg("Health got a good state") - - return nil - }, - } -} diff --git a/webdav/pkg/command/version.go b/webdav/pkg/command/version.go deleted file mode 100644 index 71b5b0d45..000000000 --- a/webdav/pkg/command/version.go +++ /dev/null @@ -1,50 +0,0 @@ -package command - -import ( - "fmt" - "os" - - "github.com/owncloud/ocis/ocis-pkg/registry" - "github.com/owncloud/ocis/ocis-pkg/version" - - tw "github.com/olekukonko/tablewriter" - "github.com/owncloud/ocis/webdav/pkg/config" - "github.com/urfave/cli/v2" -) - -// Version prints the service versions of all running instances. -func Version(cfg *config.Config) *cli.Command { - return &cli.Command{ - Name: "version", - Usage: "print the version of this binary and the running extension instances", - Category: "info", - Action: func(c *cli.Context) error { - fmt.Println("Version: " + version.String) - fmt.Printf("Compiled: %s\n", version.Compiled()) - fmt.Println("") - - reg := registry.GetRegistry() - services, err := reg.GetService(cfg.HTTP.Namespace + "." + cfg.Service.Name) - if err != nil { - fmt.Println(fmt.Errorf("could not get %s services from the registry: %v", cfg.Service.Name, err)) - return err - } - - if len(services) == 0 { - fmt.Println("No running " + cfg.Service.Name + " service found.") - return nil - } - - table := tw.NewWriter(os.Stdout) - table.SetHeader([]string{"Version", "Address", "Id"}) - table.SetAutoFormatHeaders(false) - for _, s := range services { - for _, n := range s.Nodes { - table.Append([]string{s.Version, n.Address, n.Id}) - } - } - table.Render() - return nil - }, - } -} diff --git a/webdav/pkg/config/parser/parse.go b/webdav/pkg/config/parser/parse.go deleted file mode 100644 index 629f85220..000000000 --- a/webdav/pkg/config/parser/parse.go +++ /dev/null @@ -1,33 +0,0 @@ -package parser - -import ( - "errors" - - ociscfg "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/webdav/pkg/config" - "github.com/owncloud/ocis/webdav/pkg/config/defaults" - - "github.com/owncloud/ocis/ocis-pkg/config/envdecode" -) - -// ParseConfig loads accounts configuration from known paths. -func ParseConfig(cfg *config.Config) error { - _, err := ociscfg.BindSourcesToStructs(cfg.Service.Name, cfg) - if err != nil { - return err - } - - defaults.EnsureDefaults(cfg) - - // load all env variables relevant to the config in the current context. - if err := envdecode.Decode(cfg); err != nil { - // no environment variable set for this config is an expected "error" - if !errors.Is(err, envdecode.ErrNoTargetFieldsAreSet) { - return err - } - } - - defaults.Sanitize(cfg) - - return nil -} diff --git a/webdav/pkg/logging/logging.go b/webdav/pkg/logging/logging.go deleted file mode 100644 index ff82b1f6b..000000000 --- a/webdav/pkg/logging/logging.go +++ /dev/null @@ -1,17 +0,0 @@ -package logging - -import ( - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/webdav/pkg/config" -) - -// LoggerFromConfig initializes a service-specific logger instance. -func Configure(name string, cfg *config.Log) log.Logger { - return log.NewLogger( - log.Name(name), - log.Level(cfg.Level), - log.Pretty(cfg.Pretty), - log.Color(cfg.Color), - log.File(cfg.File), - ) -} diff --git a/webdav/pkg/server/debug/option.go b/webdav/pkg/server/debug/option.go deleted file mode 100644 index a85cd18c9..000000000 --- a/webdav/pkg/server/debug/option.go +++ /dev/null @@ -1,50 +0,0 @@ -package debug - -import ( - "context" - - "github.com/owncloud/ocis/ocis-pkg/log" - "github.com/owncloud/ocis/webdav/pkg/config" -) - -// Option defines a single option function. -type Option func(o *Options) - -// Options defines the available options for this package. -type Options struct { - Logger log.Logger - Context context.Context - Config *config.Config -} - -// newOptions initializes the available default options. -func newOptions(opts ...Option) Options { - opt := Options{} - - for _, o := range opts { - o(&opt) - } - - return opt -} - -// Logger provides a function to set the logger option. -func Logger(val log.Logger) Option { - return func(o *Options) { - o.Logger = val - } -} - -// Context provides a function to set the context option. -func Context(val context.Context) Option { - return func(o *Options) { - o.Context = val - } -} - -// Config provides a function to set the config option. -func Config(val *config.Config) Option { - return func(o *Options) { - o.Config = val - } -} diff --git a/webdav/pkg/tracing/tracing.go b/webdav/pkg/tracing/tracing.go deleted file mode 100644 index 8a2c53929..000000000 --- a/webdav/pkg/tracing/tracing.go +++ /dev/null @@ -1,23 +0,0 @@ -package tracing - -import ( - pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - "github.com/owncloud/ocis/webdav/pkg/config" - "go.opentelemetry.io/otel/trace" -) - -var ( - // TraceProvider is the global trace provider for the proxy service. - TraceProvider = trace.NewNoopTracerProvider() -) - -func Configure(cfg *config.Config) error { - var err error - if cfg.Tracing.Enabled { - if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Endpoint, cfg.Tracing.Collector, cfg.Service.Name, cfg.Tracing.Type); err != nil { - return err - } - } - - return nil -}