From 6702be7f9045a382d40691a9bcd04f572203e9ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 17 Dec 2019 17:04:18 +0100 Subject: [PATCH 001/346] wip MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .codacy.yml | 8 + .dockerignore | 2 + .drone.star | 683 ++++++++++++++ .editorconfig | 35 + .gitignore | 7 + .vscode/launch.json | 18 + CHANGELOG.md | 17 + LICENSE | 202 ++++ Makefile | 139 +++ README.md | 48 + changelog/CHANGELOG.tmpl | 28 + changelog/README.md | 6 + changelog/TEMPLATE | 11 + changelog/unreleased/.keep | 0 changelog/unreleased/initial-release.md | 5 + cmd/ocis-reva/main.go | 13 + config/example.json | 24 + config/example.yml | 24 + docker/Dockerfile.linux.amd64 | 19 + docker/Dockerfile.linux.arm | 19 + docker/Dockerfile.linux.arm64 | 19 + docker/manifest.tmpl | 22 + docs/.gitignore | 1 + docs/archetypes/default.md | 6 + docs/config.toml | 18 + docs/content/about.md | 8 + docs/content/building.md | 33 + docs/content/getting-started.md | 274 ++++++ docs/content/license.md | 8 + docs/layouts/_default/list.html | 0 docs/layouts/_default/single.html | 0 docs/layouts/index.html | 57 ++ docs/layouts/partials/style.html | 2 + docs/static/styles.css | 338 +++++++ docs/static/syntax.css | 59 ++ go.mod | 26 + go.sum | 1131 +++++++++++++++++++++++ pkg/assets/assets.go | 60 ++ pkg/assets/dummy.go | 9 + pkg/assets/embed.go | 144 +++ pkg/assets/embed.yml | 17 + pkg/assets/option.go | 40 + pkg/command/authprovider.go | 175 ++++ pkg/command/health.go | 49 + pkg/command/legacy.go | 453 +++++++++ pkg/command/root.go | 105 +++ pkg/command/server.go | 312 +++++++ pkg/config/config.go | 73 ++ pkg/flagset/flagset.go | 193 ++++ pkg/server/debug/option.go | 50 + pkg/server/debug/server.go | 51 + pkg/version/version.go | 19 + reflex.conf | 5 + 53 files changed, 5065 insertions(+) create mode 100644 .codacy.yml create mode 100644 .dockerignore create mode 100644 .drone.star create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .vscode/launch.json create mode 100644 CHANGELOG.md create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 changelog/CHANGELOG.tmpl create mode 100644 changelog/README.md create mode 100644 changelog/TEMPLATE create mode 100644 changelog/unreleased/.keep create mode 100644 changelog/unreleased/initial-release.md create mode 100644 cmd/ocis-reva/main.go create mode 100644 config/example.json create mode 100644 config/example.yml create mode 100644 docker/Dockerfile.linux.amd64 create mode 100644 docker/Dockerfile.linux.arm create mode 100644 docker/Dockerfile.linux.arm64 create mode 100644 docker/manifest.tmpl create mode 100644 docs/.gitignore create mode 100644 docs/archetypes/default.md create mode 100644 docs/config.toml create mode 100644 docs/content/about.md create mode 100644 docs/content/building.md create mode 100644 docs/content/getting-started.md create mode 100644 docs/content/license.md create mode 100644 docs/layouts/_default/list.html create mode 100644 docs/layouts/_default/single.html create mode 100644 docs/layouts/index.html create mode 100644 docs/layouts/partials/style.html create mode 100644 docs/static/styles.css create mode 100644 docs/static/syntax.css create mode 100644 go.mod create mode 100644 go.sum create mode 100644 pkg/assets/assets.go create mode 100644 pkg/assets/dummy.go create mode 100644 pkg/assets/embed.go create mode 100644 pkg/assets/embed.yml create mode 100644 pkg/assets/option.go create mode 100644 pkg/command/authprovider.go create mode 100644 pkg/command/health.go create mode 100644 pkg/command/legacy.go create mode 100644 pkg/command/root.go create mode 100644 pkg/command/server.go create mode 100644 pkg/config/config.go create mode 100644 pkg/flagset/flagset.go create mode 100644 pkg/server/debug/option.go create mode 100644 pkg/server/debug/server.go create mode 100644 pkg/version/version.go create mode 100644 reflex.conf diff --git a/.codacy.yml b/.codacy.yml new file mode 100644 index 0000000000..855b4f298b --- /dev/null +++ b/.codacy.yml @@ -0,0 +1,8 @@ +--- +exclude_paths: + - CHANGELOG.md + - changelog/** + - docs/** + - pkg/proto/** + +... diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..4ec85b5e4f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +* +!bin/ diff --git a/.drone.star b/.drone.star new file mode 100644 index 0000000000..135ba8dd12 --- /dev/null +++ b/.drone.star @@ -0,0 +1,683 @@ +def main(ctx): + before = [ + testing(ctx), + ] + + stages = [ + docker(ctx, 'amd64'), + docker(ctx, 'arm64'), + docker(ctx, 'arm'), + binary(ctx, 'linux'), + binary(ctx, 'darwin'), + binary(ctx, 'windows'), + ] + + after = [ + manifest(ctx), + changelog(ctx), + readme(ctx), + badges(ctx), + website(ctx), + ] + + return before + stages + after + +def testing(ctx): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': 'testing', + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'steps': [ + { + 'name': 'frontend', + 'image': 'webhippie/nodejs:latest', + 'pull': 'always', + 'commands': [ + 'yarn install --frozen-lockfile', + 'yarn lint', + 'yarn test', + 'yarn build', + ], + }, + { + 'name': 'generate', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make generate', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'vet', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make vet', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'staticcheck', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make staticcheck', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'lint', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make lint', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'build', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make build', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'test', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make test', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'codacy', + 'image': 'plugins/codacy:1', + 'pull': 'always', + 'settings': { + 'token': { + 'from_secret': 'codacy_token', + }, + }, + }, + ], + 'volumes': [ + { + 'name': 'gopath', + 'temp': {}, + }, + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + 'refs/pull/**', + ], + }, + } + +def docker(ctx, arch): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': arch, + 'platform': { + 'os': 'linux', + 'arch': arch, + }, + 'steps': [ + { + 'name': 'frontend', + 'image': 'webhippie/nodejs:latest', + 'pull': 'always', + 'commands': [ + 'yarn install --frozen-lockfile', + 'yarn build', + ], + }, + { + 'name': 'generate', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make generate', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'build', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make build', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'dryrun', + 'image': 'plugins/docker:18.09', + 'pull': 'always', + 'settings': { + 'dry_run': True, + 'tags': 'linux-%s' % (arch), + 'dockerfile': 'docker/Dockerfile.linux.%s' % (arch), + 'repo': ctx.repo.slug, + }, + 'when': { + 'ref': { + 'include': [ + 'refs/pull/**', + ], + }, + }, + }, + { + 'name': 'docker', + 'image': 'plugins/docker:18.09', + 'pull': 'always', + 'settings': { + 'username': { + 'from_secret': 'docker_username', + }, + 'password': { + 'from_secret': 'docker_password', + }, + 'auto_tag': True, + 'auto_tag_suffix': 'linux-%s' % (arch), + 'dockerfile': 'docker/Dockerfile.linux.%s' % (arch), + 'repo': ctx.repo.slug, + }, + 'when': { + 'ref': { + 'exclude': [ + 'refs/pull/**', + ], + }, + }, + }, + ], + 'volumes': [ + { + 'name': 'gopath', + 'temp': {}, + }, + ], + 'depends_on': [ + 'testing', + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + 'refs/pull/**', + ], + }, + } + +def binary(ctx, name): + if ctx.build.event == "tag": + settings = { + 'endpoint': { + 'from_secret': 's3_endpoint', + }, + 'access_key': { + 'from_secret': 'aws_access_key_id', + }, + 'secret_key': { + 'from_secret': 'aws_secret_access_key', + }, + 'bucket': { + 'from_secret': 's3_bucket', + }, + 'path_style': True, + 'strip_prefix': 'dist/release/', + 'source': 'dist/release/*', + 'target': '/ocis/%s/%s' % (ctx.repo.name.replace("ocis-", ""), ctx.build.ref.replace("refs/tags/v", "")), + } + else: + settings = { + 'endpoint': { + 'from_secret': 's3_endpoint', + }, + 'access_key': { + 'from_secret': 'aws_access_key_id', + }, + 'secret_key': { + 'from_secret': 'aws_secret_access_key', + }, + 'bucket': { + 'from_secret': 's3_bucket', + }, + 'path_style': True, + 'strip_prefix': 'dist/release/', + 'source': 'dist/release/*', + 'target': '/ocis/%s/testing' % (ctx.repo.name.replace("ocis-", "")), + } + + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': name, + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'steps': [ + { + 'name': 'frontend', + 'image': 'webhippie/nodejs:latest', + 'pull': 'always', + 'commands': [ + 'yarn install --frozen-lockfile', + 'yarn build', + ], + }, + { + 'name': 'generate', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make generate', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'build', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make release-%s' % (name), + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'finish', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make release-finish', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'upload', + 'image': 'plugins/s3:1', + 'pull': 'always', + 'settings': settings, + 'when': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + ], + }, + }, + { + 'name': 'changelog', + 'image': 'toolhippie/calens:latest', + 'pull': 'always', + 'commands': [ + 'calens --version %s -o dist/CHANGELOG.md' % ctx.build.ref.replace("refs/tags/v", "").split("-")[0], + ], + 'when': { + 'ref': [ + 'refs/tags/**', + ], + }, + }, + { + 'name': 'release', + 'image': 'plugins/github-release:1', + 'pull': 'always', + 'settings': { + 'api_key': { + 'from_secret': 'github_token', + }, + 'files': [ + 'dist/release/*', + ], + 'title': ctx.build.ref.replace("refs/tags/", ""), + 'note': 'dist/CHANGELOG.md', + 'overwrite': True, + }, + 'when': { + 'ref': [ + 'refs/tags/**', + ], + }, + }, + ], + 'volumes': [ + { + 'name': 'gopath', + 'temp': {}, + }, + ], + 'depends_on': [ + 'testing', + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + 'refs/pull/**', + ], + }, + } + +def manifest(ctx): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': 'manifest', + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'steps': [ + { + 'name': 'execute', + 'image': 'plugins/manifest:1', + 'pull': 'always', + 'settings': { + 'username': { + 'from_secret': 'docker_username', + }, + 'password': { + 'from_secret': 'docker_password', + }, + 'spec': 'docker/manifest.tmpl', + 'auto_tag': True, + 'ignore_missing': True, + }, + }, + ], + 'depends_on': [ + 'amd64', + 'arm64', + 'arm', + 'linux', + 'darwin', + 'windows', + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + ], + }, + } + +def changelog(ctx): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': 'changelog', + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'clone': { + 'disable': True, + }, + 'steps': [ + { + 'name': 'clone', + 'image': 'plugins/git-action:1', + 'pull': 'always', + 'settings': { + 'actions': [ + 'clone', + ], + 'remote': 'https://github.com/%s' % (ctx.repo.slug), + 'branch': ctx.build.branch if ctx.build.event == 'pull_request' else 'master', + 'path': '/drone/src', + 'netrc_machine': 'github.com', + 'netrc_username': { + 'from_secret': 'github_username', + }, + 'netrc_password': { + 'from_secret': 'github_token', + }, + }, + }, + { + 'name': 'generate', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make changelog', + ], + }, + { + 'name': 'output', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'cat CHANGELOG.md', + ], + }, + { + 'name': 'publish', + 'image': 'plugins/git-action:1', + 'pull': 'always', + 'settings': { + 'actions': [ + 'commit', + 'push', + ], + 'message': 'Automated changelog update [skip ci]', + 'branch': 'master', + 'author_email': 'devops@owncloud.com', + 'author_name': 'ownClouders', + 'netrc_machine': 'github.com', + 'netrc_username': { + 'from_secret': 'github_username', + }, + 'netrc_password': { + 'from_secret': 'github_token', + }, + }, + 'when': { + 'ref': { + 'exclude': [ + 'refs/pull/**', + ], + }, + }, + }, + ], + 'depends_on': [ + 'manifest', + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + ], + }, + } + +def readme(ctx): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': 'readme', + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'steps': [ + { + 'name': 'execute', + 'image': 'sheogorath/readme-to-dockerhub:latest', + 'pull': 'always', + 'environment': { + 'DOCKERHUB_USERNAME': { + 'from_secret': 'docker_username', + }, + 'DOCKERHUB_PASSWORD': { + 'from_secret': 'docker_password', + }, + 'DOCKERHUB_REPO_PREFIX': ctx.repo.namespace, + 'DOCKERHUB_REPO_NAME': ctx.repo.name, + 'SHORT_DESCRIPTION': 'Docker images for %s' % (ctx.repo.name), + 'README_PATH': 'README.md', + }, + }, + ], + 'depends_on': [ + 'changelog', + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + ], + }, + } + +def badges(ctx): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': 'badges', + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'steps': [ + { + 'name': 'execute', + 'image': 'plugins/webhook:1', + 'pull': 'always', + 'settings': { + 'urls': { + 'from_secret': 'microbadger_url', + }, + }, + }, + ], + 'depends_on': [ + 'readme', + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + ], + }, + } + +def website(ctx): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': 'website', + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'steps': [ + { + 'name': 'generate', + 'image': 'webhippie/hugo:latest', + 'pull': 'always', + 'commands': [ + 'make docs', + ], + }, + { + 'name': 'publish', + 'image': 'plugins/gh-pages:1', + 'pull': 'always', + 'settings': { + 'username': { + 'from_secret': 'github_username', + }, + 'password': { + 'from_secret': 'github_token', + }, + 'pages_directory': 'docs/public/', + 'temporary_base': 'tmp/', + }, + 'when': { + 'ref': { + 'exclude': [ + 'refs/pull/**', + ], + }, + }, + }, + ], + 'depends_on': [ + 'badges', + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/pull/**', + ], + }, + } diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..77129cd393 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,35 @@ +# http://editorconfig.org + +root = true + +[*] +charset = utf-8 +insert_final_newline = true +trim_trailing_whitespace = true + +[Makefile] +indent_style = tab +indent_size = 4 + +[*.go] +indent_style = tab +indent_size = 4 + +[*.starlark] +indent_style = space +indent_size = 2 + +[*.{yml,json}] +indent_style = space +indent_size = 2 + +[*.{js,vue}] +indent_style = space +indent_size = 2 + +[*.{css,less}] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..94ba5a12be --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +coverage.out + +/bin +/dist + +/node_modules +/assets diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000000..05fb2687c6 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,18 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Launch", + "type": "go", + "request": "launch", + "mode": "auto", + "program": "${workspaceFolder}/cmd/ocis-reva", + "env": {}, + "cwd": "${workspaceFolder}", + "args": ["legacy"] + } + ] +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..0ef6ed2c24 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,17 @@ +# Changelog for unreleased + +The following sections list the changes for unreleased. + +## Summary + + * Chg #1: Initial release of basic version + +## Details + + * Change #1: Initial release of basic version + + Just prepared an initial basic version to start a reva server and start integrating with the go-micro base dextension framework of ownCloud Infinite Scale. + + https://github.com/owncloud/ocis-reva/issues/1 + + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000..7ebb8308bf --- /dev/null +++ b/Makefile @@ -0,0 +1,139 @@ +SHELL := bash +NAME := ocis-reva +IMPORT := github.com/owncloud/$(NAME) +BIN := bin +DIST := dist + +ifeq ($(OS), Windows_NT) + EXECUTABLE := $(NAME).exe + UNAME := Windows +else + EXECUTABLE := $(NAME) + UNAME := $(shell uname -s) +endif + +ifeq ($(UNAME), Darwin) + GOBUILD ?= go build -i +else + GOBUILD ?= go build +endif + +PACKAGES ?= $(shell go list ./...) +SOURCES ?= $(shell find . -name "*.go" -type f -not -path "./node_modules/*") +GENERATE ?= $(IMPORT)/pkg/assets + +TAGS ?= + +ifndef OUTPUT + ifneq ($(DRONE_TAG),) + OUTPUT ?= $(subst v,,$(DRONE_TAG)) + else + OUTPUT ?= testing + endif +endif + +ifndef VERSION + ifneq ($(DRONE_TAG),) + VERSION ?= $(subst v,,$(DRONE_TAG)) + else + VERSION ?= $(shell git rev-parse --short HEAD) + endif +endif + +ifndef DATE + DATE := $(shell date -u '+%Y%m%d') +endif + +LDFLAGS += -s -w -X "$(IMPORT)/pkg/version.String=$(VERSION)" -X "$(IMPORT)/pkg/version.Date=$(DATE)" +GCFLAGS += all=-N -l + +.PHONY: all +all: build + +.PHONY: sync +sync: + go mod download + +.PHONY: clean +clean: + go clean -i ./... + rm -rf $(BIN) $(DIST) + +.PHONY: fmt +fmt: + gofmt -s -w $(SOURCES) + +.PHONY: vet +vet: + go vet $(PACKAGES) + +.PHONY: staticcheck +staticcheck: + go run honnef.co/go/tools/cmd/staticcheck -tags '$(TAGS)' $(PACKAGES) + +.PHONY: lint +lint: + for PKG in $(PACKAGES); do go run golang.org/x/lint/golint -set_exit_status $$PKG || exit 1; done; + +.PHONY: generate +generate: + go generate $(GENERATE) + +.PHONY: changelog +changelog: + go run github.com/restic/calens >| CHANGELOG.md + +.PHONY: test +test: + go run github.com/haya14busa/goverage -v -coverprofile coverage.out $(PACKAGES) + +.PHONY: install +install: $(SOURCES) + go install -v -tags '$(TAGS)' -ldflags '$(LDFLAGS)' ./cmd/$(NAME) + +.PHONY: build +build: $(BIN)/$(EXECUTABLE) $(BIN)/$(EXECUTABLE)-debug + +$(BIN)/$(EXECUTABLE): $(SOURCES) + $(GOBUILD) -v -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $@ ./cmd/$(NAME) + +$(BIN)/$(EXECUTABLE)-debug: $(SOURCES) + $(GOBUILD) -v -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -gcflags '$(GCFLAGS)' -o $@ ./cmd/$(NAME) + +.PHONY: release +release: release-dirs release-linux release-windows release-darwin release-copy release-check + +.PHONY: release-dirs +release-dirs: + mkdir -p $(DIST)/binaries $(DIST)/release + +.PHONY: release-linux +release-linux: release-dirs + go run github.com/mitchellh/gox -tags 'netgo $(TAGS)' -ldflags '-extldflags "-static" $(LDFLAGS)' -os 'linux' -arch 'amd64 386 arm64 arm' -output '$(DIST)/binaries/$(EXECUTABLE)-$(OUTPUT)-{{.OS}}-{{.Arch}}' ./cmd/$(NAME) + +.PHONY: release-windows +release-windows: release-dirs + go run github.com/mitchellh/gox -tags 'netgo $(TAGS)' -ldflags '-extldflags "-static" $(LDFLAGS)' -os 'windows' -arch 'amd64' -output '$(DIST)/binaries/$(EXECUTABLE)-$(OUTPUT)-{{.OS}}-{{.Arch}}' ./cmd/$(NAME) + +.PHONY: release-darwin +release-darwin: release-dirs + go run github.com/mitchellh/gox -tags 'netgo $(TAGS)' -ldflags '$(LDFLAGS)' -os 'darwin' -arch 'amd64' -output '$(DIST)/binaries/$(EXECUTABLE)-$(OUTPUT)-{{.OS}}-{{.Arch}}' ./cmd/$(NAME) + +.PHONY: release-copy +release-copy: + $(foreach file,$(wildcard $(DIST)/binaries/$(EXECUTABLE)-*),cp $(file) $(DIST)/release/$(notdir $(file));) + +.PHONY: release-check +release-check: + cd $(DIST)/release; $(foreach file,$(wildcard $(DIST)/release/$(EXECUTABLE)-*),sha256sum $(notdir $(file)) > $(notdir $(file)).sha256;) + +.PHONY: release-finish +release-finish: release-copy release-check + +.PHONY: docs +docs: + cd docs; hugo + +.PHONY: watch +watch: + go run github.com/cespare/reflex -c reflex.conf diff --git a/README.md b/README.md new file mode 100644 index 0000000000..f6a6a7be13 --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# ownCloud Infinite Scale: Reva + +[![Build Status](https://cloud.drone.io/api/badges/owncloud/ocis-reva/status.svg)](https://cloud.drone.io/owncloud/ocis-reva) +[![Gitter chat](https://badges.gitter.im/cs3org/reva.svg)](https://gitter.im/cs3org/reva) +[![Codacy Badge](https://api.codacy.com/project/badge/Grade/6f1eaaa399294d959ef7b3b10deed41d)](https://www.codacy.com/manual/owncloud/ocis-reva?utm_source=github.com&utm_medium=referral&utm_content=owncloud/ocis-reva&utm_campaign=Badge_Grade) +[![Go Doc](https://godoc.org/github.com/owncloud/ocis-reva?status.svg)](http://godoc.org/github.com/owncloud/ocis-reva) +[![Go Report](http://goreportcard.com/badge/github.com/owncloud/ocis-reva)](http://goreportcard.com/report/github.com/owncloud/ocis-reva) +[![](https://images.microbadger.com/badges/image/owncloud/ocis-reva.svg)](http://microbadger.com/images/owncloud/ocis-reva "Get your own image badge on microbadger.com") + +**This project is under heavy development, it's not in a working state yet!** + +## Install + +You can download prebuilt binaries from the GitHub releases or from our [download mirrors](http://download.owncloud.com/ocis/reva/). For instructions how to install this on your platform you should take a look at our [documentation](https://owncloud.github.io/ocis-reva/) + +## Development + +Make sure you have a working Go environment, for further reference or a guide take a look at the [install instructions](http://golang.org/doc/install.html). This project requires Go >= v1.13. For the frontend it's also required to have [NodeJS](https://nodejs.org/en/download/package-manager/) and [Yarn](https://yarnpkg.com/lang/en/docs/install/) installed. + +```console +git clone https://github.com/owncloud/ocis-reva.git +cd ocis-reva + +yarn install +yarn build + +make generate build + +./bin/ocis-reva -h +``` + +## Security + +If you find a security issue please contact security@owncloud.com first. + +## Contributing + +Fork -> Patch -> Push -> Pull Request + +## License + +Apache-2.0 + +## Copyright + +```console +Copyright (c) 2019 ownCloud GmbH +``` diff --git a/changelog/CHANGELOG.tmpl b/changelog/CHANGELOG.tmpl new file mode 100644 index 0000000000..3fee894812 --- /dev/null +++ b/changelog/CHANGELOG.tmpl @@ -0,0 +1,28 @@ +{{- range $changes := . }}{{ with $changes -}} +# Changelog for {{ .Version }} + +The following sections list the changes for {{ .Version }}. + +## Summary +{{ range $entry := .Entries }}{{ with $entry }} + * {{ .TypeShort }} #{{ .PrimaryID }}: {{ .Title }} +{{- end }}{{ end }} + +## Details +{{ range $entry := .Entries }}{{ with $entry }} + * {{ .Type }} #{{ .PrimaryID }}: {{ .Title }} +{{ range $par := .Paragraphs }} + {{ wrap $par 80 3 }} +{{ end -}} +{{ range $url := .IssueURLs }} + {{ $url -}} +{{ end -}} +{{ range $url := .PRURLs }} + {{ $url -}} +{{ end -}} +{{ range $url := .OtherURLs }} + {{ $url -}} +{{ end }} +{{ end }}{{ end }} + +{{ end }}{{ end -}} diff --git a/changelog/README.md b/changelog/README.md new file mode 100644 index 0000000000..0ae5d5b3e2 --- /dev/null +++ b/changelog/README.md @@ -0,0 +1,6 @@ +# Changelog + +We are using [calens](https://github.com/restic/calens) to properly generate a +changelog before we are tagging a new release. To get an idea how this could +look like would be the +best reference. diff --git a/changelog/TEMPLATE b/changelog/TEMPLATE new file mode 100644 index 0000000000..1e00061fe0 --- /dev/null +++ b/changelog/TEMPLATE @@ -0,0 +1,11 @@ +Bugfix: Fix behavior for foobar (in present tense) + +We've fixed the behavior for foobar, a long-standing annoyance for users. The +text should be wrapped at 80 characters length. + +The text in the paragraphs is written in past tense. The last section is a list +of issue URLs, PR URLs and other URLs. The first issue ID (or the first PR ID, +in case there aren't any issue links) is used as the primary ID. + +https://github.com/owncloud/ocis-reva/issues/1234 +https://github.com/owncloud/ocis-reva/pull/55555 diff --git a/changelog/unreleased/.keep b/changelog/unreleased/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/changelog/unreleased/initial-release.md b/changelog/unreleased/initial-release.md new file mode 100644 index 0000000000..d45d4408a4 --- /dev/null +++ b/changelog/unreleased/initial-release.md @@ -0,0 +1,5 @@ +Change: Initial release of basic version + +Just prepared an initial basic version to start a reva server and start integrating with the go-micro base dextension framework of ownCloud Infinite Scale. + +https://github.com/owncloud/ocis-reva/issues/1 diff --git a/cmd/ocis-reva/main.go b/cmd/ocis-reva/main.go new file mode 100644 index 0000000000..fabad13dd1 --- /dev/null +++ b/cmd/ocis-reva/main.go @@ -0,0 +1,13 @@ +package main + +import ( + "os" + + "github.com/owncloud/ocis-reva/pkg/command" +) + +func main() { + if err := command.Execute(); err != nil { + os.Exit(1) + } +} diff --git a/config/example.json b/config/example.json new file mode 100644 index 0000000000..8076deb52c --- /dev/null +++ b/config/example.json @@ -0,0 +1,24 @@ +{ + "debug": { + "addr": "0.0.0.0:9109", + "token": "", + "pprof": false, + "zpages": false + }, + "http": { + "addr": "0.0.0.0:9105" + }, + "grpc": { + "addr": "0.0.0.0:9106" + }, + "tracing": { + "enabled": false, + "type": "jaeger", + "endpoint": "localhost:6831", + "collector": "http://localhost:14268/api/traces", + "service": "reva" + }, + "asset": { + "path": "" + } +} diff --git a/config/example.yml b/config/example.yml new file mode 100644 index 0000000000..41c533d41d --- /dev/null +++ b/config/example.yml @@ -0,0 +1,24 @@ +--- +debug: + addr: 0.0.0.0:9109 + token: + pprof: false + zpages: false + +http: + addr: 0.0.0.0:9105 + +grpc: + addr: 0.0.0.0:9106 + +tracing: + enabled: false + type: jaeger + endpoint: localhost:6831 + collector: http://localhost:14268/api/traces + service: reva + +asset: + path: + +... diff --git a/docker/Dockerfile.linux.amd64 b/docker/Dockerfile.linux.amd64 new file mode 100644 index 0000000000..2fe94c9aac --- /dev/null +++ b/docker/Dockerfile.linux.amd64 @@ -0,0 +1,19 @@ +FROM amd64/alpine:edge + +RUN apk update && \ + apk upgrade && \ + apk add ca-certificates mailcap && \ + rm -rf /var/cache/apk/* && \ + echo 'hosts: files dns' >| /etc/nsswitch.conf + +LABEL maintainer="ownCloud GmbH " \ + org.label-schema.name="oCIS Reva" \ + org.label-schema.vendor="ownCloud GmbH" \ + org.label-schema.schema-version="1.0" + +EXPOSE 9135 9136 + +ENTRYPOINT ["/usr/bin/ocis-reva"] +CMD ["server"] + +COPY bin/ocis-reva /usr/bin/ocis-reva diff --git a/docker/Dockerfile.linux.arm b/docker/Dockerfile.linux.arm new file mode 100644 index 0000000000..9399ae7838 --- /dev/null +++ b/docker/Dockerfile.linux.arm @@ -0,0 +1,19 @@ +FROM arm32v6/alpine:edge + +RUN apk update && \ + apk upgrade && \ + apk add ca-certificates mailcap && \ + rm -rf /var/cache/apk/* && \ + echo 'hosts: files dns' >| /etc/nsswitch.conf + +LABEL maintainer="ownCloud GmbH " \ + org.label-schema.name="oCIS Reva" \ + org.label-schema.vendor="ownCloud GmbH" \ + org.label-schema.schema-version="1.0" + +EXPOSE 9135 9136 + +ENTRYPOINT ["/usr/bin/ocis-reva"] +CMD ["server"] + +COPY bin/ocis-reva /usr/bin/ocis-reva diff --git a/docker/Dockerfile.linux.arm64 b/docker/Dockerfile.linux.arm64 new file mode 100644 index 0000000000..86e53c3f36 --- /dev/null +++ b/docker/Dockerfile.linux.arm64 @@ -0,0 +1,19 @@ +FROM arm64v8/alpine:edge + +RUN apk update && \ + apk upgrade && \ + apk add ca-certificates mailcap && \ + rm -rf /var/cache/apk/* && \ + echo 'hosts: files dns' >| /etc/nsswitch.conf + +LABEL maintainer="ownCloud GmbH " \ + org.label-schema.name="oCIS Reva" \ + org.label-schema.vendor="ownCloud GmbH" \ + org.label-schema.schema-version="1.0" + +EXPOSE 9135 9136 + +ENTRYPOINT ["/usr/bin/ocis-reva"] +CMD ["server"] + +COPY bin/ocis-reva /usr/bin/ocis-reva diff --git a/docker/manifest.tmpl b/docker/manifest.tmpl new file mode 100644 index 0000000000..ac5ae8e046 --- /dev/null +++ b/docker/manifest.tmpl @@ -0,0 +1,22 @@ +image: owncloud/ocis-reva:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} +{{#if build.tags}} +tags: +{{#each build.tags}} + - {{this}} +{{/each}} +{{/if}} +manifests: + - image: owncloud/ocis-reva:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64 + platform: + architecture: amd64 + os: linux + - image: owncloud/ocis-reva:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64 + platform: + architecture: arm64 + variant: v8 + os: linux + - image: owncloud/ocis-reva:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm + platform: + architecture: arm + variant: v6 + os: linux diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000000..364fdec1aa --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +public/ diff --git a/docs/archetypes/default.md b/docs/archetypes/default.md new file mode 100644 index 0000000000..4e777bee13 --- /dev/null +++ b/docs/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .TranslationBaseName "-" " " | title }}" +date: {{ .Date }} +anchor: "{{ replace .TranslationBaseName "-" " " | title | urlize }}" +weight: +--- diff --git a/docs/config.toml b/docs/config.toml new file mode 100644 index 0000000000..f90bc63933 --- /dev/null +++ b/docs/config.toml @@ -0,0 +1,18 @@ +baseURL = "https://owncloud.github.io/ocis-reva/" +languageCode = "en-us" +title = "ownCloud Infinite Scale: Reva" +pygmentsUseClasses = true + +disableKinds = ["taxonomy", "taxonomyTerm", "RSS", "sitemap"] + +[blackfriday] + angledQuotes = true + fractions = false + plainIDAnchors = true + smartlists = true + extensions = ["hardLineBreak"] + +[params] + author = "ownCloud GmbH" + description = "Example service for oCIS" + keywords = "reva, ocis" diff --git a/docs/content/about.md b/docs/content/about.md new file mode 100644 index 0000000000..01e812e440 --- /dev/null +++ b/docs/content/about.md @@ -0,0 +1,8 @@ +--- +title: "About" +date: 2018-05-02T00:00:00+00:00 +anchor: "about" +weight: 10 +--- + +This service provides a simple hello world example API to show the integration of custom plugins within [Phoenix](https://github.com/owncloud/phoenix). diff --git a/docs/content/building.md b/docs/content/building.md new file mode 100644 index 0000000000..f68ae0e3c8 --- /dev/null +++ b/docs/content/building.md @@ -0,0 +1,33 @@ +--- +title: "Building" +date: 2018-05-02T00:00:00+00:00 +anchor: "building" +weight: 30 +--- + +As this project is built with Go and NodeJS, so you need to install that first. The installation of Go and NodeJS is out of the scope of this document, please follow the official documentation for [Go](https://golang.org/doc/install), [NodeJS](https://nodejs.org/en/download/package-manager/) and [Yarn](https://yarnpkg.com/lang/en/docs/install/), to build this project you have to install Go >= v1.13. After the installation of the required tools you need to get the sources: + +{{< highlight txt >}} +git clone https://github.com/owncloud/ocis-reva.git +cd ocis-reva +{{< / highlight >}} + +All required tool besides Go itself and make are bundled or getting automatically installed within the `GOPATH`. All commands to build this project are part of our `Makefile` and respectively our `package.json`. + +### Frontend + +{{< highlight txt >}} +yarn install +yarn build +{{< / highlight >}} + +The above commands will install the required build dependencies and build the whole frontend bundle. This bundle will we embeded into the binary later on. + +### Backend + +{{< highlight txt >}} +make generate +make build +{{< / highlight >}} + +The above commands will embed the frontend bundle into the binary. Finally you should have the binary within the `bin/` folder now, give it a try with `./bin/ocis-reva -h` to see all available options. diff --git a/docs/content/getting-started.md b/docs/content/getting-started.md new file mode 100644 index 0000000000..434c39d3f8 --- /dev/null +++ b/docs/content/getting-started.md @@ -0,0 +1,274 @@ +--- +title: "Getting Started" +date: 2018-05-02T00:00:00+00:00 +anchor: "getting-started" +weight: 20 +--- + +### Installation + +So far we are offering two different variants for the installation. You can choose between [Docker](https://www.docker.com/) or pre-built binaries which are stored on our download mirrors and GitHub releases. Maybe we will also provide system packages for the major distributions later if we see the need for it. + +#### Docker + +TBD + +#### Binaries + +TBD + +### Configuration + +We provide overall three different variants of configuration. The variant based on environment variables and commandline flags are split up into global values and command-specific values. + +#### Envrionment variables + +If you prefer to configure the service with environment variables you can see the available variables below. + +##### Global + +REVA_CONFIG_FILE +: Path to config file, empty default value + +REVA_LOG_LEVEL +: Set logging level, defaults to `info` + +REVA_LOG_COLOR +: Enable colored logging, defaults to `true` + +REVA_LOG_PRETTY +: Enable pretty logging, defaults to `true` + +##### Server + +REVA_TRACING_ENABLED +: Enable sending traces, defaults to `false` + +REVA_TRACING_TYPE +: Tracing backend type, defaults to `jaeger` + +REVA_TRACING_ENDPOINT +: Endpoint for the agent, empty default value + +REVA_TRACING_COLLECTOR +: Endpoint for the collector, empty default value + +REVA_TRACING_SERVICE +: Service name for tracing, defaults to `reva` + +REVA_DEBUG_ADDR +: Address to bind debug server, defaults to `0.0.0.0:9109` + +REVA_DEBUG_TOKEN +: Token to grant metrics access, empty default value + +REVA_DEBUG_PPROF +: Enable pprof debugging, defaults to `false` + +REVA_DEBUG_ZPAGES +: Enable zpages debugging, defaults to `false` + +REVA_HTTP_ADDR +: Address to bind http server, defaults to `0.0.0.0:9105` + +REVA_HTTP_ROOT +: Root path of http server, defaults to `/` + +REVA_GRPC_ADDR +: Address to bind grpc server, defaults to `0.0.0.0:9106` + +REVA_ASSET_PATH +: Path to custom assets, empty default value + +##### Health + +REVA_DEBUG_ADDR +: Address to debug endpoint, defaults to `0.0.0.0:9109` + +#### Commandline flags + +If you prefer to configure the service with commandline flags you can see the available variables below. + +##### Global + +--config-file +: Path to config file, empty default value + +--log-level +: Set logging level, defaults to `info` + +--log-color +: Enable colored logging, defaults to `true` + +--log-pretty +: Enable pretty logging, defaults to `true` + +##### Server + +--tracing-enabled +: Enable sending traces, defaults to `false` + +--tracing-type +: Tracing backend type, defaults to `jaeger` + +--tracing-endpoint +: Endpoint for the agent, empty default value + +--tracing-collector +: Endpoint for the collector, empty default value + +--tracing-service +: Service name for tracing, defaults to `reva` + +--debug-addr +: Address to bind debug server, defaults to `0.0.0.0:9109` + +--debug-token +: Token to grant metrics access, empty default value + +--debug-pprof +: Enable pprof debugging, defaults to `false` + +--debug-zpages +: Enable zpages debugging, defaults to `false` + +--http-addr +: Address to bind http server, defaults to `0.0.0.0:9105` + +--http-root +: Root path of http server, defaults to `/` + +--grpc-addr +: Address to bind grpc server, defaults to `0.0.0.0:9106` + +--asset-path +: Path to custom assets, empty default value + +##### Health + +--debug-addr +: Address to debug endpoint, defaults to `0.0.0.0:9109` + +#### Configuration file + +So far we support the file formats `JSON` and `YAML`, if you want to get a full example configuration just take a look at [our repository](https://github.com/owncloud/ocis-reva/tree/master/config), there you can always see the latest configuration format. These example configurations include all available options and the default values. The configuration file will be automatically loaded if it's placed at `/etc/ocis/reva.yml`, `${HOME}/.ocis/reva.yml` or `$(pwd)/config/reva.yml`. + +### Usage + +The program provides a few sub-commands on execution. The available configuration methods have already been mentioned above. Generally you can always see a formated help output if you execute the binary via `ocis-reva --help`. + +#### Server + +The server command is used to start the http and debug server on two addresses within a single process. The http server is serving the general webservice while the debug server is used for health check, readiness check and to server the metrics mentioned below. For further help please execute: + +{{< highlight txt >}} +ocis-reva server --help +{{< / highlight >}} + +#### Health + +The health command is used to execute a health check, if the exit code equals zero the service should be up and running, if the exist code is greater than zero the service is not in a healthy state. Generally this command is used within our Docker containers, it could also be used within Kubernetes. + +{{< highlight txt >}} +ocis-reva health --help +{{< / highlight >}} + +### Metrics + +This service provides some [Prometheus](https://prometheus.io/) metrics through the debug endpoint, you can optionally secure the metrics endpoint by some random token, which got to be configured through one of the flag `--debug-token` or the environment variable `REVA_DEBUG_TOKEN` mentioned above. By default the metrics endpoint is bound to `http://0.0.0.0:9109/metrics`. + +go_gc_duration_seconds +: A summary of the GC invocation durations + +go_gc_duration_seconds_sum +: A summary of the GC invocation durations + +go_gc_duration_seconds_count +: A summary of the GC invocation durations + +go_goroutines +: Number of goroutines that currently exist + +go_info +: Information about the Go environment + +go_memstats_alloc_bytes +: Number of bytes allocated and still in use + +go_memstats_alloc_bytes_total +: Total number of bytes allocated, even if freed + +go_memstats_buck_hash_sys_bytes +: Number of bytes used by the profiling bucket hash table + +go_memstats_frees_total +: Total number of frees + +go_memstats_gc_cpu_fraction +: The fraction of this program's available CPU time used by the GC since the program started + +go_memstats_gc_sys_bytes +: Number of bytes used for garbage collection system metadata + +go_memstats_heap_alloc_bytes +: Number of heap bytes allocated and still in use + +go_memstats_heap_idle_bytes +: Number of heap bytes waiting to be used + +go_memstats_heap_inuse_bytes +: Number of heap bytes that are in use + +go_memstats_heap_objects +: Number of allocated objects + +go_memstats_heap_released_bytes +: Number of heap bytes released to OS + +go_memstats_heap_sys_bytes +: Number of heap bytes obtained from system + +go_memstats_last_gc_time_seconds +: Number of seconds since 1970 of last garbage collection + +go_memstats_lookups_total +: Total number of pointer lookups + +go_memstats_mallocs_total +: Total number of mallocs + +go_memstats_mcache_inuse_bytes +: Number of bytes in use by mcache structures + +go_memstats_mcache_sys_bytes +: Number of bytes used for mcache structures obtained from system + +go_memstats_mspan_inuse_bytes +: Number of bytes in use by mspan structures + +go_memstats_mspan_sys_bytes +: Number of bytes used for mspan structures obtained from system + +go_memstats_next_gc_bytes +: Number of heap bytes when next garbage collection will take place + +go_memstats_other_sys_bytes +: Number of bytes used for other system allocations + +go_memstats_stack_inuse_bytes +: Number of bytes in use by the stack allocator + +go_memstats_stack_sys_bytes +: Number of bytes obtained from system for stack allocator + +go_memstats_sys_bytes +: Number of bytes obtained from system + +go_threads +: Number of OS threads created + +promhttp_metric_handler_requests_in_flight +: Current number of scrapes being served + +promhttp_metric_handler_requests_total +: Total number of scrapes by HTTP status code diff --git a/docs/content/license.md b/docs/content/license.md new file mode 100644 index 0000000000..e6e6dcc7a8 --- /dev/null +++ b/docs/content/license.md @@ -0,0 +1,8 @@ +--- +title: "License" +date: 2018-05-02T00:00:00+00:00 +anchor: "license" +weight: 40 +--- + +This project is licensed under the [Apache 2.0](https://github.com/owncloud/ocis-reva/blob/master/LICENSE) license. For the license of the used libraries you have to check the respective sources. diff --git a/docs/layouts/_default/list.html b/docs/layouts/_default/list.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docs/layouts/_default/single.html b/docs/layouts/_default/single.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docs/layouts/index.html b/docs/layouts/index.html new file mode 100644 index 0000000000..27db113acd --- /dev/null +++ b/docs/layouts/index.html @@ -0,0 +1,57 @@ + + + + + + + + + {{ .Site.Title }} + + + + + + {{ partial "style.html" . }} + + + + + + {{ range .Data.Pages.ByWeight }} +
+

+ + {{ .Title }} + + + + + Back to Top + + +

+ + {{ .Content | markdownify }} +
+ {{ end }} + + diff --git a/docs/layouts/partials/style.html b/docs/layouts/partials/style.html new file mode 100644 index 0000000000..1386c59b0d --- /dev/null +++ b/docs/layouts/partials/style.html @@ -0,0 +1,2 @@ + + diff --git a/docs/static/styles.css b/docs/static/styles.css new file mode 100644 index 0000000000..61acc8ddb5 --- /dev/null +++ b/docs/static/styles.css @@ -0,0 +1,338 @@ +body, +html { + cursor: default; +} + +body, +div, +dl, +dt, +dd, +ul, +ol, +li, +h1, +h2, +h3, +h4, +h5, +h6, +pre, +form, +fieldset, +input, +textarea, +p, +blockquote, +th, +td { + margin: 0; + padding: 0; +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +:before, +:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +img, +object, +embed { + max-width: 100%; + height: auto; +} + +object, +embed { + height: 100%; +} + +img { + margin: 1.25% 0; + -ms-interpolation-mode: bicubic; +} + +html { + background-color: #F0F1F3; + padding: 2%; +} + +body { + font-size: 16px; + line-height: 1.6; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + color: #242424; + max-width: 800px; + margin: 5% auto; +} + +body::after { + clear: both; + content: ""; + display: table; +} + +header { + margin-bottom: 8%; +} + +footer { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h2 a { + color: #263A48; + font-weight: 500; + text-decoration: none; +} + +h1, +h2 { + font-size: 36px; + padding-bottom: 0.3em; + margin-bottom: 0.4em; + border-bottom: 1px solid #eee +} + +h2 { + font-size: 22px; + padding-bottom: 0.6em; + margin-bottom: 0.6em; + margin-top: 2.5em; +} + +h3 { + font-size: 18px; + margin-bottom: 0.3em; +} + +h2 small a { + color: #98999C; + font-size: 15px; + font-weight: normal; + float: right; + position: absolute; + top: 15px; + right: 20px; +} + +section { + background: #fff; + margin-bottom: 1%; + position: relative; + padding: 6% 8%; +} + +blockquote { + border-left: 3px solid #d54e21; + font-size: 16px; + padding: 0 0 0 20px; + color: #d54e21; +} + +blockquote a { + color: #d54e21; + font-weight: 500; +} + +blockquote code { + color: #d54e21; +} + +.highlight pre { + padding: 10px; +} + +.highlight { + margin-bottom: 4%; +} + +a { + color: #1e8cbe; + text-decoration: underline; +} + +a:hover { + color: #d54e21; +} + +ul { + list-style: none; +} + +ol { + list-style: number; +} + +ol li { + color: #98999C; + margin-bottom: 5px; +} + +ol li:last-child { + margin-bottom: 0; +} + +p, +ul, +ol, +blockquote { + margin-bottom: 4%; +} + +ul ul { + padding-top: 0; + margin-bottom: 0; + margin-left: 4%; +} + +ul ul li:before { + content: '-'; + display: inline-block; + padding-right: 2%; +} + +ul.col-2 { + color: #98999C; + -webkit-column-count: 2; + -moz-column-count: 2; + column-count: 2; + -webkit-column-gap: 20px; + -moz-column-gap: 20px; + column-gap: 20px; +} + +dl dt { + font-weight: bold; +} + +dl dd { + padding-left: 10px; +} + +@media screen and (min-width: 500px) { + ul.col-2 { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + -webkit-column-gap: 20px; + -moz-column-gap: 20px; + column-gap: 20px; + } +} + +nav { + background: #F0F1F3; + min-width: 215px; + margin-bottom: 5px; + margin-top: 15px; +} + +nav:first-of-type a { + color: #d54e21; + border-radius: 0; +} + +nav:first-of-type a:hover { + color: #d54e21; +} + +nav:first-of-type a:before { + background-color: #d54e21; +} + +nav.affix { + position: fixed; + top: 20px; +} + +nav.affix-bottom { + position: absolute; +} + +nav a { + border-radius: 3px; + font-size: 15px; + display: block; + cursor: pointer; + font-weight: 500; + position: relative; + text-decoration: none; + padding: 10px 12px; + width: 100%; + padding-right: 3px; + border-bottom: 2px solid #fff; +} + +nav a:before { + content: ''; + width: 4px; + display: block; + left: 0; + position: absolute; + height: 100%; + display: none; + background: #1e8cbe; + top: 0; +} + +nav a:hover { + background-color: #E6E8EA; + color: #1e8cbe; + text-decoration: underline; +} + +nav a:hover:before { + display: block; +} + +nav a:last-of-type { + border-bottom: none; +} + +.gist { + margin-top: 5.1%; + margin-bottom: 5%; +} + +@media screen and (max-width: 1050px) { + body { + margin: 0 auto; + } +} + +@media screen and (max-width: 767px) { + header span { + display: none; + } + + h1 { + font-size: 26px; + } + + h2 { + font-size: 20px; + } +} + +@media screen and (max-width: 514px) { + p, + ul, + ol, + blockquote { + margin-bottom: 8%; + } +} diff --git a/docs/static/syntax.css b/docs/static/syntax.css new file mode 100644 index 0000000000..681758d068 --- /dev/null +++ b/docs/static/syntax.css @@ -0,0 +1,59 @@ +/* Background */ .chroma { color: #f8f8f2; background-color: #272822 } +/* Error */ .chroma .err { color: #960050; background-color: #1e0010 } +/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } +/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } +/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc } +/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } +/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } +/* Keyword */ .chroma .k { color: #66d9ef } +/* KeywordConstant */ .chroma .kc { color: #66d9ef } +/* KeywordDeclaration */ .chroma .kd { color: #66d9ef } +/* KeywordNamespace */ .chroma .kn { color: #f92672 } +/* KeywordPseudo */ .chroma .kp { color: #66d9ef } +/* KeywordReserved */ .chroma .kr { color: #66d9ef } +/* KeywordType */ .chroma .kt { color: #66d9ef } +/* NameAttribute */ .chroma .na { color: #a6e22e } +/* NameClass */ .chroma .nc { color: #a6e22e } +/* NameConstant */ .chroma .no { color: #66d9ef } +/* NameDecorator */ .chroma .nd { color: #a6e22e } +/* NameException */ .chroma .ne { color: #a6e22e } +/* NameFunction */ .chroma .nf { color: #a6e22e } +/* NameOther */ .chroma .nx { color: #a6e22e } +/* NameTag */ .chroma .nt { color: #f92672 } +/* Literal */ .chroma .l { color: #ae81ff } +/* LiteralDate */ .chroma .ld { color: #e6db74 } +/* LiteralString */ .chroma .s { color: #e6db74 } +/* LiteralStringAffix */ .chroma .sa { color: #e6db74 } +/* LiteralStringBacktick */ .chroma .sb { color: #e6db74 } +/* LiteralStringChar */ .chroma .sc { color: #e6db74 } +/* LiteralStringDelimiter */ .chroma .dl { color: #e6db74 } +/* LiteralStringDoc */ .chroma .sd { color: #e6db74 } +/* LiteralStringDouble */ .chroma .s2 { color: #e6db74 } +/* LiteralStringEscape */ .chroma .se { color: #ae81ff } +/* LiteralStringHeredoc */ .chroma .sh { color: #e6db74 } +/* LiteralStringInterpol */ .chroma .si { color: #e6db74 } +/* LiteralStringOther */ .chroma .sx { color: #e6db74 } +/* LiteralStringRegex */ .chroma .sr { color: #e6db74 } +/* LiteralStringSingle */ .chroma .s1 { color: #e6db74 } +/* LiteralStringSymbol */ .chroma .ss { color: #e6db74 } +/* LiteralNumber */ .chroma .m { color: #ae81ff } +/* LiteralNumberBin */ .chroma .mb { color: #ae81ff } +/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff } +/* LiteralNumberHex */ .chroma .mh { color: #ae81ff } +/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff } +/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff } +/* LiteralNumberOct */ .chroma .mo { color: #ae81ff } +/* Operator */ .chroma .o { color: #f92672 } +/* OperatorWord */ .chroma .ow { color: #f92672 } +/* Comment */ .chroma .c { color: #75715e } +/* CommentHashbang */ .chroma .ch { color: #75715e } +/* CommentMultiline */ .chroma .cm { color: #75715e } +/* CommentSingle */ .chroma .c1 { color: #75715e } +/* CommentSpecial */ .chroma .cs { color: #75715e } +/* CommentPreproc */ .chroma .cp { color: #75715e } +/* CommentPreprocFile */ .chroma .cpf { color: #75715e } +/* GenericDeleted */ .chroma .gd { color: #f92672 } +/* GenericEmph */ .chroma .ge { font-style: italic } +/* GenericInserted */ .chroma .gi { color: #a6e22e } +/* GenericStrong */ .chroma .gs { font-weight: bold } +/* GenericSubheading */ .chroma .gu { color: #75715e } diff --git a/go.mod b/go.mod new file mode 100644 index 0000000000..5a6adb2374 --- /dev/null +++ b/go.mod @@ -0,0 +1,26 @@ +module github.com/owncloud/ocis-reva + +go 1.13 + +require ( + contrib.go.opencensus.io/exporter/jaeger v0.2.0 + contrib.go.opencensus.io/exporter/ocagent v0.6.0 + contrib.go.opencensus.io/exporter/zipkin v0.1.1 + github.com/UnnoTed/fileb0x v1.1.4 // indirect + github.com/butonic/ldapserver v0.0.0-20191210075802-e693a1c5bba4 // indirect + github.com/cs3org/reva v0.0.2-0.20191217083445-dee8d1c71f95 + github.com/go-chi/render v1.0.1 // indirect + github.com/gofrs/uuid v3.2.0+incompatible + github.com/micro/cli v0.2.0 + github.com/micro/go-micro v1.18.0 // indirect + github.com/oklog/run v1.0.0 + github.com/openzipkin/zipkin-go v0.2.2 + github.com/owncloud/ocis-devldap v0.0.0-20191211134532-3663b31971b9 // indirect + github.com/owncloud/ocis-pkg v1.2.0 + github.com/prometheus/client_golang v1.2.1 + github.com/spf13/viper v1.6.1 + github.com/webhippie/protoc-gen-microweb v0.0.0-20191209132523-6ef5e3b3e9cc // indirect + go.opencensus.io v0.22.2 + golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 + google.golang.org/genproto v0.0.0-20191216205247-b31c10ee225f // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000000..1c47d66580 --- /dev/null +++ b/go.sum @@ -0,0 +1,1131 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= +contrib.go.opencensus.io/exporter/jaeger v0.1.0/go.mod h1:VYianECmuFPwU37O699Vc1GOcy+y8kOsfaxHRImmjbA= +contrib.go.opencensus.io/exporter/jaeger v0.2.0 h1:nhTv/Ry3lGmqbJ/JGvCjWxBl5ozRfqo86Ngz59UAlfk= +contrib.go.opencensus.io/exporter/jaeger v0.2.0/go.mod h1:ukdzwIYYHgZ7QYtwVFQUjiT28BJHiMhTERo32s6qVgM= +contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= +contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrLVhN+qmP8BTVvdH2YLs7Gl0= +contrib.go.opencensus.io/exporter/ocagent v0.6.0 h1:Z1n6UAyr0QwM284yUuh5Zd8JlvxUGAhFZcgMJkMPrGM= +contrib.go.opencensus.io/exporter/ocagent v0.6.0/go.mod h1:zmKjrJcdo0aYcVS7bmEeSEBLPA9YJp5bjrofdU3pIXs= +contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= +contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= +contrib.go.opencensus.io/exporter/zipkin v0.1.1 h1:PR+1zWqY8ceXs1qDQQIlgXe+sdiwCf0n32bH4+Epk8g= +contrib.go.opencensus.io/exporter/zipkin v0.1.1/go.mod h1:GMvdSl3eJ2gapOaLKzTKE3qDgUkJ86k9k3yY2eqwkzc= +contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= +contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= +github.com/Azure/azure-amqp-common-go/v2 v2.1.0/go.mod h1:R8rea+gJRuJR6QxTir/XuEd+YuKoUiazDC/N96FiDEU= +github.com/Azure/azure-pipeline-go v0.1.8/go.mod h1:XA1kFWRVhSK+KNFiOhfv83Fv8L9achrP7OxIzeTn1Yg= +github.com/Azure/azure-pipeline-go v0.1.9/go.mod h1:XA1kFWRVhSK+KNFiOhfv83Fv8L9achrP7OxIzeTn1Yg= +github.com/Azure/azure-sdk-for-go v29.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v30.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v32.4.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-service-bus-go v0.9.1/go.mod h1:yzBx6/BUGfjfeqbRZny9AQIbIe3AcV9WZbAdpkoXOa0= +github.com/Azure/azure-storage-blob-go v0.6.0/go.mod h1:oGfmITT1V6x//CswqY2gtAHND+xIP64/qL7a5QJix0Y= +github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-autorest v12.0.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.1.0/go.mod h1:AKyIcETwSUFxIcs/Wnq/C+kwCtlEYGUVd7FPNb2slmg= +github.com/Azure/go-autorest/autorest v0.5.0/go.mod h1:9HLKlQjVBH6U3oDfsXOeVc56THsLPw1L03yban4xThw= +github.com/Azure/go-autorest/autorest/adal v0.1.0/go.mod h1:MeS4XhScH55IST095THyTxElntu7WqB7pNbZo8Q5G3E= +github.com/Azure/go-autorest/autorest/adal v0.2.0/go.mod h1:MeS4XhScH55IST095THyTxElntu7WqB7pNbZo8Q5G3E= +github.com/Azure/go-autorest/autorest/azure/auth v0.1.0/go.mod h1:Gf7/i2FUpyb/sGBLIFxTBzrNzBo7aPXXE3ZVeDRwdpM= +github.com/Azure/go-autorest/autorest/azure/cli v0.1.0/go.mod h1:Dk8CUAt/b/PzkfeRsWzVG9Yj3ps8mS8ECztu43rdU8U= +github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= +github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= +github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= +github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= +github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvdeRAgDr0izn4z5Ij88= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20190605020000-c4ba1fdf4d36/go.mod h1:aJ4qN3TfrelA6NZ6AXsXRfmEVaYin3EDbSPJrKS8OXo= +github.com/Jeffail/gabs v1.4.0 h1://5fYRRTq1edjfIrQGvdkcd22pkYUrHZ5YC/H2GJVAo= +github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= +github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= +github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= +github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7-0.20191101173118-65519b62243c/go.mod h1:7xhjOwRV2+0HXGmM0jxaEu+ZiXJFoVZOTfL/dmqbrD8= +github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87/go.mod h1:iGLljf5n9GjT6kc0HBvyI1nOKnGQbNB66VzSNbK5iks= +github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/RoaringBitmap/roaring v0.4.7/go.mod h1:8khRDP4HmeXns4xIj9oGrKSz7XTQiJx2zgh7AcNke4w= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/sarama v1.24.1/go.mod h1:fGP8eQ6PugKEI0iUETYYtnP6d1pH/bdDMTel1X5ajsU= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/UnnoTed/fileb0x v1.1.4 h1:IUgFzgBipF/ujNx9wZgkrKOF3oltUuXMSoaejrBws+A= +github.com/UnnoTed/fileb0x v1.1.4/go.mod h1:X59xXT18tdNk/D6j+KZySratBsuKJauMtVuJ9cgOiZs= +github.com/abbot/go-http-auth v0.4.1-0.20181019201920-860ed7f246ff/go.mod h1:Cz6ARTIzApMJDzh5bRMSUou6UMSp0IEXg9km/ci7TJM= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= +github.com/akamai/AkamaiOPEN-edgegrid-golang v0.9.0/go.mod h1:zpDJeKyp9ScW4NNrbdr+Eyxvry3ilGPewKoXw3XGN1k= +github.com/alangpierce/go-forceexport v0.0.0-20160317203124-8f1d6941cd75 h1:3ILjVyslFbc4jl1w5TWuvvslFD/nDfR2H8tVaMVLrEY= +github.com/alangpierce/go-forceexport v0.0.0-20160317203124-8f1d6941cd75/go.mod h1:uAXEEpARkRhCZfEvy/y0Jcc888f9tHCc1W7/UeEtreE= +github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190808125512-07798873deee/go.mod h1:myCDvQSzCW+wB1WAlocEru4wMGJxy+vlxHdhegi1CDQ= +github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= +github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= +github.com/anacrolix/envpprof v1.0.0/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= +github.com/anacrolix/missinggo v1.1.2-0.20190815015349-b888af804467/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo= +github.com/anacrolix/missinggo v1.2.1/go.mod h1:J5cMhif8jPmFoC3+Uvob3OXXNIhOUikzMt+uUjeM21Y= +github.com/anacrolix/missinggo/perf v1.0.0/go.mod h1:ljAFWkBuzkO12MQclXzZrosP5urunoLS0Cbvb4V0uMQ= +github.com/anacrolix/sync v0.2.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DCOj/I0g= +github.com/anacrolix/tagflag v0.0.0-20180109131632-2146c8d41bf0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= +github.com/anacrolix/utp v0.0.0-20180219060659-9e0e1d1d0572/go.mod h1:MDwc+vsGEq7RMw6lr2GKOEqjWny5hO5OZXRVNaBJ2Dk= +github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee h1:3T/l+vMotQ7cDSLWNAn2Vg1SAQ3mdyLgBWWBitSS3uU= +github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt4WATGGgae9mURNGQQqxAudPKrxfsbSDSGOso+g= +github.com/asim/go-awsxray v0.0.0-20161209120537-0d8a60b6e205/go.mod h1:frVmN4PtXUuL1EbZn0uL4PHSTKNKFnbMpBIhngqMuNQ= +github.com/asim/go-bson v0.0.0-20160318195205-84522947cabd/go.mod h1:L59ZX7HuzTbNzFBt8g3SJkRraj+GBOgvLAfJYJUcQ5w= +github.com/aws/aws-sdk-go v1.15.27/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= +github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.19.45/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.25.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.25.31/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.26.3 h1:szQdfJcUBAhQT0zZEx4sxoDuWb7iScoucxCiVxDmaBk= +github.com/aws/aws-sdk-go v1.26.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= +github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= +github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bmatcuk/doublestar v1.1.1 h1:YroD6BJCZBYx06yYFEWvUuKVWQn3vLLQAVmDmvTSaiQ= +github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= +github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= +github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= +github.com/bradfitz/iter v0.0.0-20190303215204-33e6a9893b0c/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= +github.com/butonic/ldapserver v0.0.0-20181029101309-daacf7e8e416/go.mod h1:YDlLfPqM3s1bL6u5ubJqZHGPBKa+nBKJNcI/WzSzdKU= +github.com/butonic/ldapserver v0.0.0-20191209092749-8fb2e7a4a628/go.mod h1:e7mxHN5D0UWtmhNZCWwrJrh7hM7mp0lD5BCkgWX/NR0= +github.com/butonic/ldapserver v0.0.0-20191210075802-e693a1c5bba4 h1:mk17lGdSJ5d9pVQfd8KglybrWY5JVzinbXNaQue4CBQ= +github.com/butonic/ldapserver v0.0.0-20191210075802-e693a1c5bba4/go.mod h1:L8QmErc0NLGLo/G26Drod/D3Wo59GSs3Y07ERAgh84I= +github.com/butonic/zerologr v0.0.0-20191210074216-d798ee237d84 h1:QtNZstjgtfA6J7MwnpJhnDDEQoLWik468l4GttjrRkk= +github.com/butonic/zerologr v0.0.0-20191210074216-d798ee237d84/go.mod h1:Jw3eYm4TLfPMNKzimBDxXceOJhFF7Oix/zd2PTK3UrM= +github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= +github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= +github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= +github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.0 h1:yTUvW7Vhb89inJ+8irsUqiWjh8iT6sQPZiQzI6ReGkA= +github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM= +github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= +github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= +github.com/cheggaaa/pb v1.0.28/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudflare/cloudflare-go v0.10.2/go.mod h1:qhVI5MKwBGhdNU89ZRz2plgYutcJ5PCekLxXn56w6SY= +github.com/cloudflare/cloudflare-go v0.10.6/go.mod h1:dcRl7AXBH5Bf7QFTBVc3TRzwvotSeO4AlnMhuxORAX8= +github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= +github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/continuity v0.0.0-20181203112020-004b46473808/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/bbolt v1.3.3 h1:n6AiVyVRKQFNb6mJlwESEvvLoDyiTzXX7ORAUlkeBdY= +github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.17+incompatible h1:f/Z3EoDSx1yjaIjLQGo1diYUlQYSBrrAQ5vP8NjwXwo= +github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.18+incompatible h1:Zz1aXgDrFFi1nadh58tA9ktt06cmPTwNNP3dXwIq1lE= +github.com/coreos/etcd v3.3.18+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= +github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMElOWxok= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/cs3org/go-cs3apis v0.0.0-20191015062230-f4cde4c589eb/go.mod h1:+SahswLd+p4bLlXXG+UuNiWSgRin4dSQQOgPXCsdiTM= +github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83 h1:9bcp1jc6+36XUfuOae/w0BVrbzeVKBp/OqhTfCal40U= +github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83/go.mod h1:IsVGyZrOLUQD48JIhlM/xb3Vz6He5o2+W0ZTfUGY+IU= +github.com/cs3org/reva v0.0.1 h1:gGvwdphMmYTaCsZP2brzvJWPcDpExzjSGgYKYZuYQuc= +github.com/cs3org/reva v0.0.1/go.mod h1:+9ZgETsRnsafKeMyDFRljcU2SDYpmV8JLX2vpJHDeIk= +github.com/cs3org/reva v0.0.2-0.20191217083445-dee8d1c71f95 h1:wrx5iQTS50W4gFDyYfR+kRuVlrSw4oXr22msH+uPjb0= +github.com/cs3org/reva v0.0.2-0.20191217083445-dee8d1c71f95/go.mod h1:lwilkLiV0vnGiyypVxDJZUbGjnAzVo0cgDCKxy/eLpw= +github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= +github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= +github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= +github.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= +github.com/dnsimple/dnsimple-go v0.30.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= +github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v1.4.2-0.20190710153559-aa8249ae1b8b/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v0.0.0-20180421182945-02af3965c54e/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= +github.com/eknkc/basex v1.0.0/go.mod h1:k/F/exNEHFdbs3ZHuasoP2E7zeWwZblG84Y7Z59vQRo= +github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/elazarl/goproxy v0.0.0-20181003060214-f58a169a71a5/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= +github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/forestgiant/sliceutil v0.0.0-20160425183142-94783f95db6c/go.mod h1:pFdJbAhRf7rh6YYMUdIQGyzne6zYL1tCUW8QV2B3UfY= +github.com/fortytw2/leaktest v1.2.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= +github.com/frankban/quicktest v1.4.1/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsouza/go-dockerclient v1.4.4/go.mod h1:PrwszSL5fbmsESocROrOGq/NULMXRw+bajY0ltzD6MA= +github.com/fsouza/go-dockerclient v1.6.0/go.mod h1:YWwtNPuL4XTX1SKJQk86cWPmmqwx+4np9qfPbb+znGc= +github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gizak/termui/v3 v3.1.0 h1:ZZmVDgwHl7gR7elfKf1xc4IudXZ5qqfDh4wExk4Iajc= +github.com/gizak/termui/v3 v3.1.0/go.mod h1:bXQEBkJpzxUAKf0+xq9MSWAvWZlE7c+aidmyFlkYTrY= +github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= +github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/goconvey v0.0.0-20180728074245-46e3a41ad493/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= +github.com/go-acme/lego/v3 v3.1.0/go.mod h1:074uqt+JS6plx+c9Xaiz6+L+GBb+7itGtzfcDM2AhEE= +github.com/go-chi/chi v4.0.2+incompatible h1:maB6vn6FqCxrpz4FqWdh4+lwpyZIQS7YEAUcHlgXVRs= +github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-chi/render v1.0.1 h1:4/5tis2cKaNdnv9zFLfXzcquC9HbeZgCnxGnKrltBS8= +github.com/go-chi/render v1.0.1/go.mod h1:pq4Rr7HbnsdaeHagklXub+p6Wd16Af5l9koip1OvJns= +github.com/go-cmd/cmd v1.0.5/go.mod h1:y8q8qlK5wQibcw63djSl/ntiHUHXHGdCkPk0j4QeW4s= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-ini/ini v1.44.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= +github.com/go-log/log v0.1.0 h1:wudGTNsiGzrD5ZjgIkVZ517ugi2XRe9Q/xRCzwEO4/U= +github.com/go-log/log v0.1.0/go.mod h1:4mBwpdRMFLiuXZDCwU2lKQFsoSCo72j3HqBK9d81N2M= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logr/logr v0.1.0 h1:M1Tv3VzNlEHg6uyACnRdtrploV2P7wZqH8BoQMtz0cg= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-logr/stdr v0.0.0-20190808155957-db4f46c40425 h1:ZFZxbJwJtEQSYhLAgDHTkSzYX7ya30gsDAeKMJ9eUB8= +github.com/go-logr/stdr v0.0.0-20190808155957-db4f46c40425/go.mod h1:NO1vneyJDqKVgJYnxhwXWWmQPOvNM391IG3H8ql3jiA= +github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= +github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= +github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= +github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= +github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= +github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= +github.com/go-redsync/redsync v1.3.1/go.mod h1:qxZwM5JOimfq8y98Wk2+c8dKtxJgG5/yIl2ODz2E5Dk= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-stomp/stomp v2.0.3+incompatible/go.mod h1:VqCtqNZv1226A1/79yh+rMiFUcfY3R109np+7ke4n0c= +github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM= +github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= +github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= +github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc h1:55rEp52jU6bkyslZ1+C/7NGfpQsEc6pxGLAGDOctqbw= +github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 h1:uHTyIjqVhYRhLbJ8nIiOJHkEZZ+5YoOsAbD3sk82NiE= +github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= +github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/go-replayers/grpcreplay v0.1.0/go.mod h1:8Ig2Idjpr6gifRd6pNVggX6TC1Zw6Jx74AKp7QNH2QE= +github.com/google/go-replayers/httpreplay v0.1.0/go.mod h1:YKZViNhiGgqdBlUbI2MwGpq4pXxNmhJLPHQ7cv2b5no= +github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/wire v0.3.0/go.mod h1:i1DMg/Lu8Sz5yYl25iOdmc5CT5qusaa+zmRWs16741s= +github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= +github.com/gophercloud/gophercloud v0.3.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= +github.com/gopherjs/gopherjs v0.0.0-20181004151105-1babbf986f6f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg= +github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 h1:THDBEeQ9xZ8JEaCLyLQqXMMdRqNr0QAUJTIkQAUtFjg= +github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.4/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.12.1 h1:zCy2xE9ablevUOrUZc3Dl72Dt+ya2FNAvC2yLYMHzi4= +github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= +github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI= +github.com/hako/branca v0.0.0-20180808000428-10b799466ada/go.mod h1:tOPn4gvKEUWqIJNE+zpTeTALaRAXnrRqqSnPlO3VpEo= +github.com/hashicorp/consul/api v1.2.0/go.mod h1:1SIkFYi2ZTXUE5Kgt179+4hH33djo11+0Eo2XgTAtkw= +github.com/hashicorp/consul/sdk v0.2.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= +github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= +github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/memberlist v0.1.5/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q= +github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= +github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5/go.mod h1:0YZ2wQSuwviXXXGUiK6zXzskyBLAbLXhamxzcFHSLoM= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= +github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= +github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= +github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= +github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= +github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jcmturner/gofork v0.0.0-20190328161633-dc7c13fece03/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4FwCTKeG3oo7hrHJAoznj9nag= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/joncalhoun/qson v0.0.0-20170526102502-8a9cab3a62b1/go.mod h1:DFXrEwSRX0p/aSvxE21319menCBFeQO0jXpRj7LEZUA= +github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok= +github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/juju/ratelimit v1.0.1/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/justinas/alice v1.2.0 h1:+MHSA/vccVCF4Uq37S42jwlkvI2Xzl7zTPCN5BnZNVo= +github.com/justinas/alice v1.2.0/go.mod h1:fN5HRH/reO/zrUflLfTN43t3vXvKzvZIENsNEe7i7qA= +github.com/karrick/godirwalk v1.7.8 h1:VfG72pyIxgtC7+3X9CMHI0AOl4LwyRAg98WAgsvffi8= +github.com/karrick/godirwalk v1.7.8/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= +github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/kolo/xmlrpc v0.0.0-20190717152603-07c4ee3fd181/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= +github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= +github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= +github.com/labstack/echo v3.2.1+incompatible h1:J2M7YArHx4gi8p/3fDw8tX19SXhBCoRpviyAZSN3I88= +github.com/labstack/echo v3.2.1+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s= +github.com/labstack/gommon v0.2.7 h1:2qOPq/twXDrQ6ooBGrn3mrmVOC+biLlatwgIu8lbzRM= +github.com/labstack/gommon v0.2.7/go.mod h1:/tj9csK2iPSBvn+3NLM9e52usepMtrd5ilFYA+wQNJ4= +github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA= +github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= +github.com/lor00x/goldap v0.0.0-20180618054307-a546dffdd1a3 h1:wIONC+HMNRqmWBjuMxhatuSzHaljStc4gjDeKycxy0A= +github.com/lor00x/goldap v0.0.0-20180618054307-a546dffdd1a3/go.mod h1:37YR9jabpiIxsb8X9VCIx8qFOjTDIIrIHHODa8C4gz0= +github.com/lucas-clemente/quic-go v0.12.1/go.mod h1:UXJJPE4RfFef/xPO5wQm0tITK8gNfqwTxjbE7s3Vb8s= +github.com/lucas-clemente/quic-go v0.13.1 h1:CxtJTXQIh2aboCPk0M6vf530XOov6DZjVBiSE3nSj8s= +github.com/lucas-clemente/quic-go v0.13.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= +github.com/lucas-clemente/quic-go v0.14.0 h1:xmWt9+sRgvAAXmi2S9lrikUtNUPwxeOy400LD+I3Qw0= +github.com/lucas-clemente/quic-go v0.14.0/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= +github.com/lyft/protoc-gen-star v0.4.12 h1:xDL+gBceXl36jtKMkJKixY7T0S2V+EccszLmfh8RppE= +github.com/lyft/protoc-gen-star v0.4.12/go.mod h1:mE8fbna26u7aEA2QCVvvfBU/ZrPgocG1206xAFPcs94= +github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20180730094502-03f2033d19d5/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/marten-seemann/chacha20 v0.2.0 h1:f40vqzzx+3GdOmzQoItkLX5WLvHgPgyYqFFIO5Gh4hQ= +github.com/marten-seemann/chacha20 v0.2.0/go.mod h1:HSdjFau7GzYRj+ahFNwsO3ouVJr1HFkWoEwNDb4TMtE= +github.com/marten-seemann/qpack v0.1.0/go.mod h1:LFt1NU/Ptjip0C2CPkhimBz5CGE3WGDAUWqna+CNTrI= +github.com/marten-seemann/qtls v0.3.2/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= +github.com/marten-seemann/qtls v0.4.1 h1:YlT8QP3WCCvvok7MGEZkMldXbyqgr8oFg5/n8Gtbkks= +github.com/marten-seemann/qtls v0.4.1/go.mod h1:pxVXcHHw1pNIt8Qo0pwSYQEoZ8yYOOPXTCZLQQunvRc= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= +github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mholt/certmagic v0.7.5/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= +github.com/mholt/certmagic v0.8.3/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= +github.com/micro/cli v0.2.0 h1:ut3rV5JWqZjsXIa2MvGF+qMUP8DAUTvHX9Br5gO4afA= +github.com/micro/cli v0.2.0/go.mod h1:jRT9gmfVKWSS6pkKcXQ8YhUyj6bzwxK8Fp5b0Y7qNnk= +github.com/micro/go-micro v1.16.0/go.mod h1:A0F58bHLh2m0LAI9QyhvmbN8c1cxhAZo3cM6s+iDsrM= +github.com/micro/go-micro v1.17.1/go.mod h1:klwUJL1gkdY1MHFyz+fFJXn52dKcty4hoe95Mp571AA= +github.com/micro/go-micro v1.18.0 h1:gP70EZVHpJuUIT0YWth192JmlIci+qMOEByHm83XE9E= +github.com/micro/go-micro v1.18.0/go.mod h1:klwUJL1gkdY1MHFyz+fFJXn52dKcty4hoe95Mp571AA= +github.com/micro/go-plugins v1.5.1 h1:swcFD7ynCTUo98APqIEIbPu2XMd6yVGTnI8PqdnCwOQ= +github.com/micro/go-plugins v1.5.1/go.mod h1:jcxejzJCAMH731cQHbS/hncyKe0rxAbzKkibj8glad4= +github.com/micro/grpc-go v0.0.0-20190130160115-549af9fb4bf2/go.mod h1://clyXyptX/KfdauimE3DJIvC/TKOioMd9rb5blDZmI= +github.com/micro/mdns v0.3.0 h1:bYycYe+98AXR3s8Nq5qvt6C573uFTDPIYzJemWON0QE= +github.com/micro/mdns v0.3.0/go.mod h1:KJ0dW7KmicXU2BV++qkLlmHYcVv7/hHnbtguSWt9Aoc= +github.com/micro/micro v1.16.0/go.mod h1:TO5Ng0KidbfRYIxVM4Q3deZ0A+qwRyP9WeXp+k2fWNA= +github.com/micro/protoc-gen-micro v1.0.0/go.mod h1:C8ij4DJhapBmypcT00AXdb0cZ675/3PqUO02buWWqbE= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.22 h1:Jm64b3bO9kP43ddLjL2EY3Io6bmy1qGb9Xxz6TqS6rc= +github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/minio/highwayhash v1.0.0/go.mod h1:xQboMTeM9nY9v/LlAOxFctujiv5+Aq2hR5dxBpaMbdc= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-vnc v0.0.0-20150629162542-723ed9867aed/go.mod h1:3rdaFaCv4AyBgu5ALFM0+tSuHrBh6v692nyQe3ikrq0= +github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= +github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/hashstructure v1.0.0 h1:ZkRJX1CyOoTkar7p/mLS5TZU4nJ1Rn/F8u9dGS02Q3Y= +github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/moul/http2curl v0.0.0-20170919181001-9ac6cf4d929b/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= +github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04/go.mod h1:5sN+Lt1CaY4wsPvgQH/jsuJi4XO2ssZbdsIizr4CVC8= +github.com/nats-io/jwt v0.3.0 h1:xdnzwFETV++jNc4W1mw//qFyJGb2ABOombmZJQS4+Qo= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/jwt v0.3.2 h1:+RB5hMpXUUA2dfxuhBTEkMOrYmM+gKIZYS1KjSostMI= +github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= +github.com/nats-io/nats-server/v2 v2.1.0 h1:Yi0+ZhRPtPAGeIxFn5erIeJIV9wXA+JznfSxK621Fbk= +github.com/nats-io/nats-server/v2 v2.1.0/go.mod h1:r5y0WgCag0dTj/qiHkHrXAcKQ/f5GMOZaEGdoxxnJ4I= +github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= +github.com/nats-io/nats.go v1.9.1 h1:ik3HbLhZ0YABLto7iX80pZLPw/6dx3T+++MZJwLnMrQ= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= +github.com/nats-io/nkeys v0.1.0 h1:qMd4+pRHgdr1nAClu+2h/2a5F2TmKcCzjCDazVgRoX4= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nkeys v0.1.3 h1:6JrEfig+HzTH85yxzhSVbjHRJv9cn0p6n3IngIcM5/k= +github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/nats-io/stan.go v0.5.0/go.mod h1:dYqB+vMN3C2F9pT1FRQpg9eHbjPj6mP0yYuyBNuXHZE= +github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= +github.com/nlopes/slack v0.6.0/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk= +github.com/nrdcg/auroradns v1.0.0/go.mod h1:6JPXKzIRzZzMqtTDgueIhTi6rFf1QvYE/HzqidhOhjw= +github.com/nrdcg/goinwx v0.6.1/go.mod h1:XPiut7enlbEdntAqalBIqcYcTEVhpv/dKWgDCX2SwKQ= +github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw= +github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d h1:x3S6kxmy49zXVVyhcnrFqxvNVCBPb2KZ9hV2RBdS840= +github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d/go.mod h1:IuKpRQcYE1Tfu+oAQqaLisqDeXgjyyltCfsaoYN18NQ= +github.com/nsqio/go-nsq v1.0.7/go.mod h1:XP5zaUs3pqf+Q71EqUJs3HYfBIqfK6G83WQMdNN+Ito= +github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= +github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/oleiade/reflections v1.0.0/go.mod h1:RbATFBbKYkVdqmSFtx13Bb/tVhR0lgOBXunWTZKeL4w= +github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.1 h1:q/mM8GF/n0shIN8SaAZ0V+jnLPzen6WIVZdiwrRlMlo= +github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3 h1:OoxbjfXVZyod1fmWYhI7SEyaD8B00ynP3T+D5GiyHOY= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= +github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= +github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/openzipkin/zipkin-go v0.2.2 h1:nY8Hti+WKaP0cRsSeQ026wU03QsM762XBeCXBb9NAWI= +github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= +github.com/ory/fosite v0.30.1/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKGbN8= +github.com/ory/fosite v0.30.2/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKGbN8= +github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= +github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= +github.com/owncloud/ocis-devldap v0.0.0-20191205143003-809a64c36b1e/go.mod h1:+m1W0stgQP8XEJM0nzTyRG3/u2Fwvv5IPrRrlMhJGPA= +github.com/owncloud/ocis-devldap v0.0.0-20191211134532-3663b31971b9 h1:oRrfYRBlYgjmF/52TX3E7s5x9Ypmh/PmKXdQHY7rcvo= +github.com/owncloud/ocis-devldap v0.0.0-20191211134532-3663b31971b9/go.mod h1:EPl4nVGMcQsP0Ddz24BJlwaLPPfVdgJ8Of2mTDHE4Gg= +github.com/owncloud/ocis-pkg v1.1.0/go.mod h1:EfbeXoe60Me2lB/AWjYl8UFNv4isqCPP6lokd5R7nyM= +github.com/owncloud/ocis-pkg v1.2.0 h1:eP0AOSEXAgiblL2yOpNOmriKhDXN+mai+4belBJRkWU= +github.com/owncloud/ocis-pkg v1.2.0/go.mod h1:EfbeXoe60Me2lB/AWjYl8UFNv4isqCPP6lokd5R7nyM= +github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= +github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= +github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= +github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= +github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4= +github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= +github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.2.6+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= +github.com/pkg/xattr v0.4.1/go.mod h1:W2cGD0TBEus7MkUgv0tNZ9JutLtVO3cXu+IBRuHqnFs= +github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= +github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= +github.com/prometheus/client_golang v1.2.1 h1:JnMpQc6ppsNgw9QPAGF6Dod479itz7lvlsMzzNayLOI= +github.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee h1:iBZPTYkGLvdu6+A5TsMUJQkQX9Ad4aCEnSQtdxPuTCQ= +github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/common v0.7.0 h1:L+1lyG48J1zAQXA3RBX/nG/B3gjlHq0zTt2tlbJLyCY= +github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQlL8= +github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKcyumwBO6qip7RNQ5r77yrssm9bfCowcLEBcU5IA= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/restic/calens v0.1.0/go.mod h1:u67f5msOjCTDYNzOf/NoAUSdmXP03YXPCwIQLYADy5M= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= +github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= +github.com/rs/zerolog v1.17.2 h1:RMRHFw2+wF7LO0QqtELQwo8hqSmqISyCJeFeAAuWcRo= +github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= +github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8= +github.com/sacloud/libsacloud v1.26.1/go.mod h1:79ZwATmHLIFZIMd7sxA3LwzVy/B77uj3LDoToVTxDoQ= +github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= +github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= +github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= +github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.5.0/go.mod h1:AkYRkVJF8TkSG/xet6PzXX+l39KhhXa2pdqVSxnTcn4= +github.com/spf13/viper v1.6.1 h1:VPZzIkznI1YhVMRi6vNFLHSwhnhReBfgTxIPccpfdZk= +github.com/spf13/viper v1.6.1/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= +github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= +github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stvp/tempredis v0.0.0-20181119212430-b82af8480203/go.mod h1:oqN97ltKNihBbwlX8dLpwxCl3+HnXKV/R0e+sRLd9C8= +github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY= +github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc= +github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= +github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4o2HM0m3DZYQWsj6/MEowD57VzoH0v3d7igeFY= +github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= +github.com/uber/jaeger-client-go v2.15.0+incompatible h1:NP3qsSqNxh8VYr956ur1N/1C1PjvOJnJykCzcD5QHbk= +github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-client-go v2.20.1+incompatible h1:HgqpYBng0n7tLJIlyT4kPCIv5XgCsF+kai1NnnrJzEU= +github.com/uber/jaeger-client-go v2.20.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v0.0.0-20170224212429-dcecefd839c4 h1:gKMu1Bf6QINDnvyZuTaACm9ofY+PRh+5vFz4oxBZeF8= +github.com/valyala/fasttemplate v0.0.0-20170224212429-dcecefd839c4/go.mod h1:50wTf68f99/Zt14pr046Tgt3Lp2vLyFZKzbFXTOabXw= +github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA= +github.com/webhippie/protoc-gen-microweb v0.0.0-20191209132523-6ef5e3b3e9cc h1:vfF9ajN07KKFII+xrBIX+gnAbb/D6dK4SDacQVJTdJI= +github.com/webhippie/protoc-gen-microweb v0.0.0-20191209132523-6ef5e3b3e9cc/go.mod h1:hUpH8ouhZm6bNiTOnLOH5hkPy3wTe2AWnulODUGAOiU= +github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= +github.com/xeipuuv/gojsonschema v1.1.0/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.opencensus.io v0.15.0/go.mod h1:UffZAU+4sDEINUGP/B7UfBBkq4fqLu9zXAX7ke6CHW0= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= +go.opencensus.io v0.22.2 h1:75k/FF0Q2YM8QYo07VPddOLBslDt1MZOdEslOHvmzAs= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.5.0 h1:OI5t8sDa1Or+q8AeE+yKeB/SDYioSHAgcVljj9JIETY= +go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.5.1 h1:rsqfU5vBkVknbhUGbAUwQKR2H4ItV8tjJ+6kJX4cxHM= +go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.2.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.3.0 h1:sFPn2GLc3poCkfrpIXGhBD2X0CMIo4Q/zSULXrj/+uc= +go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/multierr v1.4.0 h1:f3WCSC2KzAcBXGATIxAB1E2XuCpNU255wNKZ505qi3E= +go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= +go.uber.org/ratelimit v0.1.0/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.12.0 h1:dySoUQPFBGj6xwjmBzageVL8jGi8uxc6bEmJQjA06bw= +go.uber.org/zap v1.12.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= +gocloud.dev v0.17.0/go.mod h1:tIHTRdR1V5dlD8sTkzYdTGizBJ314BDykJ8KmadEXwo= +gocloud.dev/pubsub/rabbitpubsub v0.17.0/go.mod h1:7o1XYDiIC+b0mmcwJuofsDg08t0DtU2ubfn7C/Uz7Y0= +golang.org/x/crypto v0.0.0-20180621125126-a49355c7e3f8/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= +golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a h1:R/qVym5WAxsZWQqZCwDY/8sdVKV1m1WgU4/S5IRQAzc= +golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd h1:GGJVjV8waZKRHrgwvtH66z9ZGVurTD1MT0n1Bb+q4aM= +golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180921000356-2f5d2388922f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190228165749-92fc7df08ae7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191011234655-491137f69257/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191014212845-da9a3fd4c582/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191109021931-daa7c04131f5/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191204025024-5ee1b9f4859a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181019160139-8e24a49d80f8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181021155630-eda9bb28ed51/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190415081028-16da32be82c5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190620070143-6f217b454f45/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190710143415-6ec70d6a5542/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4 h1:Hynbrlo6LbYI3H1IqXpkVDOcX/3HiPdhVEuyj5a59RM= +golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e h1:9vRrk9YW2BTzLP0VCB9ZDjU4cPqkg+IDWL7XgxA1yxQ= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0 h1:xQwXv67TxFo9nC1GJFyab5eq/5B590r6RlnL/G8Sz7w= +golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190422233926-fe54fb35175b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 h1:hKsoRgsbwY1NafxrwTs+k64bikrLBkAgPir1TNCj3Zs= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191205225056-3393d29bb9fe/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/api v0.3.2/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0 h1:Q3Ui3V3/CVinFWFiW39Iw0kMuVrRzYX0wN6OPFp0lTA= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0 h1:uMf5uLi4eQMRrMKhCplNik4U4H8Z6C1br3zOtAa/aDE= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190620144150-6af8c5fc6601/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115221424-83cc0476cb11/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191205163323-51378566eb59/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216205247-b31c10ee225f h1:0RYv5T9ZdroAqqfM2taEB0nJrArv0X1JpIdgUmY4xg8= +google.golang.org/genproto v0.0.0-20191216205247-b31c10ee225f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= +google.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +gopkg.in/DataDog/dd-trace-go.v1 v1.19.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= +gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= +gopkg.in/bsm/ratelimit.v1 v1.0.0-20160220154919-db14e161995a/go.mod h1:KF9sEfUPAXdG8Oev9e99iLGnl2uJMjc5B+4y3O7x610= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= +gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= +gopkg.in/go-playground/validator.v9 v9.30.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= +gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= +gopkg.in/h2non/gock.v1 v1.0.15/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= +gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= +gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= +gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= +gopkg.in/jcmturner/gokrb5.v7 v7.2.3/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= +gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= +gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= +gopkg.in/ldap.v3 v3.1.0/go.mod h1:dQjCc0R0kfyFjIlWNMH1DORwUASZyDxo2Ry1B51dXaQ= +gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw= +gopkg.in/olivere/elastic.v5 v5.0.82/go.mod h1:uhHoB4o3bvX5sorxBU29rPcmBQdV2Qfg0FBrx5D6pV0= +gopkg.in/redis.v3 v3.6.4/go.mod h1:6XeGv/CrsUFDU9aVbUdNykN7k1zVmoeg83KC9RbQfiU= +gopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.1.9/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= +gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= +gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= +gopkg.in/telegram-bot-api.v4 v4.6.4/go.mod h1:5DpGO5dbumb40px+dXcwCpcjmeHNYLpk0bp3XRNvWDM= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo= +gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +k8s.io/api v0.0.0-20191109101513-0171b7c15da1/go.mod h1:VJq7+38rpM4TSUbRiZX4P5UVAKK2UQpNQLZClkFQkpE= +k8s.io/apimachinery v0.0.0-20191109100837-dffb012825f2/go.mod h1:+6CX7hP4aLfX2sb91JYDMIp0VqDSog2kZu0BHe+lP+s= +k8s.io/apimachinery v0.0.0-20191111054156-6eb29fdf75dc/go.mod h1:+6CX7hP4aLfX2sb91JYDMIp0VqDSog2kZu0BHe+lP+s= +k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= +k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= +k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= +k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= +k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= +k8s.io/utils v0.0.0-20191030222137-2b95a09bc58d/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= +pack.ag/amqp v0.11.2/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= +sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= +sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= diff --git a/pkg/assets/assets.go b/pkg/assets/assets.go new file mode 100644 index 0000000000..be5f6c270e --- /dev/null +++ b/pkg/assets/assets.go @@ -0,0 +1,60 @@ +package assets + +import ( + "net/http" + "os" + "path" + + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-pkg/log" +) + +//go:generate go run github.com/UnnoTed/fileb0x embed.yml + +// assets gets initialized by New and provides the handler. +type assets struct { + logger log.Logger + config *config.Config +} + +// Open just implements the HTTP filesystem interface. +func (a assets) Open(original string) (http.File, error) { + if a.config.Asset.Path != "" { + if stat, err := os.Stat(a.config.Asset.Path); err == nil && stat.IsDir() { + custom := path.Join( + a.config.Asset.Path, + original, + ) + + if _, err := os.Stat(custom); !os.IsNotExist(err) { + f, err := os.Open(custom) + + if err != nil { + return nil, err + } + + return f, nil + } + } else { + a.logger.Warn(). + Str("path", a.config.Asset.Path). + Msg("Assets directory doesn't exist") + } + } + + return FS.OpenFile( + CTX, + original, + os.O_RDONLY, + 0644, + ) +} + +// New returns a new http filesystem to serve assets. +func New(opts ...Option) http.FileSystem { + options := newOptions(opts...) + + return assets{ + config: options.Config, + } +} diff --git a/pkg/assets/dummy.go b/pkg/assets/dummy.go new file mode 100644 index 0000000000..9f1db4bfbd --- /dev/null +++ b/pkg/assets/dummy.go @@ -0,0 +1,9 @@ +package assets + +import ( + // Fake the import to make the dep tree happy. + _ "golang.org/x/net/context" + + // Fake the import to make the dep tree happy. + _ "golang.org/x/net/webdav" +) diff --git a/pkg/assets/embed.go b/pkg/assets/embed.go new file mode 100644 index 0000000000..0d2c4f7b6c --- /dev/null +++ b/pkg/assets/embed.go @@ -0,0 +1,144 @@ +// Code generated by fileb0x at "2019-12-17 13:05:06.070460692 +0100 CET m=+0.000833910" from config file "embed.yml" DO NOT EDIT. +// modification hash(d41d8cd98f00b204e9800998ecf8427e.8058aec596c5fb73022d09bb97af796e) + +package assets + +import ( + "bytes" + "compress/gzip" + "context" + "io" + "net/http" + "os" + "path" + + "golang.org/x/net/webdav" +) + +var ( + // CTX is a context for webdav vfs + CTX = context.Background() + + // FS is a virtual memory file system + FS = webdav.NewMemFS() + + // Handler is used to server files through a http handler + Handler *webdav.Handler + + // HTTP is the http file system + HTTP http.FileSystem = new(HTTPFS) +) + +// HTTPFS implements http.FileSystem +type HTTPFS struct { + // Prefix allows to limit the path of all requests. F.e. a prefix "css" would allow only calls to /css/* + Prefix string +} + +func init() { + err := CTX.Err() + if err != nil { + panic(err) + } + + var f webdav.File + + var rb *bytes.Reader + var r *gzip.Reader + + Handler = &webdav.Handler{ + FileSystem: FS, + LockSystem: webdav.NewMemLS(), + } + +} + +// Open a file +func (hfs *HTTPFS) Open(path string) (http.File, error) { + path = hfs.Prefix + path + + f, err := FS.OpenFile(CTX, path, os.O_RDONLY, 0644) + if err != nil { + return nil, err + } + + return f, nil +} + +// ReadFile is adapTed from ioutil +func ReadFile(path string) ([]byte, error) { + f, err := FS.OpenFile(CTX, path, os.O_RDONLY, 0644) + if err != nil { + return nil, err + } + + buf := bytes.NewBuffer(make([]byte, 0, bytes.MinRead)) + + // If the buffer overflows, we will get bytes.ErrTooLarge. + // Return that as an error. Any other panic remains. + defer func() { + e := recover() + if e == nil { + return + } + if panicErr, ok := e.(error); ok && panicErr == bytes.ErrTooLarge { + err = panicErr + } else { + panic(e) + } + }() + _, err = buf.ReadFrom(f) + return buf.Bytes(), err +} + +// WriteFile is adapTed from ioutil +func WriteFile(filename string, data []byte, perm os.FileMode) error { + f, err := FS.OpenFile(CTX, filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm) + if err != nil { + return err + } + n, err := f.Write(data) + if err == nil && n < len(data) { + err = io.ErrShortWrite + } + if err1 := f.Close(); err == nil { + err = err1 + } + return err +} + +// WalkDirs looks for files in the given dir and returns a list of files in it +// usage for all files in the b0x: WalkDirs("", false) +func WalkDirs(name string, includeDirsInList bool, files ...string) ([]string, error) { + f, err := FS.OpenFile(CTX, name, os.O_RDONLY, 0) + if err != nil { + return nil, err + } + + fileInfos, err := f.Readdir(0) + if err != nil { + return nil, err + } + + err = f.Close() + if err != nil { + return nil, err + } + + for _, info := range fileInfos { + filename := path.Join(name, info.Name()) + + if includeDirsInList || !info.IsDir() { + files = append(files, filename) + } + + if info.IsDir() { + files, err = WalkDirs(filename, includeDirsInList, files...) + if err != nil { + return nil, err + } + } + } + + return files, nil +} diff --git a/pkg/assets/embed.yml b/pkg/assets/embed.yml new file mode 100644 index 0000000000..6dcfc266a9 --- /dev/null +++ b/pkg/assets/embed.yml @@ -0,0 +1,17 @@ +--- +pkg: "assets" +dest: "." +output: "embed.go" +fmt: true +noprefix: true + +compression: + compress: true + +custom: + - files: + - "../../assets/" + base: "../../assets/" + prefix: "" + +... diff --git a/pkg/assets/option.go b/pkg/assets/option.go new file mode 100644 index 0000000000..a7af5ca21d --- /dev/null +++ b/pkg/assets/option.go @@ -0,0 +1,40 @@ +package assets + +import ( + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/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 + 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 + } +} + +// 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/pkg/command/authprovider.go b/pkg/command/authprovider.go new file mode 100644 index 0000000000..ef390ea814 --- /dev/null +++ b/pkg/command/authprovider.go @@ -0,0 +1,175 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// AuthProvider is the entrypoint for the authprovider command. +func AuthProvider(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "authprovider", + Usage: "Start authprovider server", + Flags: flagset.ServerWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + // TODO Flags have to be injected all the way down to the go-micro service + { + + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.MaxCPUs, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.GRPC.Network, + "address": cfg.Reva.GRPC.Addr, + "enabled_services": []string{"authprovider"}, + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + "skip_methods": []string{ + // we need to allow calls that happen during authentication + "/cs3.authproviderv0alpha.AuthProviderService/Authenticate", + "/cs3.userproviderv0alpha.UserProviderService/GetUser", + }, + }, + }, + "services": map[string]interface{}{ + "authprovider": map[string]interface{}{ + "auth_manager": "oidc", + "auth_managers": map[string]interface{}{ + "oidc": map[string]interface{}{ + "provider": cfg.AuthProvider.Provider, + "insecure": cfg.AuthProvider.Insecure, + }, + }, + }, + }, + }, + } + // TODO merge configs for the same address + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", "authprovider"). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", "debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/health.go b/pkg/command/health.go new file mode 100644 index 0000000000..546d1084f2 --- /dev/null +++ b/pkg/command/health.go @@ -0,0 +1,49 @@ +package command + +import ( + "fmt" + "net/http" + + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" +) + +// Health is the entrypoint for the health command. +func Health(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "health", + Usage: "Check health status", + Flags: flagset.HealthWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + 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 != 200 { + 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/pkg/command/legacy.go b/pkg/command/legacy.go new file mode 100644 index 0000000000..78bd8766ea --- /dev/null +++ b/pkg/command/legacy.go @@ -0,0 +1,453 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// Legacy is the entrypoint for the legacy command. +func Legacy(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "legacy", + Usage: "Start legacy server mimicking oc10", + Flags: flagset.ServerWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + ) + + defer cancel() + + // Flags have to be injected all the way down to the go-micro service + { + + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": cfg.Tracing.Service, + }, + "log": map[string]interface{}{ + "level": cfg.Reva.LogLevel, + //TODO mode": ""console" # "console" or "json" + //TODO output": ""./standalone.log" + }, + "http": map[string]interface{}{ + "network": cfg.Reva.HTTP.Network, + "address": cfg.Reva.HTTP.Addr, + "enabled_services": []string{ + "dataprovider", + "ocdav", + "prometheus", + "wellknown", + "oidcprovider", + "ocs", + }, + "enabled_middlewares": []string{ + //"cors", + "auth", + }, + "middlewares": map[string]interface{}{ + "auth": map[string]interface{}{ + "gateway": cfg.Reva.GRPC.Addr, + "auth_type": "oidc", + "credential_strategy": "oidc", + "token_strategy": "header", + "token_writer": "header", + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + "skip_methods": []string{ + "/favicon.ico", + "/status.php", + "/oauth2", + "/oauth2/auth", + "/oauth2/token", + // TODO protect the introspection endpoint from external requests. + // should only be reachable by internal services, which is why the + // oidc-provider.toml has clientid and secret that are used for a basic auth + //"/oauth2/introspect", // no longer used, oidc auth checks access token using the userinfo endpoint + "/oauth2/userinfo", + "/oauth2/sessions", + "/.well-known/openid-configuration", + "/metrics", // for prometheus metrics + }, + }, + }, + "services": map[string]interface{}{ + "oidcprovider": map[string]interface{}{ + "prefix": "oauth2", + "gateway": cfg.Reva.GRPC.Addr, + "auth_type": "basic", + "issuer": cfg.Reva.HTTP.Addr, + "clients": map[string]interface{}{ + "phoenix": map[string]interface{}{ + "id": "phoenix", + // use ocis port range for phoenix + // TODO should use the micro / ocis http gateway, but then it would no longer be able to run standalone + // IMO the ports should be fetched from the ocis registry anyway + "redirect_uris": []string{"http://localhost:9100/oidc-callback.html", "http://localhost:9100/"}, + "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, + "response_types": []string{"code"}, // use authorization code flow, see https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead for details + "scopes": []string{"openid", "profile", "email", "offline"}, + "public": true, // force PKCS for public clients + }, + "cli": map[string]interface{}{ + "id": "cli", + "client_secret": "$2a$10$IxMdI6d.LIRZPpSfEwNoeu4rY3FhDREsxFJXikcgdRRAStxUlsuEO", // = "foobar" + // use hardcoded port credentials for cli + "redirect_uris": []string{"http://localhost:18080/callback"}, + "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, + "response_types": []string{"code"}, // use authorization code flow, see https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead for details + "scopes": []string{"openid", "profile", "email", "offline"}, + }, + }, + }, + "dataprovider": map[string]interface{}{ + "driver": "owncloud", + "prefix": "data", + "tmp_folder": "/var/tmp/", + "drivers": map[string]interface{}{ + "owncloud": map[string]interface{}{ + "datadirectory": "/var/tmp/reva/data", + }, + }, + }, + "ocdav": map[string]interface{}{ + "prefix": "", + "chunk_folder": "/var/tmp/revad/chunks", + "gateway": cfg.Reva.GRPC.Addr, + }, + "ocs": map[string]interface{}{ + "gateway": cfg.Reva.GRPC.Addr, + "config": map[string]interface{}{ + "version": "1.8", + "website": "ocis", + "host": cfg.Reva.HTTP.Addr, // TODO should be read from registry + "contact": "admin@localhost", + "ssl": "false", + }, + "capabilities": map[string]interface{}{ + "capabilities": map[string]interface{}{ + "core": map[string]interface{}{ + "poll_interval": 60, + "webdav_root": "remote.php/webdav", + "status": map[string]interface{}{ + "installed": true, + "maintenance": false, + "needsDbUpgrade": false, + "version": "10.0.11.5", + "versionstring": "10.0.11", + "edition": "community", + "productname": "reva", + "hostname": "", + }, + }, + "checksums": map[string]interface{}{ + "supported_types": []string{"SHA256"}, + "preferred_upload_type": "SHA256", + }, + "files": map[string]interface{}{ + "private_links": false, + "bigfilechunking": false, + "blacklisted_files": []string{}, + "undelete": true, + "versioning": true, + }, + "dav": map[string]interface{}{ + "chunking": "1.0", + }, + "files_sharing": map[string]interface{}{ + "api_enabled": true, + "resharing": true, + "group_sharing": true, + "auto_accept_share": true, + "share_with_group_members_only": true, + "share_with_membership_groups_only": true, + "default_permissions": 22, + "search_min_length": 3, + "public": map[string]interface{}{ + "enabled": true, + "send_mail": true, + "social_share": true, + "upload": true, + "multiple": true, + "supports_upload_only": true, + "password": map[string]interface{}{ + "enforced": true, + "enforced_for": map[string]interface{}{ + "read_only": true, + "read_write": true, + "upload_only": true, + }, + }, + "expire_date": map[string]interface{}{ + "enabled": true, + }, + }, + "user": map[string]interface{}{ + "send_mail": true, + }, + "user_enumeration": map[string]interface{}{ + "enabled": true, + "group_members_only": true, + }, + "federation": map[string]interface{}{ + "outgoing": true, + "incoming": true, + }, + }, + "notifications": map[string]interface{}{ + "endpoints": []string{"list", "get", "delete"}, + }, + }, + "version": map[string]interface{}{ + "edition": "ocis", + "major": 11, + "minor": 0, + "micro": 0, + "string": "11.0.0", + }, + }, + }, + }, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.GRPC.Network, + "address": cfg.Reva.GRPC.Addr, + "enabled_services": []string{ + "authprovider", // provides basic auth + "storageprovider", // handles storage metadata + "usershareprovider", // provides user shares + "userprovider", // provides user matadata (used to look up email, displayname etc after a login) + "preferences", // provides user preferences + "gateway", // to lookup services and authenticate requests + "authregistry", // used by the gateway to look up auth providers + "storageregistry", // used by the gateway to look up storage providers + }, + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + "skip_methods": []string{ + // we need to allow calls that happen during authentication + "/cs3.gatewayv0alpha.GatewayService/Authenticate", + "/cs3.gatewayv0alpha.GatewayService/WhoAmI", + "/cs3.gatewayv0alpha.GatewayService/GetUser", + "/cs3.gatewayv0alpha.GatewayService/ListAuthProviders", + "/cs3.authregistryv0alpha.AuthRegistryService/ListAuthProviders", + "/cs3.authregistryv0alpha.AuthRegistryService/GetAuthProvider", + "/cs3.authproviderv0alpha.AuthProviderService/Authenticate", + "/cs3.userproviderv0alpha.UserProviderService/GetUser", + }, + }, + }, + "services": map[string]interface{}{ + "gateway": map[string]interface{}{ + "authregistrysvc": cfg.Reva.GRPC.Addr, + "storageregistrysvc": cfg.Reva.GRPC.Addr, + "appregistrysvc": cfg.Reva.GRPC.Addr, + "preferencessvc": cfg.Reva.GRPC.Addr, + "usershareprovidersvc": cfg.Reva.GRPC.Addr, + "publicshareprovidersvc": cfg.Reva.GRPC.Addr, + "ocmshareprovidersvc": cfg.Reva.GRPC.Addr, + "userprovidersvc": cfg.Reva.GRPC.Addr, + "commit_share_to_storage_grant": true, + "datagateway": "http://" + cfg.Reva.HTTP.Addr + "/data", + "transfer_shared_secret": "replace-me-with-a-transfer-secret", + "transfer_expires": 6, // give it a moment + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + "authregistry": map[string]interface{}{ + "driver": "static", + "drivers": map[string]interface{}{ + "static": map[string]interface{}{ + "rules": map[string]interface{}{ + //"basic": "localhost:9999", + "oidc": cfg.Reva.GRPC.Addr, + }, + }, + }, + }, + "storageregistry": map[string]interface{}{ + "driver": "static", + "drivers": map[string]interface{}{ + "static": map[string]interface{}{ + "rules": map[string]interface{}{ + "/": cfg.Reva.GRPC.Addr, + "123e4567-e89b-12d3-a456-426655440000": cfg.Reva.GRPC.Addr, + }, + }, + }, + }, + "authprovider": map[string]interface{}{ + "auth_manager": "oidc", + "auth_managers": map[string]interface{}{ + "oidc": map[string]interface{}{ + "provider": cfg.AuthProvider.Provider, + "insecure": cfg.AuthProvider.Insecure, + }, + }, + "userprovidersvc": cfg.Reva.GRPC.Addr, + }, + "userprovider": map[string]interface{}{ + "driver": "demo", // TODO use graph api + /* + "drivers": map[string]interface{}{ + "graph": map[string]interface{}{ + "provider": cfg.AuthProvider.Provider, + "insecure": cfg.AuthProvider.Insecure, + }, + }, + */ + }, + "usershareprovider": map[string]interface{}{ + "driver": "memory", + }, + "storageprovider": map[string]interface{}{ + "mount_path": "/", + "mount_id": "123e4567-e89b-12d3-a456-426655440000", + "data_server_url": "http://" + cfg.Reva.HTTP.Addr + "/data", + "expose_data_server": true, + "available_checksums": map[string]interface{}{ + "md5": 100, + "unset": 1000, + }, + "driver": "owncloud", + "drivers": map[string]interface{}{ + "owncloud": map[string]interface{}{ + "datadirectory": "/var/tmp/reva/data", + }, + }, + }, + }, + }, + } + gr.Add(func() error { + // TODO micro knows nothing about reva + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", "reva"). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", "debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/root.go b/pkg/command/root.go new file mode 100644 index 0000000000..4395742e59 --- /dev/null +++ b/pkg/command/root.go @@ -0,0 +1,105 @@ +package command + +import ( + "os" + "strings" + + "github.com/micro/cli" + "github.com/owncloud/ocis-pkg/log" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/version" + "github.com/spf13/viper" +) + +// Execute is the entry point for the ocis-reva command. +func Execute() error { + cfg := config.New() + + app := &cli.App{ + Name: "ocis-reva", + Version: version.String, + Usage: "Example service for Reva/oCIS", + Compiled: version.Compiled(), + + Authors: []cli.Author{ + { + Name: "ownCloud GmbH", + Email: "support@owncloud.com", + }, + }, + + Flags: flagset.RootWithConfig(cfg), + + Before: func(c *cli.Context) error { + logger := NewLogger(cfg) + + viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_")) + viper.SetEnvPrefix("REVA") + viper.AutomaticEnv() + + if c.IsSet("config-file") { + viper.SetConfigFile(c.String("config-file")) + } else { + viper.SetConfigName("reva") + + viper.AddConfigPath("/etc/ocis") + viper.AddConfigPath("$HOME/.ocis") + viper.AddConfigPath("./config") + } + + if err := viper.ReadInConfig(); err != nil { + switch err.(type) { + case viper.ConfigFileNotFoundError: + logger.Info(). + Msg("Continue without config") + case viper.UnsupportedConfigError: + logger.Fatal(). + Err(err). + Msg("Unsupported config type") + default: + logger.Fatal(). + Err(err). + Msg("Failed to read config") + } + } + + if err := viper.Unmarshal(&cfg); err != nil { + logger.Fatal(). + Err(err). + Msg("Failed to parse config") + } + + return nil + }, + + Commands: []cli.Command{ + Server(cfg), + Legacy(cfg), + AuthProvider(cfg), + Health(cfg), + }, + } + + cli.HelpFlag = &cli.BoolFlag{ + Name: "help,h", + Usage: "Show the help", + } + + cli.VersionFlag = &cli.BoolFlag{ + Name: "version,v", + Usage: "Print the version", + } + + return app.Run(os.Args) +} + +// NewLogger initializes a service-specific logger instance. +func NewLogger(cfg *config.Config) log.Logger { + return log.NewLogger( + log.Name("reva"), + log.Level(cfg.Log.Level), + log.Pretty(cfg.Log.Pretty), + log.Color(cfg.Log.Color), + ) +} diff --git a/pkg/command/server.go b/pkg/command/server.go new file mode 100644 index 0000000000..1eadc9cb42 --- /dev/null +++ b/pkg/command/server.go @@ -0,0 +1,312 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// Server is the entrypoint for the server command. +func Server(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "server", + Usage: "Start integrated server", + Flags: flagset.ServerWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + ) + + defer cancel() + + // Flags have to be injected all the way down to the go-micro service + { + + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": cfg.Tracing.Service, + }, + "log": map[string]interface{}{ + "level": cfg.Reva.LogLevel, + //TODO mode = "console" # "console" or "json" + //TODO output = "./standalone.log" + }, + "http": map[string]interface{}{ + "network": cfg.Reva.HTTP.Network, + "address": cfg.Reva.HTTP.Addr, + "enabled_services": []string{ + "dataprovider", + "prometheus", + }, + "enabled_middlewares": []string{ + //"cors", + "auth", + }, + "middlewares": map[string]interface{}{ + "auth": map[string]interface{}{ + "gateway": cfg.Reva.GRPC.Addr, + "auth_type": "oidc", + "credential_strategy": "oidc", + "token_strategy": "header", + "token_writer": "header", + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + "skip_methods": []string{ + "/metrics", // for prometheus metrics + }, + }, + }, + "services": map[string]interface{}{ + "dataprovider": map[string]interface{}{ + "driver": "local", + "prefix": "data", + "tmp_folder": "/var/tmp/", + "drivers": map[string]interface{}{ + "local": map[string]interface{}{ + "root": "/var/tmp/reva/data", + }, + }, + }, + }, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.GRPC.Network, + "address": cfg.Reva.GRPC.Addr, + "enabled_services": []string{ + "authprovider", // provides basic auth + "storageprovider", // handles storage metadata + "usershareprovider", // provides user shares + "userprovider", // provides user matadata (used to look up email, displayname etc after a login) + "preferences", // provides user preferences + "gateway", // to lookup services and authenticate requests + "authregistry", // used by the gateway to look up auth providers + "storageregistry", // used by the gateway to look up storage providers + }, + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + "skip_methods": []string{ + // we need to allow calls that happen during authentication + "/cs3.gatewayv0alpha.GatewayService/Authenticate", + "/cs3.gatewayv0alpha.GatewayService/WhoAmI", + "/cs3.gatewayv0alpha.GatewayService/GetUser", + "/cs3.gatewayv0alpha.GatewayService/ListAuthProviders", + "/cs3.authregistryv0alpha.AuthRegistryService/ListAuthProviders", + "/cs3.authregistryv0alpha.AuthRegistryService/GetAuthProvider", + "/cs3.authproviderv0alpha.AuthProviderService/Authenticate", + "/cs3.userproviderv0alpha.UserProviderService/GetUser", + }, + }, + }, + "services": map[string]interface{}{ + "gateway": map[string]interface{}{ + "authregistrysvc": cfg.Reva.GRPC.Addr, + "storageregistrysvc": cfg.Reva.GRPC.Addr, + "appregistrysvc": cfg.Reva.GRPC.Addr, + "preferencessvc": cfg.Reva.GRPC.Addr, + "usershareprovidersvc": cfg.Reva.GRPC.Addr, + "publicshareprovidersvc": cfg.Reva.GRPC.Addr, + "ocmshareprovidersvc": cfg.Reva.GRPC.Addr, + "userprovidersvc": cfg.Reva.GRPC.Addr, + "commit_share_to_storage_grant": true, + "datagateway": "http://" + cfg.Reva.HTTP.Addr + "/data", + "transfer_shared_secret": "replace-me-with-a-transfer-secret", + "transfer_expires": 6, // give it a moment + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + "authregistry": map[string]interface{}{ + "driver": "static", + "drivers": map[string]interface{}{ + "static": map[string]interface{}{ + "rules": map[string]interface{}{ + //"basic": "localhost:9999", + "oidc": cfg.Reva.GRPC.Addr, + }, + }, + }, + }, + "storageregistry": map[string]interface{}{ + "driver": "static", + "drivers": map[string]interface{}{ + "static": map[string]interface{}{ + "rules": map[string]interface{}{ + "/": cfg.Reva.GRPC.Addr, + "123e4567-e89b-12d3-a456-426655440000": cfg.Reva.GRPC.Addr, + }, + }, + }, + }, + "authprovider": map[string]interface{}{ + "auth_manager": "oidc", + "auth_managers": map[string]interface{}{ + "oidc": map[string]interface{}{ + "provider": cfg.AuthProvider.Provider, + "insecure": cfg.AuthProvider.Insecure, + }, + }, + "userprovidersvc": cfg.Reva.GRPC.Addr, + }, + "userprovider": map[string]interface{}{ + "driver": "demo", // TODO use graph api + /* + "drivers": map[string]interface{}{ + "graph": map[string]interface{}{ + "provider": cfg.AuthProvider.Provider, + "insecure": cfg.AuthProvider.Insecure, + }, + }, + */ + }, + "usershareprovider": map[string]interface{}{ + "driver": "memory", + }, + "storageprovider": map[string]interface{}{ + "mount_path": "/", + "mount_id": "123e4567-e89b-12d3-a456-426655440000", + "data_server_url": "http://" + cfg.Reva.HTTP.Addr + "/data", + "expose_data_server": true, + "available_checksums": map[string]interface{}{ + "md5": 100, + "unset": 1000, + }, + "driver": "local", + "drivers": map[string]interface{}{ + "local": map[string]interface{}{ + "root": "/var/tmp/reva/data", + }, + }, + }, + }, + }, + } + gr.Add(func() error { + // TODO micro knows nothing about reva + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", "reva"). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", "debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/config/config.go b/pkg/config/config.go new file mode 100644 index 0000000000..11e28c60d7 --- /dev/null +++ b/pkg/config/config.go @@ -0,0 +1,73 @@ +package config + +// Log defines the available logging configuration. +type Log struct { + Level string + Pretty bool + Color bool +} + +// Debug defines the available debug configuration. +type Debug struct { + Addr string + Token string + Pprof bool + Zpages bool +} + +type HTTP struct { + Network string + Addr string + Root string // TODO do we need the http root path +} +type GRPC struct { + Network string + Addr string +} + +// Reva defines the available reva configuration. +type Reva struct { + // MaxCPUs can be a number or a percentage + MaxCPUs string + LogLevel string + // Network can be tcp, udp or unix + HTTP HTTP + GRPC GRPC + JWTSecret string +} + +// AuthProvider defines the available authprovider configuration. +type AuthProvider struct { + Provider string + Insecure bool +} + +// Tracing defines the available tracing configuration. +type Tracing struct { + Enabled bool + Type string + Endpoint string + Collector string + Service string +} + +// Asset defines the available asset configuration. +type Asset struct { + Path string +} + +// Config combines all available configuration parts. +type Config struct { + File string + Log Log + Debug Debug + Reva Reva + AuthProvider AuthProvider + Tracing Tracing + Asset Asset +} + +// New initializes a new configuration with or without defaults. +func New() *Config { + return &Config{} +} diff --git a/pkg/flagset/flagset.go b/pkg/flagset/flagset.go new file mode 100644 index 0000000000..94755b0e18 --- /dev/null +++ b/pkg/flagset/flagset.go @@ -0,0 +1,193 @@ +package flagset + +import ( + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// RootWithConfig applies cfg to the root flagset +func RootWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "config-file", + Value: "", + Usage: "Path to config file", + EnvVar: "REVA_CONFIG_FILE", + Destination: &cfg.File, + }, + &cli.StringFlag{ + Name: "log-level", + Value: "info", + Usage: "Set logging level", + EnvVar: "REVA_LOG_LEVEL", + Destination: &cfg.Log.Level, + }, + &cli.BoolTFlag{ + Name: "log-pretty", + Usage: "Enable pretty logging", + EnvVar: "REVA_LOG_PRETTY", + Destination: &cfg.Log.Pretty, + }, + &cli.BoolTFlag{ + Name: "log-color", + Usage: "Enable colored logging", + EnvVar: "REVA_LOG_COLOR", + Destination: &cfg.Log.Color, + }, + } +} + +// HealthWithConfig applies cfg to the root flagset +func HealthWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9109", + Usage: "Address to debug endpoint", + EnvVar: "REVA_DEBUG_ADDR", + Destination: &cfg.Debug.Addr, + }, + } +} + +// ServerWithConfig applies cfg to the root flagset +func ServerWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9139", + Usage: "Address to bind debug server", + EnvVar: "REVA_DEBUG_ADDR", + Destination: &cfg.Debug.Addr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + &cli.StringFlag{ + Name: "reva-http-network", + Value: "tcp", + Usage: "Network to use for the reva http server, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_HTTP_NETWORK", + Destination: &cfg.Reva.HTTP.Network, + }, + &cli.StringFlag{ + Name: "reva-http-addr", + Value: "0.0.0.0:9135", + Usage: "Address to bind http port of reva server", + EnvVar: "REVA_HTTP_ADDR", + Destination: &cfg.Reva.HTTP.Addr, + }, + &cli.StringFlag{ + Name: "reva-http-root", + Value: "/", + Usage: "Root path of reva server", + EnvVar: "REVA__HTTP_ROOT", + Destination: &cfg.Reva.HTTP.Root, + }, + &cli.StringFlag{ + Name: "reva-grpc-network", + Value: "tcp", + Usage: "Network to use for the reva grpc server, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_GRPC_NETWORK", + Destination: &cfg.Reva.GRPC.Network, + }, + &cli.StringFlag{ + Name: "reva-grpc-addr", + Value: "0.0.0.0:9136", + Usage: "Address to bind grpc port of reva server", + EnvVar: "REVA_GRPC_ADDR", + Destination: &cfg.Reva.GRPC.Addr, + }, + &cli.StringFlag{ + Name: "reva-max-cpus", + Value: "2", + Usage: "Max number of cpus for reva server", + EnvVar: "REVA_MAX_CPUS", + Destination: &cfg.Reva.MaxCPUs, + }, + &cli.StringFlag{ + Name: "reva-log-level", + Value: "info", + Usage: "Log level for reva server", + EnvVar: "REVA_LOG_LEVEL", + Destination: &cfg.Reva.LogLevel, + }, + &cli.StringFlag{ + Name: "reva-jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + &cli.StringFlag{ + Name: "reva-authprovider-provider", + Value: "", + Usage: "URL of the OpenID Connect Provider", + EnvVar: "REVA_AUTHPROVIDER_PROVIDER", + Destination: &cfg.AuthProvider.Provider, + }, + &cli.BoolFlag{ + Name: "reva-authprovider-insecure", + Usage: "Allow insecure certificates", + EnvVar: "REVA_AUTHPROVIDER_INSECURE", + Destination: &cfg.AuthProvider.Insecure, + }, + &cli.StringFlag{ + Name: "asset-path", + Value: "", + Usage: "Path to custom assets", + EnvVar: "REVA_ASSET_PATH", + Destination: &cfg.Asset.Path, + }, + } +} diff --git a/pkg/server/debug/option.go b/pkg/server/debug/option.go new file mode 100644 index 0000000000..f728caac68 --- /dev/null +++ b/pkg/server/debug/option.go @@ -0,0 +1,50 @@ +package debug + +import ( + "context" + + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/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/pkg/server/debug/server.go b/pkg/server/debug/server.go new file mode 100644 index 0000000000..91c1f8deca --- /dev/null +++ b/pkg/server/debug/server.go @@ -0,0 +1,51 @@ +package debug + +import ( + "io" + "net/http" + + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/version" + "github.com/owncloud/ocis-pkg/service/debug" +) + +// 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("hello"), + 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(tboerger): check if services are up and running + + io.WriteString(w, http.StatusText(http.StatusOK)) + } +} + +// 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(tboerger): check if services are up and running + + io.WriteString(w, http.StatusText(http.StatusOK)) + } +} diff --git a/pkg/version/version.go b/pkg/version/version.go new file mode 100644 index 0000000000..81e81815f4 --- /dev/null +++ b/pkg/version/version.go @@ -0,0 +1,19 @@ +package version + +import ( + "time" +) + +var ( + // String gets defined by the build system. + String = "0.0.0" + + // Date indicates the build date. + Date = "00000000" +) + +// Compiled returns the compile time of this service. +func Compiled() time.Time { + t, _ := time.Parse("20060102", Date) + return t +} diff --git a/reflex.conf b/reflex.conf new file mode 100644 index 0000000000..1035f881c5 --- /dev/null +++ b/reflex.conf @@ -0,0 +1,5 @@ +# backend +-r '^(cmd|pkg)/.*\.go$' -R '^node_modules/' -s -- sh -c 'make bin/ocis-reva-debug && bin/ocis-reva-debug --log-level debug server --debug-pprof --debug-zpages --asset-path assets/' + +# frontend +-r '^ui/.*\.(vue|js)$' -R '^node_modules/' -- sh -c 'yarn build' From 23c68fce67da623bca5e387ec403974d7f93eaa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 19 Dec 2019 12:37:02 +0100 Subject: [PATCH 002/346] allow passing in an arbitrary reva configs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/command/server.go | 344 ++++++++++++++++++++++-------------------- pkg/config/config.go | 2 + 2 files changed, 182 insertions(+), 164 deletions(-) diff --git a/pkg/command/server.go b/pkg/command/server.go index 1eadc9cb42..8b3f45e5f2 100644 --- a/pkg/command/server.go +++ b/pkg/command/server.go @@ -5,6 +5,7 @@ import ( "os" "os/signal" "path" + "sync" "time" "github.com/cs3org/reva/cmd/revad/runtime" @@ -63,187 +64,202 @@ func Server(cfg *config.Config) cli.Command { // Flags have to be injected all the way down to the go-micro service { - uuid := uuid.Must(uuid.NewV4()) - pidFile := path.Join(os.TempDir(), "revad-"+uuid.String()+".pid") - - rcfg := map[string]interface{}{ - "core": map[string]interface{}{ - "max_cpus": cfg.Reva.MaxCPUs, - "tracing_enabled": cfg.Tracing.Enabled, - "tracing_endpoint": cfg.Tracing.Endpoint, - "tracing_collector": cfg.Tracing.Collector, - "tracing_service_name": cfg.Tracing.Service, - }, - "log": map[string]interface{}{ - "level": cfg.Reva.LogLevel, - //TODO mode = "console" # "console" or "json" - //TODO output = "./standalone.log" - }, - "http": map[string]interface{}{ - "network": cfg.Reva.HTTP.Network, - "address": cfg.Reva.HTTP.Addr, - "enabled_services": []string{ - "dataprovider", - "prometheus", - }, - "enabled_middlewares": []string{ - //"cors", - "auth", - }, - "middlewares": map[string]interface{}{ - "auth": map[string]interface{}{ - "gateway": cfg.Reva.GRPC.Addr, - "auth_type": "oidc", - "credential_strategy": "oidc", - "token_strategy": "header", - "token_writer": "header", - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, + if len(cfg.Reva.Configs) < 1 { + cfg.Reva.Configs = map[string]interface{}{ + "default": map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": cfg.Tracing.Service, + }, + "log": map[string]interface{}{ + "level": cfg.Reva.LogLevel, + //TODO mode = "console" # "console" or "json" + //TODO output = "./standalone.log" + }, + "http": map[string]interface{}{ + "network": cfg.Reva.HTTP.Network, + "address": cfg.Reva.HTTP.Addr, + "enabled_services": []string{ + "dataprovider", + "prometheus", + }, + "enabled_middlewares": []string{ + //"cors", + "auth", + }, + "middlewares": map[string]interface{}{ + "auth": map[string]interface{}{ + "gateway": cfg.Reva.GRPC.Addr, + "auth_type": "oidc", + "credential_strategy": "oidc", + "token_strategy": "header", + "token_writer": "header", + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + "skip_methods": []string{ + "/metrics", // for prometheus metrics + }, }, }, - "skip_methods": []string{ - "/metrics", // for prometheus metrics - }, - }, - }, - "services": map[string]interface{}{ - "dataprovider": map[string]interface{}{ - "driver": "local", - "prefix": "data", - "tmp_folder": "/var/tmp/", - "drivers": map[string]interface{}{ - "local": map[string]interface{}{ - "root": "/var/tmp/reva/data", - }, - }, - }, - }, - }, - "grpc": map[string]interface{}{ - "network": cfg.Reva.GRPC.Network, - "address": cfg.Reva.GRPC.Addr, - "enabled_services": []string{ - "authprovider", // provides basic auth - "storageprovider", // handles storage metadata - "usershareprovider", // provides user shares - "userprovider", // provides user matadata (used to look up email, displayname etc after a login) - "preferences", // provides user preferences - "gateway", // to lookup services and authenticate requests - "authregistry", // used by the gateway to look up auth providers - "storageregistry", // used by the gateway to look up storage providers - }, - "interceptors": map[string]interface{}{ - "auth": map[string]interface{}{ - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - "skip_methods": []string{ - // we need to allow calls that happen during authentication - "/cs3.gatewayv0alpha.GatewayService/Authenticate", - "/cs3.gatewayv0alpha.GatewayService/WhoAmI", - "/cs3.gatewayv0alpha.GatewayService/GetUser", - "/cs3.gatewayv0alpha.GatewayService/ListAuthProviders", - "/cs3.authregistryv0alpha.AuthRegistryService/ListAuthProviders", - "/cs3.authregistryv0alpha.AuthRegistryService/GetAuthProvider", - "/cs3.authproviderv0alpha.AuthProviderService/Authenticate", - "/cs3.userproviderv0alpha.UserProviderService/GetUser", - }, - }, - }, - "services": map[string]interface{}{ - "gateway": map[string]interface{}{ - "authregistrysvc": cfg.Reva.GRPC.Addr, - "storageregistrysvc": cfg.Reva.GRPC.Addr, - "appregistrysvc": cfg.Reva.GRPC.Addr, - "preferencessvc": cfg.Reva.GRPC.Addr, - "usershareprovidersvc": cfg.Reva.GRPC.Addr, - "publicshareprovidersvc": cfg.Reva.GRPC.Addr, - "ocmshareprovidersvc": cfg.Reva.GRPC.Addr, - "userprovidersvc": cfg.Reva.GRPC.Addr, - "commit_share_to_storage_grant": true, - "datagateway": "http://" + cfg.Reva.HTTP.Addr + "/data", - "transfer_shared_secret": "replace-me-with-a-transfer-secret", - "transfer_expires": 6, // give it a moment - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - "authregistry": map[string]interface{}{ - "driver": "static", - "drivers": map[string]interface{}{ - "static": map[string]interface{}{ - "rules": map[string]interface{}{ - //"basic": "localhost:9999", - "oidc": cfg.Reva.GRPC.Addr, + "services": map[string]interface{}{ + "dataprovider": map[string]interface{}{ + "driver": "local", + "prefix": "data", + "tmp_folder": "/var/tmp/", + "drivers": map[string]interface{}{ + "local": map[string]interface{}{ + "root": "/var/tmp/reva/data", + }, }, }, }, }, - "storageregistry": map[string]interface{}{ - "driver": "static", - "drivers": map[string]interface{}{ - "static": map[string]interface{}{ - "rules": map[string]interface{}{ - "/": cfg.Reva.GRPC.Addr, - "123e4567-e89b-12d3-a456-426655440000": cfg.Reva.GRPC.Addr, + "grpc": map[string]interface{}{ + "network": cfg.Reva.GRPC.Network, + "address": cfg.Reva.GRPC.Addr, + "enabled_services": []string{ + "authprovider", // provides basic auth + "storageprovider", // handles storage metadata + "usershareprovider", // provides user shares + "userprovider", // provides user matadata (used to look up email, displayname etc after a login) + "preferences", // provides user preferences + "gateway", // to lookup services and authenticate requests + "authregistry", // used by the gateway to look up auth providers + "storageregistry", // used by the gateway to look up storage providers + }, + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + "skip_methods": []string{ + // we need to allow calls that happen during authentication + "/cs3.gatewayv0alpha.GatewayService/Authenticate", + "/cs3.gatewayv0alpha.GatewayService/WhoAmI", + "/cs3.gatewayv0alpha.GatewayService/GetUser", + "/cs3.gatewayv0alpha.GatewayService/ListAuthProviders", + "/cs3.authregistryv0alpha.AuthRegistryService/ListAuthProviders", + "/cs3.authregistryv0alpha.AuthRegistryService/GetAuthProvider", + "/cs3.authproviderv0alpha.AuthProviderService/Authenticate", + "/cs3.userproviderv0alpha.UserProviderService/GetUser", }, }, }, - }, - "authprovider": map[string]interface{}{ - "auth_manager": "oidc", - "auth_managers": map[string]interface{}{ - "oidc": map[string]interface{}{ - "provider": cfg.AuthProvider.Provider, - "insecure": cfg.AuthProvider.Insecure, - }, - }, - "userprovidersvc": cfg.Reva.GRPC.Addr, - }, - "userprovider": map[string]interface{}{ - "driver": "demo", // TODO use graph api - /* - "drivers": map[string]interface{}{ - "graph": map[string]interface{}{ - "provider": cfg.AuthProvider.Provider, - "insecure": cfg.AuthProvider.Insecure, + "services": map[string]interface{}{ + "gateway": map[string]interface{}{ + "authregistrysvc": cfg.Reva.GRPC.Addr, + "storageregistrysvc": cfg.Reva.GRPC.Addr, + "appregistrysvc": cfg.Reva.GRPC.Addr, + "preferencessvc": cfg.Reva.GRPC.Addr, + "usershareprovidersvc": cfg.Reva.GRPC.Addr, + "publicshareprovidersvc": cfg.Reva.GRPC.Addr, + "ocmshareprovidersvc": cfg.Reva.GRPC.Addr, + "userprovidersvc": cfg.Reva.GRPC.Addr, + "commit_share_to_storage_grant": true, + "datagateway": "http://" + cfg.Reva.HTTP.Addr + "/data", + "transfer_shared_secret": "replace-me-with-a-transfer-secret", + "transfer_expires": 6, // give it a moment + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, }, }, - */ - }, - "usershareprovider": map[string]interface{}{ - "driver": "memory", - }, - "storageprovider": map[string]interface{}{ - "mount_path": "/", - "mount_id": "123e4567-e89b-12d3-a456-426655440000", - "data_server_url": "http://" + cfg.Reva.HTTP.Addr + "/data", - "expose_data_server": true, - "available_checksums": map[string]interface{}{ - "md5": 100, - "unset": 1000, - }, - "driver": "local", - "drivers": map[string]interface{}{ - "local": map[string]interface{}{ - "root": "/var/tmp/reva/data", + "authregistry": map[string]interface{}{ + "driver": "static", + "drivers": map[string]interface{}{ + "static": map[string]interface{}{ + "rules": map[string]interface{}{ + //"basic": "localhost:9999", + "oidc": cfg.Reva.GRPC.Addr, + }, + }, + }, + }, + "storageregistry": map[string]interface{}{ + "driver": "static", + "drivers": map[string]interface{}{ + "static": map[string]interface{}{ + "rules": map[string]interface{}{ + "/": cfg.Reva.GRPC.Addr, + "123e4567-e89b-12d3-a456-426655440000": cfg.Reva.GRPC.Addr, + }, + }, + }, + }, + "authprovider": map[string]interface{}{ + "auth_manager": "oidc", + "auth_managers": map[string]interface{}{ + "oidc": map[string]interface{}{ + "provider": cfg.AuthProvider.Provider, + "insecure": cfg.AuthProvider.Insecure, + }, + }, + "userprovidersvc": cfg.Reva.GRPC.Addr, + }, + "userprovider": map[string]interface{}{ + "driver": "demo", // TODO use graph api + /* + "drivers": map[string]interface{}{ + "graph": map[string]interface{}{ + "provider": cfg.AuthProvider.Provider, + "insecure": cfg.AuthProvider.Insecure, + }, + }, + */ + }, + "usershareprovider": map[string]interface{}{ + "driver": "memory", + }, + "storageprovider": map[string]interface{}{ + "mount_path": "/", + "mount_id": "123e4567-e89b-12d3-a456-426655440000", + "data_server_url": "http://" + cfg.Reva.HTTP.Addr + "/data", + "expose_data_server": true, + "available_checksums": map[string]interface{}{ + "md5": 100, + "unset": 1000, + }, + "driver": "local", + "drivers": map[string]interface{}{ + "local": map[string]interface{}{ + "root": "/var/tmp/reva/data", + }, + }, }, }, }, }, - }, + } } gr.Add(func() error { - // TODO micro knows nothing about reva - runtime.Run(rcfg, pidFile) + var wg sync.WaitGroup + for k, conf := range cfg.Reva.Configs { + wg.Add(1) + go func(wg *sync.WaitGroup, config string, c map[string]interface{}) { + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+uuid.String()+".pid") + logger.Info(). + Str("config", config). + Str("server", "reva"). + Msg("Starting server") + // TODO register reva as a service in micro + runtime.Run(c, pidFile) + wg.Done() + }(&wg, k, conf.(map[string]interface{})) + } + wg.Wait() return nil }, func(_ error) { logger.Info(). diff --git a/pkg/config/config.go b/pkg/config/config.go index 11e28c60d7..3eafc1b2b1 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -34,6 +34,8 @@ type Reva struct { HTTP HTTP GRPC GRPC JWTSecret string + // Used to pass in configs from the ocis repo, multiple reva instances can be started with this + Configs map[string]interface{} } // AuthProvider defines the available authprovider configuration. From 67f8d19534f11f62a3c8b829df3c1405d42b57db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Mon, 6 Jan 2020 10:40:58 +0100 Subject: [PATCH 003/346] update reva and dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- go.mod | 28 +++++++------ go.sum | 128 ++++++++------------------------------------------------- 2 files changed, 33 insertions(+), 123 deletions(-) diff --git a/go.mod b/go.mod index 5a6adb2374..6b94f82a4e 100644 --- a/go.mod +++ b/go.mod @@ -3,24 +3,28 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - contrib.go.opencensus.io/exporter/jaeger v0.2.0 - contrib.go.opencensus.io/exporter/ocagent v0.6.0 - contrib.go.opencensus.io/exporter/zipkin v0.1.1 - github.com/UnnoTed/fileb0x v1.1.4 // indirect - github.com/butonic/ldapserver v0.0.0-20191210075802-e693a1c5bba4 // indirect + github.com/cespare/xxhash/v2 v2.1.1 // indirect + github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e // indirect github.com/cs3org/reva v0.0.2-0.20191217083445-dee8d1c71f95 - github.com/go-chi/render v1.0.1 // indirect + github.com/go-log/log v0.2.0 // indirect github.com/gofrs/uuid v3.2.0+incompatible + github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 // indirect github.com/micro/cli v0.2.0 github.com/micro/go-micro v1.18.0 // indirect github.com/oklog/run v1.0.0 - github.com/openzipkin/zipkin-go v0.2.2 - github.com/owncloud/ocis-devldap v0.0.0-20191211134532-3663b31971b9 // indirect github.com/owncloud/ocis-pkg v1.2.0 - github.com/prometheus/client_golang v1.2.1 + github.com/pelletier/go-toml v1.6.0 // indirect + github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee // indirect + github.com/prometheus/procfs v0.0.8 // indirect + github.com/spf13/cast v1.3.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/viper v1.6.1 - github.com/webhippie/protoc-gen-microweb v0.0.0-20191209132523-6ef5e3b3e9cc // indirect - go.opencensus.io v0.22.2 + github.com/uber/jaeger-client-go v2.20.1+incompatible // indirect + golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 // indirect golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 - google.golang.org/genproto v0.0.0-20191216205247-b31c10ee225f // indirect + golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7 // indirect + google.golang.org/api v0.14.0 // indirect + google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb // indirect + gopkg.in/ini.v1 v1.51.1 // indirect + gopkg.in/yaml.v2 v2.2.7 // indirect ) diff --git a/go.sum b/go.sum index 1c47d66580..41544a0af0 100644 --- a/go.sum +++ b/go.sum @@ -9,17 +9,12 @@ cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbf cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= -contrib.go.opencensus.io/exporter/jaeger v0.1.0/go.mod h1:VYianECmuFPwU37O699Vc1GOcy+y8kOsfaxHRImmjbA= contrib.go.opencensus.io/exporter/jaeger v0.2.0 h1:nhTv/Ry3lGmqbJ/JGvCjWxBl5ozRfqo86Ngz59UAlfk= contrib.go.opencensus.io/exporter/jaeger v0.2.0/go.mod h1:ukdzwIYYHgZ7QYtwVFQUjiT28BJHiMhTERo32s6qVgM= contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrLVhN+qmP8BTVvdH2YLs7Gl0= -contrib.go.opencensus.io/exporter/ocagent v0.6.0 h1:Z1n6UAyr0QwM284yUuh5Zd8JlvxUGAhFZcgMJkMPrGM= -contrib.go.opencensus.io/exporter/ocagent v0.6.0/go.mod h1:zmKjrJcdo0aYcVS7bmEeSEBLPA9YJp5bjrofdU3pIXs= contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= -contrib.go.opencensus.io/exporter/zipkin v0.1.1 h1:PR+1zWqY8ceXs1qDQQIlgXe+sdiwCf0n32bH4+Epk8g= -contrib.go.opencensus.io/exporter/zipkin v0.1.1/go.mod h1:GMvdSl3eJ2gapOaLKzTKE3qDgUkJ86k9k3yY2eqwkzc= contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= github.com/Azure/azure-amqp-common-go/v2 v2.1.0/go.mod h1:R8rea+gJRuJR6QxTir/XuEd+YuKoUiazDC/N96FiDEU= @@ -49,8 +44,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20190605020000-c4ba1fdf4d36/go.mod h1:aJ4qN3TfrelA6NZ6AXsXRfmEVaYin3EDbSPJrKS8OXo= -github.com/Jeffail/gabs v1.4.0 h1://5fYRRTq1edjfIrQGvdkcd22pkYUrHZ5YC/H2GJVAo= -github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= @@ -64,8 +57,6 @@ github.com/RoaringBitmap/roaring v0.4.7/go.mod h1:8khRDP4HmeXns4xIj9oGrKSz7XTQiJ github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/sarama v1.24.1/go.mod h1:fGP8eQ6PugKEI0iUETYYtnP6d1pH/bdDMTel1X5ajsU= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/UnnoTed/fileb0x v1.1.4 h1:IUgFzgBipF/ujNx9wZgkrKOF3oltUuXMSoaejrBws+A= -github.com/UnnoTed/fileb0x v1.1.4/go.mod h1:X59xXT18tdNk/D6j+KZySratBsuKJauMtVuJ9cgOiZs= github.com/abbot/go-http-auth v0.4.1-0.20181019201920-860ed7f246ff/go.mod h1:Cz6ARTIzApMJDzh5bRMSUou6UMSp0IEXg9km/ci7TJM= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/akamai/AkamaiOPEN-edgegrid-golang v0.9.0/go.mod h1:zpDJeKyp9ScW4NNrbdr+Eyxvry3ilGPewKoXw3XGN1k= @@ -87,7 +78,6 @@ github.com/anacrolix/sync v0.2.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DC github.com/anacrolix/tagflag v0.0.0-20180109131632-2146c8d41bf0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= github.com/anacrolix/utp v0.0.0-20180219060659-9e0e1d1d0572/go.mod h1:MDwc+vsGEq7RMw6lr2GKOEqjWny5hO5OZXRVNaBJ2Dk= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= @@ -104,7 +94,6 @@ github.com/aws/aws-sdk-go v1.15.27/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZo github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.19.45/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.25.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.25.31/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.26.3 h1:szQdfJcUBAhQT0zZEx4sxoDuWb7iScoucxCiVxDmaBk= github.com/aws/aws-sdk-go v1.26.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= @@ -117,20 +106,12 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/bmatcuk/doublestar v1.1.1 h1:YroD6BJCZBYx06yYFEWvUuKVWQn3vLLQAVmDmvTSaiQ= -github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= github.com/bradfitz/iter v0.0.0-20190303215204-33e6a9893b0c/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= -github.com/butonic/ldapserver v0.0.0-20181029101309-daacf7e8e416/go.mod h1:YDlLfPqM3s1bL6u5ubJqZHGPBKa+nBKJNcI/WzSzdKU= -github.com/butonic/ldapserver v0.0.0-20191209092749-8fb2e7a4a628/go.mod h1:e7mxHN5D0UWtmhNZCWwrJrh7hM7mp0lD5BCkgWX/NR0= -github.com/butonic/ldapserver v0.0.0-20191210075802-e693a1c5bba4 h1:mk17lGdSJ5d9pVQfd8KglybrWY5JVzinbXNaQue4CBQ= -github.com/butonic/ldapserver v0.0.0-20191210075802-e693a1c5bba4/go.mod h1:L8QmErc0NLGLo/G26Drod/D3Wo59GSs3Y07ERAgh84I= -github.com/butonic/zerologr v0.0.0-20191210074216-d798ee237d84 h1:QtNZstjgtfA6J7MwnpJhnDDEQoLWik468l4GttjrRkk= -github.com/butonic/zerologr v0.0.0-20191210074216-d798ee237d84/go.mod h1:Jw3eYm4TLfPMNKzimBDxXceOJhFF7Oix/zd2PTK3UrM= github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= @@ -168,8 +149,6 @@ github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkE github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.17+incompatible h1:f/Z3EoDSx1yjaIjLQGo1diYUlQYSBrrAQ5vP8NjwXwo= github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.18+incompatible h1:Zz1aXgDrFFi1nadh58tA9ktt06cmPTwNNP3dXwIq1lE= -github.com/coreos/etcd v3.3.18+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= @@ -182,11 +161,10 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfc github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMElOWxok= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cs3org/go-cs3apis v0.0.0-20191015062230-f4cde4c589eb/go.mod h1:+SahswLd+p4bLlXXG+UuNiWSgRin4dSQQOgPXCsdiTM= github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83 h1:9bcp1jc6+36XUfuOae/w0BVrbzeVKBp/OqhTfCal40U= github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83/go.mod h1:IsVGyZrOLUQD48JIhlM/xb3Vz6He5o2+W0ZTfUGY+IU= -github.com/cs3org/reva v0.0.1 h1:gGvwdphMmYTaCsZP2brzvJWPcDpExzjSGgYKYZuYQuc= -github.com/cs3org/reva v0.0.1/go.mod h1:+9ZgETsRnsafKeMyDFRljcU2SDYpmV8JLX2vpJHDeIk= +github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e h1:cPcpOoPLdsIV2Bw1xMJCIw4ZAejtQqA6J0U56YHOJeQ= +github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v0.0.2-0.20191217083445-dee8d1c71f95 h1:wrx5iQTS50W4gFDyYfR+kRuVlrSw4oXr22msH+uPjb0= github.com/cs3org/reva v0.0.2-0.20191217083445-dee8d1c71f95/go.mod h1:lwilkLiV0vnGiyypVxDJZUbGjnAzVo0cgDCKxy/eLpw= github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -218,8 +196,8 @@ github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkg github.com/elazarl/goproxy v0.0.0-20181003060214-f58a169a71a5/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= @@ -237,16 +215,12 @@ github.com/fsouza/go-dockerclient v1.4.4/go.mod h1:PrwszSL5fbmsESocROrOGq/NULMXR github.com/fsouza/go-dockerclient v1.6.0/go.mod h1:YWwtNPuL4XTX1SKJQk86cWPmmqwx+4np9qfPbb+znGc= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gizak/termui/v3 v3.1.0 h1:ZZmVDgwHl7gR7elfKf1xc4IudXZ5qqfDh4wExk4Iajc= -github.com/gizak/termui/v3 v3.1.0/go.mod h1:bXQEBkJpzxUAKf0+xq9MSWAvWZlE7c+aidmyFlkYTrY= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= github.com/glycerine/goconvey v0.0.0-20180728074245-46e3a41ad493/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/go-acme/lego/v3 v3.1.0/go.mod h1:074uqt+JS6plx+c9Xaiz6+L+GBb+7itGtzfcDM2AhEE= github.com/go-chi/chi v4.0.2+incompatible h1:maB6vn6FqCxrpz4FqWdh4+lwpyZIQS7YEAUcHlgXVRs= github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= -github.com/go-chi/render v1.0.1 h1:4/5tis2cKaNdnv9zFLfXzcquC9HbeZgCnxGnKrltBS8= -github.com/go-chi/render v1.0.1/go.mod h1:pq4Rr7HbnsdaeHagklXub+p6Wd16Af5l9koip1OvJns= github.com/go-cmd/cmd v1.0.5/go.mod h1:y8q8qlK5wQibcw63djSl/ntiHUHXHGdCkPk0j4QeW4s= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= @@ -256,12 +230,12 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= github.com/go-log/log v0.1.0 h1:wudGTNsiGzrD5ZjgIkVZ517ugi2XRe9Q/xRCzwEO4/U= github.com/go-log/log v0.1.0/go.mod h1:4mBwpdRMFLiuXZDCwU2lKQFsoSCo72j3HqBK9d81N2M= +github.com/go-log/log v0.2.0 h1:z8i91GBudxD5L3RmF0KVpetCbcGWAV7q1Tw1eRwQM9Q= +github.com/go-log/log v0.2.0/go.mod h1:xzCnwajcues/6w7lne3yK2QU7DBPW7kqbgPGG5AF65U= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v0.1.0 h1:M1Tv3VzNlEHg6uyACnRdtrploV2P7wZqH8BoQMtz0cg= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/stdr v0.0.0-20190808155957-db4f46c40425 h1:ZFZxbJwJtEQSYhLAgDHTkSzYX7ya30gsDAeKMJ9eUB8= -github.com/go-logr/stdr v0.0.0-20190808155957-db4f46c40425/go.mod h1:NO1vneyJDqKVgJYnxhwXWWmQPOvNM391IG3H8ql3jiA= github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= @@ -281,14 +255,11 @@ github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr6 github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I= github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -299,7 +270,6 @@ github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc h1:55rEp52jU6bky github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 h1:uHTyIjqVhYRhLbJ8nIiOJHkEZZ+5YoOsAbD3sk82NiE= github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= @@ -365,9 +335,6 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.4/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.12.1 h1:zCy2xE9ablevUOrUZc3Dl72Dt+ya2FNAvC2yLYMHzi4= -github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI= github.com/hako/branca v0.0.0-20180808000428-10b799466ada/go.mod h1:tOPn4gvKEUWqIJNE+zpTeTALaRAXnrRqqSnPlO3VpEo= github.com/hashicorp/consul/api v1.2.0/go.mod h1:1SIkFYi2ZTXUE5Kgt179+4hH33djo11+0Eo2XgTAtkw= @@ -440,8 +407,6 @@ github.com/juju/ratelimit v1.0.1/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSg github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/justinas/alice v1.2.0 h1:+MHSA/vccVCF4Uq37S42jwlkvI2Xzl7zTPCN5BnZNVo= github.com/justinas/alice v1.2.0/go.mod h1:fN5HRH/reO/zrUflLfTN43t3vXvKzvZIENsNEe7i7qA= -github.com/karrick/godirwalk v1.7.8 h1:VfG72pyIxgtC7+3X9CMHI0AOl4LwyRAg98WAgsvffi8= -github.com/karrick/godirwalk v1.7.8/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= @@ -461,26 +426,15 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= -github.com/labstack/echo v3.2.1+incompatible h1:J2M7YArHx4gi8p/3fDw8tX19SXhBCoRpviyAZSN3I88= -github.com/labstack/echo v3.2.1+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s= -github.com/labstack/gommon v0.2.7 h1:2qOPq/twXDrQ6ooBGrn3mrmVOC+biLlatwgIu8lbzRM= -github.com/labstack/gommon v0.2.7/go.mod h1:/tj9csK2iPSBvn+3NLM9e52usepMtrd5ilFYA+wQNJ4= github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA= github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= -github.com/lor00x/goldap v0.0.0-20180618054307-a546dffdd1a3 h1:wIONC+HMNRqmWBjuMxhatuSzHaljStc4gjDeKycxy0A= -github.com/lor00x/goldap v0.0.0-20180618054307-a546dffdd1a3/go.mod h1:37YR9jabpiIxsb8X9VCIx8qFOjTDIIrIHHODa8C4gz0= github.com/lucas-clemente/quic-go v0.12.1/go.mod h1:UXJJPE4RfFef/xPO5wQm0tITK8gNfqwTxjbE7s3Vb8s= github.com/lucas-clemente/quic-go v0.13.1 h1:CxtJTXQIh2aboCPk0M6vf530XOov6DZjVBiSE3nSj8s= github.com/lucas-clemente/quic-go v0.13.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= -github.com/lucas-clemente/quic-go v0.14.0 h1:xmWt9+sRgvAAXmi2S9lrikUtNUPwxeOy400LD+I3Qw0= -github.com/lucas-clemente/quic-go v0.14.0/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= -github.com/lyft/protoc-gen-star v0.4.12 h1:xDL+gBceXl36jtKMkJKixY7T0S2V+EccszLmfh8RppE= -github.com/lyft/protoc-gen-star v0.4.12/go.mod h1:mE8fbna26u7aEA2QCVvvfBU/ZrPgocG1206xAFPcs94= -github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -500,7 +454,6 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= @@ -516,7 +469,6 @@ github.com/micro/go-micro v1.18.0 h1:gP70EZVHpJuUIT0YWth192JmlIci+qMOEByHm83XE9E github.com/micro/go-micro v1.18.0/go.mod h1:klwUJL1gkdY1MHFyz+fFJXn52dKcty4hoe95Mp571AA= github.com/micro/go-plugins v1.5.1 h1:swcFD7ynCTUo98APqIEIbPu2XMd6yVGTnI8PqdnCwOQ= github.com/micro/go-plugins v1.5.1/go.mod h1:jcxejzJCAMH731cQHbS/hncyKe0rxAbzKkibj8glad4= -github.com/micro/grpc-go v0.0.0-20190130160115-549af9fb4bf2/go.mod h1://clyXyptX/KfdauimE3DJIvC/TKOioMd9rb5blDZmI= github.com/micro/mdns v0.3.0 h1:bYycYe+98AXR3s8Nq5qvt6C573uFTDPIYzJemWON0QE= github.com/micro/mdns v0.3.0/go.mod h1:KJ0dW7KmicXU2BV++qkLlmHYcVv7/hHnbtguSWt9Aoc= github.com/micro/micro v1.16.0/go.mod h1:TO5Ng0KidbfRYIxVM4Q3deZ0A+qwRyP9WeXp+k2fWNA= @@ -534,7 +486,6 @@ github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrk github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-vnc v0.0.0-20150629162542-723ed9867aed/go.mod h1:3rdaFaCv4AyBgu5ALFM0+tSuHrBh6v692nyQe3ikrq0= -github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= @@ -562,8 +513,6 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+ github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04/go.mod h1:5sN+Lt1CaY4wsPvgQH/jsuJi4XO2ssZbdsIizr4CVC8= github.com/nats-io/jwt v0.3.0 h1:xdnzwFETV++jNc4W1mw//qFyJGb2ABOombmZJQS4+Qo= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/jwt v0.3.2 h1:+RB5hMpXUUA2dfxuhBTEkMOrYmM+gKIZYS1KjSostMI= -github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= github.com/nats-io/nats-server/v2 v2.1.0 h1:Yi0+ZhRPtPAGeIxFn5erIeJIV9wXA+JznfSxK621Fbk= github.com/nats-io/nats-server/v2 v2.1.0/go.mod h1:r5y0WgCag0dTj/qiHkHrXAcKQ/f5GMOZaEGdoxxnJ4I= github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= @@ -572,8 +521,6 @@ github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzE github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= github.com/nats-io/nkeys v0.1.0 h1:qMd4+pRHgdr1nAClu+2h/2a5F2TmKcCzjCDazVgRoX4= github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.1.3 h1:6JrEfig+HzTH85yxzhSVbjHRJv9cn0p6n3IngIcM5/k= -github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nats-io/stan.go v0.5.0/go.mod h1:dYqB+vMN3C2F9pT1FRQpg9eHbjPj6mP0yYuyBNuXHZE= @@ -582,8 +529,6 @@ github.com/nlopes/slack v0.6.0/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT github.com/nrdcg/auroradns v1.0.0/go.mod h1:6JPXKzIRzZzMqtTDgueIhTi6rFf1QvYE/HzqidhOhjw= github.com/nrdcg/goinwx v0.6.1/go.mod h1:XPiut7enlbEdntAqalBIqcYcTEVhpv/dKWgDCX2SwKQ= github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw= -github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d h1:x3S6kxmy49zXVVyhcnrFqxvNVCBPb2KZ9hV2RBdS840= -github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d/go.mod h1:IuKpRQcYE1Tfu+oAQqaLisqDeXgjyyltCfsaoYN18NQ= github.com/nsqio/go-nsq v1.0.7/go.mod h1:XP5zaUs3pqf+Q71EqUJs3HYfBIqfK6G83WQMdNN+Ito= github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= @@ -595,8 +540,6 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.1 h1:q/mM8GF/n0shIN8SaAZ0V+jnLPzen6WIVZdiwrRlMlo= github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.3 h1:OoxbjfXVZyod1fmWYhI7SEyaD8B00ynP3T+D5GiyHOY= -github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= @@ -611,17 +554,10 @@ github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.m github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openzipkin/zipkin-go v0.2.2 h1:nY8Hti+WKaP0cRsSeQ026wU03QsM762XBeCXBb9NAWI= -github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= -github.com/ory/fosite v0.30.1/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKGbN8= github.com/ory/fosite v0.30.2/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKGbN8= github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= -github.com/owncloud/ocis-devldap v0.0.0-20191205143003-809a64c36b1e/go.mod h1:+m1W0stgQP8XEJM0nzTyRG3/u2Fwvv5IPrRrlMhJGPA= -github.com/owncloud/ocis-devldap v0.0.0-20191211134532-3663b31971b9 h1:oRrfYRBlYgjmF/52TX3E7s5x9Ypmh/PmKXdQHY7rcvo= -github.com/owncloud/ocis-devldap v0.0.0-20191211134532-3663b31971b9/go.mod h1:EPl4nVGMcQsP0Ddz24BJlwaLPPfVdgJ8Of2mTDHE4Gg= -github.com/owncloud/ocis-pkg v1.1.0/go.mod h1:EfbeXoe60Me2lB/AWjYl8UFNv4isqCPP6lokd5R7nyM= github.com/owncloud/ocis-pkg v1.2.0 h1:eP0AOSEXAgiblL2yOpNOmriKhDXN+mai+4belBJRkWU= github.com/owncloud/ocis-pkg v1.2.0/go.mod h1:EfbeXoe60Me2lB/AWjYl8UFNv4isqCPP6lokd5R7nyM= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= @@ -637,13 +573,11 @@ github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/9 github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4= github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= -github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.2.6+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/xattr v0.4.1/go.mod h1:W2cGD0TBEus7MkUgv0tNZ9JutLtVO3cXu+IBRuHqnFs= github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -689,11 +623,9 @@ github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKc github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/restic/calens v0.1.0/go.mod h1:u67f5msOjCTDYNzOf/NoAUSdmXP03YXPCwIQLYADy5M= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/rs/zerolog v1.17.2 h1:RMRHFw2+wF7LO0QqtELQwo8hqSmqISyCJeFeAAuWcRo= github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -730,6 +662,8 @@ github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= @@ -738,11 +672,9 @@ github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzu github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.5.0/go.mod h1:AkYRkVJF8TkSG/xet6PzXX+l39KhhXa2pdqVSxnTcn4= github.com/spf13/viper v1.6.1 h1:VPZzIkznI1YhVMRi6vNFLHSwhnhReBfgTxIPccpfdZk= github.com/spf13/viper v1.6.1/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= -github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -775,13 +707,7 @@ github.com/uber/jaeger-client-go v2.20.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMW github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasttemplate v0.0.0-20170224212429-dcecefd839c4 h1:gKMu1Bf6QINDnvyZuTaACm9ofY+PRh+5vFz4oxBZeF8= -github.com/valyala/fasttemplate v0.0.0-20170224212429-dcecefd839c4/go.mod h1:50wTf68f99/Zt14pr046Tgt3Lp2vLyFZKzbFXTOabXw= github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA= -github.com/webhippie/protoc-gen-microweb v0.0.0-20191209132523-6ef5e3b3e9cc h1:vfF9ajN07KKFII+xrBIX+gnAbb/D6dK4SDacQVJTdJI= -github.com/webhippie/protoc-gen-microweb v0.0.0-20191209132523-6ef5e3b3e9cc/go.mod h1:hUpH8ouhZm6bNiTOnLOH5hkPy3wTe2AWnulODUGAOiU= github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= @@ -811,14 +737,10 @@ go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0 h1:OI5t8sDa1Or+q8AeE+yKeB/SDYioSHAgcVljj9JIETY= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.5.1 h1:rsqfU5vBkVknbhUGbAUwQKR2H4ItV8tjJ+6kJX4cxHM= -go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.2.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0 h1:sFPn2GLc3poCkfrpIXGhBD2X0CMIo4Q/zSULXrj/+uc= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.4.0 h1:f3WCSC2KzAcBXGATIxAB1E2XuCpNU255wNKZ505qi3E= -go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= go.uber.org/ratelimit v0.1.0/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= @@ -830,7 +752,6 @@ gocloud.dev v0.17.0/go.mod h1:tIHTRdR1V5dlD8sTkzYdTGizBJ314BDykJ8KmadEXwo= gocloud.dev/pubsub/rabbitpubsub v0.17.0/go.mod h1:7o1XYDiIC+b0mmcwJuofsDg08t0DtU2ubfn7C/Uz7Y0= golang.org/x/crypto v0.0.0-20180621125126-a49355c7e3f8/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -853,12 +774,11 @@ golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a h1:R/qVym5WAxsZWQqZCwDY/8sdVKV1m1WgU4/S5IRQAzc= golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd h1:GGJVjV8waZKRHrgwvtH66z9ZGVurTD1MT0n1Bb+q4aM= -golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 h1:sKJQZMuxjOAR/Uo2LBfU90onWEf1dF4C+0hPJCc9Mpc= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -866,7 +786,6 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -874,7 +793,6 @@ golang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180921000356-2f5d2388922f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -893,19 +811,15 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191011234655-491137f69257/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191014212845-da9a3fd4c582/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191109021931-daa7c04131f5/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191204025024-5ee1b9f4859a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -927,7 +841,6 @@ golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181019160139-8e24a49d80f8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181021155630-eda9bb28ed51/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -952,7 +865,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190620070143-6f217b454f45/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190710143415-6ec70d6a5542/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -963,8 +875,8 @@ golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4 h1:Hynbrlo6LbYI3H1IqXpkVDOcX/3HiPdhVEuyj5a59RM= golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e h1:9vRrk9YW2BTzLP0VCB9ZDjU4cPqkg+IDWL7XgxA1yxQ= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7 h1:/W9OPMnnpmFXHYkcp2rQsbFUbRlRzfECQjmAFiOyHE8= +golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -988,7 +900,6 @@ golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190422233926-fe54fb35175b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -1000,11 +911,8 @@ golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 h1:hKsoRgsbwY1NafxrwTs+k64bikrLBkAgPir1TNCj3Zs= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191205225056-3393d29bb9fe/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= -google.golang.org/api v0.3.2/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= @@ -1030,20 +938,15 @@ google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190620144150-6af8c5fc6601/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115221424-83cc0476cb11/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191205163323-51378566eb59/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216205247-b31c10ee225f h1:0RYv5T9ZdroAqqfM2taEB0nJrArv0X1JpIdgUmY4xg8= -google.golang.org/genproto v0.0.0-20191216205247-b31c10ee225f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb h1:ADPHZzpzM4tk4V4S5cnCrr5SwzvlrPRmqqCuJDB8UTs= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1052,6 +955,8 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= gopkg.in/DataDog/dd-trace-go.v1 v1.19.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= @@ -1075,6 +980,8 @@ gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.51.1 h1:GyboHr4UqMiLUybYjd22ZjQIKEJEpgtLXtuGbR21Oho= +gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= @@ -1100,7 +1007,6 @@ gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRN gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo= From 25a68c93216d4b18a6e9370953aa786d7994b3be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 15 Jan 2020 17:02:56 +0100 Subject: [PATCH 004/346] separate reva services MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit update config add desktop client with all localhost ports split flagsets add user docs update readme Signed-off-by: Jörn Friedrich Dreyer --- README.md | 45 +- changelog/unreleased/issue-6.md | 7 + docker/Dockerfile.linux.amd64 | 2 +- docker/Dockerfile.linux.arm | 2 +- docker/Dockerfile.linux.arm64 | 2 +- docs/content/about.md | 2 +- docs/content/building.md | 15 +- docs/content/getting-started.md | 251 +-------- docs/content/users.md | 49 ++ go.mod | 4 +- go.sum | 15 +- pkg/command/authbasic.go | 187 +++++++ .../{authprovider.go => authbearer.go} | 37 +- pkg/command/frontend.go | 352 ++++++++++++ pkg/command/gateway.go | 220 ++++++++ pkg/command/legacy.go | 453 ---------------- pkg/command/root.go | 14 +- pkg/command/server.go | 328 ----------- pkg/command/sharing.go | 168 ++++++ pkg/command/storagehome.go | 210 ++++++++ pkg/command/storagehomedata.go | 200 +++++++ pkg/command/storageoc.go | 210 ++++++++ pkg/command/storageocdata.go | 200 +++++++ pkg/command/storageroot.go | 209 ++++++++ pkg/command/users.go | 186 +++++++ pkg/config/config.go | 197 ++++++- pkg/flagset/authbasic.go | 223 ++++++++ pkg/flagset/authbearer.go | 148 +++++ pkg/flagset/flagset.go | 193 ------- pkg/flagset/frontend.go | 167 ++++++ pkg/flagset/gateway.go | 270 ++++++++++ pkg/flagset/health.go | 19 + pkg/flagset/root.go | 38 ++ pkg/flagset/server.go | 507 ++++++++++++++++++ pkg/flagset/sharing.go | 125 +++++ pkg/flagset/storagehome.go | 288 ++++++++++ pkg/flagset/storagehomedata.go | 260 +++++++++ pkg/flagset/storageoc.go | 288 ++++++++++ pkg/flagset/storageocdata.go | 260 +++++++++ pkg/flagset/storageroot.go | 288 ++++++++++ pkg/flagset/users.go | 221 ++++++++ pkg/server/debug/option.go | 18 +- pkg/server/debug/server.go | 6 +- 43 files changed, 5578 insertions(+), 1306 deletions(-) create mode 100644 changelog/unreleased/issue-6.md create mode 100644 docs/content/users.md create mode 100644 pkg/command/authbasic.go rename pkg/command/{authprovider.go => authbearer.go} (75%) create mode 100644 pkg/command/frontend.go create mode 100644 pkg/command/gateway.go delete mode 100644 pkg/command/legacy.go delete mode 100644 pkg/command/server.go create mode 100644 pkg/command/sharing.go create mode 100644 pkg/command/storagehome.go create mode 100644 pkg/command/storagehomedata.go create mode 100644 pkg/command/storageoc.go create mode 100644 pkg/command/storageocdata.go create mode 100644 pkg/command/storageroot.go create mode 100644 pkg/command/users.go create mode 100644 pkg/flagset/authbasic.go create mode 100644 pkg/flagset/authbearer.go delete mode 100644 pkg/flagset/flagset.go create mode 100644 pkg/flagset/frontend.go create mode 100644 pkg/flagset/gateway.go create mode 100644 pkg/flagset/health.go create mode 100644 pkg/flagset/root.go create mode 100644 pkg/flagset/server.go create mode 100644 pkg/flagset/sharing.go create mode 100644 pkg/flagset/storagehome.go create mode 100644 pkg/flagset/storagehomedata.go create mode 100644 pkg/flagset/storageoc.go create mode 100644 pkg/flagset/storageocdata.go create mode 100644 pkg/flagset/storageroot.go create mode 100644 pkg/flagset/users.go diff --git a/README.md b/README.md index f6a6a7be13..fce69656df 100644 --- a/README.md +++ b/README.md @@ -15,20 +15,57 @@ You can download prebuilt binaries from the GitHub releases or from our [downloa ## Development -Make sure you have a working Go environment, for further reference or a guide take a look at the [install instructions](http://golang.org/doc/install.html). This project requires Go >= v1.13. For the frontend it's also required to have [NodeJS](https://nodejs.org/en/download/package-manager/) and [Yarn](https://yarnpkg.com/lang/en/docs/install/) installed. +Make sure you have a working Go environment, for further reference or a guide take a look at the [install instructions](http://golang.org/doc/install.html). ```console git clone https://github.com/owncloud/ocis-reva.git cd ocis-reva -yarn install -yarn build - make generate build ./bin/ocis-reva -h ``` +To run a demo installation you can use the preconfigured defaults and start all necessary services: +``` +bin/ocis-reva frontend & \ +bin/ocis-reva gateway & \ +bin/ocis-reva users & \ +bin/ocis-reva auth-basic & \ +bin/ocis-reva auth-bearer & \ +bin/ocis-reva sharing & \ +bin/ocis-reva storage-root & \ +bin/ocis-reva storage-home & \ +bin/ocis-reva storage-home-data & \ +bin/ocis-reva storage-oc & \ +bin/ocis-reva storage-oc-data +``` + +The root storage serves the available namespaces from disk using the local storage driver. In order to be able to navigate into the `/home` and `/oc` storage providers you have to create these directories: +``` +mkdir /var/tmp/reva/root/home +mkdir /var/tmp/reva/root/oc +``` + +Note: the owncloud storage driver currently requires a redis server running on the local machine. + +You should now be able to get a file listing of a users home using +``` +curl -X PROPFIND http://localhost:9140/remote.php/dav/files/ -v -u einstein:relativity +``` + +## Users + +The default config uses the demo user backend, which contains three users: +``` +einstein:relativity +marie:radioactivty +richard:superfluidity +``` + +For details on the `json` and `ldap` backends see the [documentation](https://owncloud.github.io/ocis-reva/#users) + + ## Security If you find a security issue please contact security@owncloud.com first. diff --git a/changelog/unreleased/issue-6.md b/changelog/unreleased/issue-6.md new file mode 100644 index 0000000000..99aff1aa36 --- /dev/null +++ b/changelog/unreleased/issue-6.md @@ -0,0 +1,7 @@ +Change: start multiple services with dedicated commands + +The initial version would only allow us to use a set of reva configurations to start multiple services. +We use a more opinionated set of commands to start dedicated services that allows us to configure them individually. +It allowcs us to switch eg. the user backend to LDAP and fully it on the cli. + +https://github.com/owncloud/ocis-reva/issues/6 \ No newline at end of file diff --git a/docker/Dockerfile.linux.amd64 b/docker/Dockerfile.linux.amd64 index 2fe94c9aac..af5c8f4d4e 100644 --- a/docker/Dockerfile.linux.amd64 +++ b/docker/Dockerfile.linux.amd64 @@ -11,7 +11,7 @@ LABEL maintainer="ownCloud GmbH " \ org.label-schema.vendor="ownCloud GmbH" \ org.label-schema.schema-version="1.0" -EXPOSE 9135 9136 +EXPOSE 9140 9141 9142 9143 ENTRYPOINT ["/usr/bin/ocis-reva"] CMD ["server"] diff --git a/docker/Dockerfile.linux.arm b/docker/Dockerfile.linux.arm index 9399ae7838..050d2234c3 100644 --- a/docker/Dockerfile.linux.arm +++ b/docker/Dockerfile.linux.arm @@ -11,7 +11,7 @@ LABEL maintainer="ownCloud GmbH " \ org.label-schema.vendor="ownCloud GmbH" \ org.label-schema.schema-version="1.0" -EXPOSE 9135 9136 +EXPOSE 9140 9141 9142 9143 ENTRYPOINT ["/usr/bin/ocis-reva"] CMD ["server"] diff --git a/docker/Dockerfile.linux.arm64 b/docker/Dockerfile.linux.arm64 index 86e53c3f36..d0fee613a8 100644 --- a/docker/Dockerfile.linux.arm64 +++ b/docker/Dockerfile.linux.arm64 @@ -11,7 +11,7 @@ LABEL maintainer="ownCloud GmbH " \ org.label-schema.vendor="ownCloud GmbH" \ org.label-schema.schema-version="1.0" -EXPOSE 9135 9136 +EXPOSE 9140 9141 9142 9143 ENTRYPOINT ["/usr/bin/ocis-reva"] CMD ["server"] diff --git a/docs/content/about.md b/docs/content/about.md index 01e812e440..df0238ebf4 100644 --- a/docs/content/about.md +++ b/docs/content/about.md @@ -5,4 +5,4 @@ anchor: "about" weight: 10 --- -This service provides a simple hello world example API to show the integration of custom plugins within [Phoenix](https://github.com/owncloud/phoenix). +This service provides an ocis extension that wraps [reva](https://github.com/cs3org/reva/) and adds an opinionated configuration to it. diff --git a/docs/content/building.md b/docs/content/building.md index f68ae0e3c8..4525f16fbe 100644 --- a/docs/content/building.md +++ b/docs/content/building.md @@ -5,29 +5,20 @@ anchor: "building" weight: 30 --- -As this project is built with Go and NodeJS, so you need to install that first. The installation of Go and NodeJS is out of the scope of this document, please follow the official documentation for [Go](https://golang.org/doc/install), [NodeJS](https://nodejs.org/en/download/package-manager/) and [Yarn](https://yarnpkg.com/lang/en/docs/install/), to build this project you have to install Go >= v1.13. After the installation of the required tools you need to get the sources: +As this project is built with Go, so you need to install that first. The installation of Go is out of the scope of this document, please follow the official documentation for [Go](https://golang.org/doc/install).To build this project you have to install Go >= v1.13. After the installation of the required tools you need to get the sources: {{< highlight txt >}} git clone https://github.com/owncloud/ocis-reva.git cd ocis-reva {{< / highlight >}} -All required tool besides Go itself and make are bundled or getting automatically installed within the `GOPATH`. All commands to build this project are part of our `Makefile` and respectively our `package.json`. +All required tool besides Go itself and make are bundled or getting automatically installed within the `GOPATH`. All commands to build this project are part of our `Makefile`. -### Frontend - -{{< highlight txt >}} -yarn install -yarn build -{{< / highlight >}} - -The above commands will install the required build dependencies and build the whole frontend bundle. This bundle will we embeded into the binary later on. ### Backend {{< highlight txt >}} -make generate make build {{< / highlight >}} -The above commands will embed the frontend bundle into the binary. Finally you should have the binary within the `bin/` folder now, give it a try with `./bin/ocis-reva -h` to see all available options. +The above command should produce the binary within the `bin/` folder now, give it a try with `./bin/ocis-reva -h` to see all available options. diff --git a/docs/content/getting-started.md b/docs/content/getting-started.md index 434c39d3f8..79abfb090c 100644 --- a/docs/content/getting-started.md +++ b/docs/content/getting-started.md @@ -21,254 +21,5 @@ TBD We provide overall three different variants of configuration. The variant based on environment variables and commandline flags are split up into global values and command-specific values. -#### Envrionment variables +The configuration tries to map different configuration options from reva into dedicated services. For now please run `bin/ocis-reva {command} -h` to see the list of available options or have a look at [the flagsets](https://github.com/owncloud/ocis-reva/tree/master/pkg/flagset) and the mapping to a reva config in the corresponding [commands](https://github.com/owncloud/ocis-reva/tree/master/pkg/command). -If you prefer to configure the service with environment variables you can see the available variables below. - -##### Global - -REVA_CONFIG_FILE -: Path to config file, empty default value - -REVA_LOG_LEVEL -: Set logging level, defaults to `info` - -REVA_LOG_COLOR -: Enable colored logging, defaults to `true` - -REVA_LOG_PRETTY -: Enable pretty logging, defaults to `true` - -##### Server - -REVA_TRACING_ENABLED -: Enable sending traces, defaults to `false` - -REVA_TRACING_TYPE -: Tracing backend type, defaults to `jaeger` - -REVA_TRACING_ENDPOINT -: Endpoint for the agent, empty default value - -REVA_TRACING_COLLECTOR -: Endpoint for the collector, empty default value - -REVA_TRACING_SERVICE -: Service name for tracing, defaults to `reva` - -REVA_DEBUG_ADDR -: Address to bind debug server, defaults to `0.0.0.0:9109` - -REVA_DEBUG_TOKEN -: Token to grant metrics access, empty default value - -REVA_DEBUG_PPROF -: Enable pprof debugging, defaults to `false` - -REVA_DEBUG_ZPAGES -: Enable zpages debugging, defaults to `false` - -REVA_HTTP_ADDR -: Address to bind http server, defaults to `0.0.0.0:9105` - -REVA_HTTP_ROOT -: Root path of http server, defaults to `/` - -REVA_GRPC_ADDR -: Address to bind grpc server, defaults to `0.0.0.0:9106` - -REVA_ASSET_PATH -: Path to custom assets, empty default value - -##### Health - -REVA_DEBUG_ADDR -: Address to debug endpoint, defaults to `0.0.0.0:9109` - -#### Commandline flags - -If you prefer to configure the service with commandline flags you can see the available variables below. - -##### Global - ---config-file -: Path to config file, empty default value - ---log-level -: Set logging level, defaults to `info` - ---log-color -: Enable colored logging, defaults to `true` - ---log-pretty -: Enable pretty logging, defaults to `true` - -##### Server - ---tracing-enabled -: Enable sending traces, defaults to `false` - ---tracing-type -: Tracing backend type, defaults to `jaeger` - ---tracing-endpoint -: Endpoint for the agent, empty default value - ---tracing-collector -: Endpoint for the collector, empty default value - ---tracing-service -: Service name for tracing, defaults to `reva` - ---debug-addr -: Address to bind debug server, defaults to `0.0.0.0:9109` - ---debug-token -: Token to grant metrics access, empty default value - ---debug-pprof -: Enable pprof debugging, defaults to `false` - ---debug-zpages -: Enable zpages debugging, defaults to `false` - ---http-addr -: Address to bind http server, defaults to `0.0.0.0:9105` - ---http-root -: Root path of http server, defaults to `/` - ---grpc-addr -: Address to bind grpc server, defaults to `0.0.0.0:9106` - ---asset-path -: Path to custom assets, empty default value - -##### Health - ---debug-addr -: Address to debug endpoint, defaults to `0.0.0.0:9109` - -#### Configuration file - -So far we support the file formats `JSON` and `YAML`, if you want to get a full example configuration just take a look at [our repository](https://github.com/owncloud/ocis-reva/tree/master/config), there you can always see the latest configuration format. These example configurations include all available options and the default values. The configuration file will be automatically loaded if it's placed at `/etc/ocis/reva.yml`, `${HOME}/.ocis/reva.yml` or `$(pwd)/config/reva.yml`. - -### Usage - -The program provides a few sub-commands on execution. The available configuration methods have already been mentioned above. Generally you can always see a formated help output if you execute the binary via `ocis-reva --help`. - -#### Server - -The server command is used to start the http and debug server on two addresses within a single process. The http server is serving the general webservice while the debug server is used for health check, readiness check and to server the metrics mentioned below. For further help please execute: - -{{< highlight txt >}} -ocis-reva server --help -{{< / highlight >}} - -#### Health - -The health command is used to execute a health check, if the exit code equals zero the service should be up and running, if the exist code is greater than zero the service is not in a healthy state. Generally this command is used within our Docker containers, it could also be used within Kubernetes. - -{{< highlight txt >}} -ocis-reva health --help -{{< / highlight >}} - -### Metrics - -This service provides some [Prometheus](https://prometheus.io/) metrics through the debug endpoint, you can optionally secure the metrics endpoint by some random token, which got to be configured through one of the flag `--debug-token` or the environment variable `REVA_DEBUG_TOKEN` mentioned above. By default the metrics endpoint is bound to `http://0.0.0.0:9109/metrics`. - -go_gc_duration_seconds -: A summary of the GC invocation durations - -go_gc_duration_seconds_sum -: A summary of the GC invocation durations - -go_gc_duration_seconds_count -: A summary of the GC invocation durations - -go_goroutines -: Number of goroutines that currently exist - -go_info -: Information about the Go environment - -go_memstats_alloc_bytes -: Number of bytes allocated and still in use - -go_memstats_alloc_bytes_total -: Total number of bytes allocated, even if freed - -go_memstats_buck_hash_sys_bytes -: Number of bytes used by the profiling bucket hash table - -go_memstats_frees_total -: Total number of frees - -go_memstats_gc_cpu_fraction -: The fraction of this program's available CPU time used by the GC since the program started - -go_memstats_gc_sys_bytes -: Number of bytes used for garbage collection system metadata - -go_memstats_heap_alloc_bytes -: Number of heap bytes allocated and still in use - -go_memstats_heap_idle_bytes -: Number of heap bytes waiting to be used - -go_memstats_heap_inuse_bytes -: Number of heap bytes that are in use - -go_memstats_heap_objects -: Number of allocated objects - -go_memstats_heap_released_bytes -: Number of heap bytes released to OS - -go_memstats_heap_sys_bytes -: Number of heap bytes obtained from system - -go_memstats_last_gc_time_seconds -: Number of seconds since 1970 of last garbage collection - -go_memstats_lookups_total -: Total number of pointer lookups - -go_memstats_mallocs_total -: Total number of mallocs - -go_memstats_mcache_inuse_bytes -: Number of bytes in use by mcache structures - -go_memstats_mcache_sys_bytes -: Number of bytes used for mcache structures obtained from system - -go_memstats_mspan_inuse_bytes -: Number of bytes in use by mspan structures - -go_memstats_mspan_sys_bytes -: Number of bytes used for mspan structures obtained from system - -go_memstats_next_gc_bytes -: Number of heap bytes when next garbage collection will take place - -go_memstats_other_sys_bytes -: Number of bytes used for other system allocations - -go_memstats_stack_inuse_bytes -: Number of bytes in use by the stack allocator - -go_memstats_stack_sys_bytes -: Number of bytes obtained from system for stack allocator - -go_memstats_sys_bytes -: Number of bytes obtained from system - -go_threads -: Number of OS threads created - -promhttp_metric_handler_requests_in_flight -: Current number of scrapes being served - -promhttp_metric_handler_requests_total -: Total number of scrapes by HTTP status code diff --git a/docs/content/users.md b/docs/content/users.md new file mode 100644 index 0000000000..536810aae3 --- /dev/null +++ b/docs/content/users.md @@ -0,0 +1,49 @@ +--- +title: "Users" +date: 2020-01-16T00:00:00+00:00 +anchor: "users" +weight: 35 +--- + +### Demo driver + +This is the default user driver.It contains three users: +``` +einstein:relativity +marie:radioactivty +richard:superfluidity +``` + +### JSON driver + +In order to switch from the `demo` driver to JSON based users you need to export the relevant environment variables: +``` +export REVA_USERS_DRIVER=json +export REVA_USERS_JSON=/path/to/users.json +``` + +For the format of the users.json have a look at the [reva examples](https://github.com/cs3org/reva/blob/master/examples/separate/users.demo.json) + +### LDAP driver + +In order to switch from the `demo` driver to LDAP you need to export the relevant environment variable: +``` +export REVA_USERS_DRIVER=ldap +``` + +If the below defaults don't match your environment change them accordingly: +``` +export REVA_LDAP_HOSTNAME=localhost +export REVA_LDAP_PORT=389 +export REVA_LDAP_BASE_DN='dc=owncloud,dc=com' +export REVA_LDAP_USERFILTER='(objectclass=posixAccount)' +export REVA_LDAP_GROUPFILTER='(objectclass=posixGroup)' +export REVA_LDAP_BIND_DN='cn=admin,dc=owncloud,dc=com' +export REVA_LDAP_BIND_PASSWORD=admin +export REVA_LDAP_SCHEMA_UID=uid +export REVA_LDAP_SCHEMA_MAIL=mail +export REVA_LDAP_SCHEMA_DISPLAYNAME=displayName +export REVA_LDAP_SCHEMA_CN=cn +``` + +Then restart the `bin/ocis-reva users` and `bin/ocis-reva auth-basic` services for the changes to take effect. \ No newline at end of file diff --git a/go.mod b/go.mod index 6b94f82a4e..74500be87f 100644 --- a/go.mod +++ b/go.mod @@ -5,14 +5,14 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e // indirect - github.com/cs3org/reva v0.0.2-0.20191217083445-dee8d1c71f95 + github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5 github.com/go-log/log v0.2.0 // indirect github.com/gofrs/uuid v3.2.0+incompatible github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 // indirect github.com/micro/cli v0.2.0 github.com/micro/go-micro v1.18.0 // indirect github.com/oklog/run v1.0.0 - github.com/owncloud/ocis-pkg v1.2.0 + github.com/owncloud/ocis-pkg v1.2.1-0.20191217084055-eab942498596 github.com/pelletier/go-toml v1.6.0 // indirect github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee // indirect github.com/prometheus/procfs v0.0.8 // indirect diff --git a/go.sum b/go.sum index 41544a0af0..033e49fa2c 100644 --- a/go.sum +++ b/go.sum @@ -95,8 +95,8 @@ github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpi github.com/aws/aws-sdk-go v1.19.45/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.25.31/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.26.3 h1:szQdfJcUBAhQT0zZEx4sxoDuWb7iScoucxCiVxDmaBk= -github.com/aws/aws-sdk-go v1.26.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.28.2 h1:j5IXG9CdyLfcVfICqo1PXVv+rua+QQHbkXuvuU/JF+8= +github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -165,8 +165,8 @@ github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83 h1:9bcp1jc6+36XU github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83/go.mod h1:IsVGyZrOLUQD48JIhlM/xb3Vz6He5o2+W0ZTfUGY+IU= github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e h1:cPcpOoPLdsIV2Bw1xMJCIw4ZAejtQqA6J0U56YHOJeQ= github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v0.0.2-0.20191217083445-dee8d1c71f95 h1:wrx5iQTS50W4gFDyYfR+kRuVlrSw4oXr22msH+uPjb0= -github.com/cs3org/reva v0.0.2-0.20191217083445-dee8d1c71f95/go.mod h1:lwilkLiV0vnGiyypVxDJZUbGjnAzVo0cgDCKxy/eLpw= +github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5 h1:PkGon9KVtcApu462KRAmFV3iKHOk0S0CRoEzoar4eyE= +github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5/go.mod h1:Hk3eCcdhtv4eIhKvRK736fQuOyS1HuHnUcz0Dq6NK1A= github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -374,7 +374,6 @@ github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoI github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5/go.mod h1:0YZ2wQSuwviXXXGUiK6zXzskyBLAbLXhamxzcFHSLoM= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= @@ -558,8 +557,8 @@ github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukw github.com/ory/fosite v0.30.2/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKGbN8= github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= -github.com/owncloud/ocis-pkg v1.2.0 h1:eP0AOSEXAgiblL2yOpNOmriKhDXN+mai+4belBJRkWU= -github.com/owncloud/ocis-pkg v1.2.0/go.mod h1:EfbeXoe60Me2lB/AWjYl8UFNv4isqCPP6lokd5R7nyM= +github.com/owncloud/ocis-pkg v1.2.1-0.20191217084055-eab942498596 h1:3aMNmuDCIdKsaa4YdVTQEBJMjGz8KiuIB/+xlJUCT3k= +github.com/owncloud/ocis-pkg v1.2.1-0.20191217084055-eab942498596/go.mod h1:Wo0QfOmhadh2vNcUoQIsw2yaOT3zeftk+xaOOwP3y88= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= @@ -578,6 +577,8 @@ github.com/pierrec/lz4 v2.2.6+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/xattr v0.4.1/go.mod h1:W2cGD0TBEus7MkUgv0tNZ9JutLtVO3cXu+IBRuHqnFs= github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/pkg/command/authbasic.go b/pkg/command/authbasic.go new file mode 100644 index 0000000000..16a5fb9171 --- /dev/null +++ b/pkg/command/authbasic.go @@ -0,0 +1,187 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// AuthBasic is the entrypoint for the auth-basic command. +func AuthBasic(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "auth-basic", + Usage: "Start reva authprovider for basic auth", + Flags: flagset.AuthBasicWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.AuthBasic.MaxCPUs, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.AuthBasic.Network, + "address": cfg.Reva.AuthBasic.Addr, + // TODO extract interceptor config, which is the same for all grpc services + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + }, + // TODO build services dynamically + "services": map[string]interface{}{ + "authprovider": map[string]interface{}{ + "auth_manager": cfg.Reva.Users.Driver, + "auth_managers": map[string]interface{}{ + "json": map[string]interface{}{ + "users": cfg.Reva.Users.JSON, + }, + "ldap": map[string]interface{}{ + "hostname": cfg.Reva.LDAP.Hostname, + "port": cfg.Reva.LDAP.Port, + "base_dn": cfg.Reva.LDAP.BaseDN, + "userfilter": cfg.Reva.LDAP.UserFilter, + "groupfilter": cfg.Reva.LDAP.GroupFilter, + "bind_username": cfg.Reva.LDAP.BindDN, + "bind_password": cfg.Reva.LDAP.BindPassword, + "idp": cfg.Reva.LDAP.IDP, + "schema": map[string]interface{}{ + "dn": "dn", + "uid": cfg.Reva.LDAP.Schema.UID, + "mail": cfg.Reva.LDAP.Schema.Mail, + "displayName": cfg.Reva.LDAP.Schema.DisplayName, + "cn": cfg.Reva.LDAP.Schema.CN, + }, + }, + }, + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.AuthBasic.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", "debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/authprovider.go b/pkg/command/authbearer.go similarity index 75% rename from pkg/command/authprovider.go rename to pkg/command/authbearer.go index ef390ea814..b1ee497ca8 100644 --- a/pkg/command/authprovider.go +++ b/pkg/command/authbearer.go @@ -16,12 +16,12 @@ import ( "github.com/owncloud/ocis-reva/pkg/server/debug" ) -// AuthProvider is the entrypoint for the authprovider command. -func AuthProvider(cfg *config.Config) cli.Command { +// AuthBearer is the entrypoint for the auth-bearer command. +func AuthBearer(cfg *config.Config) cli.Command { return cli.Command{ - Name: "authprovider", - Usage: "Start authprovider server", - Flags: flagset.ServerWithConfig(cfg), + Name: "auth-bearer", + Usage: "Start reva authprovider for bearer auth", + Flags: flagset.AuthBearerWithConfig(cfg), Action: func(c *cli.Context) error { logger := NewLogger(cfg) @@ -61,20 +61,19 @@ func AuthProvider(cfg *config.Config) cli.Command { defer cancel() - // TODO Flags have to be injected all the way down to the go-micro service { uuid := uuid.Must(uuid.NewV4()) - pidFile := path.Join(os.TempDir(), "revad-"+uuid.String()+".pid") + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.MaxCPUs, + "max_cpus": cfg.Reva.AuthBearer.MaxCPUs, }, "grpc": map[string]interface{}{ - "network": cfg.Reva.GRPC.Network, - "address": cfg.Reva.GRPC.Addr, - "enabled_services": []string{"authprovider"}, + "network": cfg.Reva.AuthBearer.Network, + "address": cfg.Reva.AuthBearer.Addr, + // TODO extract interceptor config, which is the same for all grpc services "interceptors": map[string]interface{}{ "auth": map[string]interface{}{ "token_manager": "jwt", @@ -83,34 +82,30 @@ func AuthProvider(cfg *config.Config) cli.Command { "secret": cfg.Reva.JWTSecret, }, }, - "skip_methods": []string{ - // we need to allow calls that happen during authentication - "/cs3.authproviderv0alpha.AuthProviderService/Authenticate", - "/cs3.userproviderv0alpha.UserProviderService/GetUser", - }, }, }, + // TODO build services dynamically "services": map[string]interface{}{ "authprovider": map[string]interface{}{ "auth_manager": "oidc", "auth_managers": map[string]interface{}{ "oidc": map[string]interface{}{ - "provider": cfg.AuthProvider.Provider, - "insecure": cfg.AuthProvider.Insecure, + "issuer": cfg.Reva.OIDC.Issuer, + "insecure": cfg.Reva.OIDC.Insecure, + "id_claim": cfg.Reva.OIDC.IDClaim, }, }, }, }, }, } - // TODO merge configs for the same address gr.Add(func() error { runtime.Run(rcfg, pidFile) return nil }, func(_ error) { logger.Info(). - Str("server", "authprovider"). + Str("server", c.Command.Name). Msg("Shutting down server") cancel() @@ -119,6 +114,8 @@ func AuthProvider(cfg *config.Config) cli.Command { { server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.AuthBearer.DebugAddr), debug.Logger(logger), debug.Context(ctx), debug.Config(cfg), diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go new file mode 100644 index 0000000000..0520476d89 --- /dev/null +++ b/pkg/command/frontend.go @@ -0,0 +1,352 @@ +package command + +import ( + "context" + "fmt" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// Frontend is the entrypoint for the frontend command. +func Frontend(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "frontend", + Usage: "Start reva frontend service", + Flags: flagset.FrontendWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + // pregenerate list of valid localhost ports for the desktop redirect_uri + // TODO use custom scheme like "owncloud://localhost/user/callback" tracked in + var desktopRedirectURIs [65535 - 1024]string + for port := 0; port < len(desktopRedirectURIs); port++ { + desktopRedirectURIs[port] = fmt.Sprintf("http://localhost:%d/callback", (port + 1024)) + } + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.Frontend.MaxCPUs, + }, + "http": map[string]interface{}{ + "network": cfg.Reva.Frontend.Network, + "address": cfg.Reva.Frontend.Addr, + "middlewares": map[string]interface{}{ + "auth": map[string]interface{}{ + "gateway": cfg.Reva.Gateway.URL, + "credential_chain": []string{"basic", "bearer"}, + "token_strategy": "header", + "token_writer": "header", + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + "cors": map[string]interface{}{ + "allowed_origins": []string{"*"}, + "allowed_methods": []string{ + "OPTIONS", + "GET", + "PUT", + "POST", + "DELETE", + "MKCOL", + "PROPFIND", + "PROPPATCH", + "MOVE", + "COPY", + "REPORT", + "SEARCH", + }, + "allowed_headers": []string{ + "Origin", + "Accept", + "Depth", + "Content-Type", + "X-Requested-With", + "Authorization", + "Ocs-Apirequest", + "If-Match", + "If-None-Match", + "Destination", + "Overwrite", + }, + "allow_credentials": true, + "options_passthrough": false, + }, + }, + // TODO build services dynamically + "services": map[string]interface{}{ + "datagateway": map[string]interface{}{ + "prefix": "data", + "gateway": "", // TODO not needed? + "transfer_shared_secret": cfg.Reva.TransferSecret, + }, + "wellknown": map[string]interface{}{ + "issuer": cfg.Reva.OIDC.Issuer, + "authorization_endpoint": cfg.Reva.OIDC.Issuer + "/oauth2/auth", + "token_endpoint": cfg.Reva.OIDC.Issuer + "/oauth2/token", + "revocation_endpoint": cfg.Reva.OIDC.Issuer + "/oauth2/auth", + "introspection_endpoint": cfg.Reva.OIDC.Issuer + "/oauth2/introspect", + "userinfo_endpoint": cfg.Reva.OIDC.Issuer + "/oauth2/userinfo", + }, + "oidcprovider": map[string]interface{}{ + "prefix": "oauth2", + "gateway": cfg.Reva.Gateway.URL, + "issuer": cfg.Reva.OIDC.Issuer, + "clients": map[string]interface{}{ + // TODO make these configurable + // note: always use authorization code flow, see https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead for details + "phoenix": map[string]interface{}{ + "id": "phoenix", + "redirect_uris": []string{"http://localhost:9100/oidc-callback.html", "http://localhost:9100/"}, + "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, + "response_types": []string{"code"}, + "scopes": []string{"openid", "profile", "email", "offline"}, + "public": true, // force PKCS for public clients + }, + "desktop": map[string]interface{}{ + "id": "xdXOt13JKxym1B1QcEncf2XDkLAexMBFwiT9j6EfhhHFJhs2KM9jbjTmf8JBXE69", + "client_secret": "$2y$12$pKsCQPp8e/UOL1QDQhT3g.1J.KK8oMJACbEXIqRD0LiOxvgey.TtS", + // preregister localhost ports for the desktop + "redirect_uris": desktopRedirectURIs, + "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, + "response_types": []string{"code"}, + "scopes": []string{"openid", "profile", "email", "offline", "offline_access"}, + }, + // TODO add cli command for token fetching + "cli": map[string]interface{}{ + "id": "cli", + "client_secret": "$2a$10$IxMdI6d.LIRZPpSfEwNoeu4rY3FhDREsxFJXikcgdRRAStxUlsuEO", // = "foobar" + // use hardcoded port credentials for cli + "redirect_uris": []string{"http://localhost:18080/callback"}, + "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, + "response_types": []string{"code"}, + "scopes": []string{"openid", "profile", "email", "offline"}, + }, + }, + }, + "ocdav": map[string]interface{}{ + "prefix": "", + "chunk_folder": "/var/tmp/revad/chunks", + "gateway": cfg.Reva.Gateway.URL, + "files_namespace": "/", + "webdav_namespace": "/", + }, + "ocs": map[string]interface{}{ + "gateway": cfg.Reva.Gateway.URL, + "config": map[string]interface{}{ + "version": "1.8", + "website": "reva", + "host": "http://" + cfg.Reva.Frontend.URL, // TODO URLs should include the protocol + "contact": "admin@localhost", + "ssl": "false", + }, + "capabilities": map[string]interface{}{ + "capabilities": map[string]interface{}{ + "core": map[string]interface{}{ + "poll_interval": 60, + "webdav_root": "remote.php/webdav", + "status": map[string]interface{}{ + "installed": true, + "maintenance": false, + "needsDbUpgrade": false, + "version": "10.0.11.5", + "versionstring": "10.0.11", + "edition": "community", + "productname": "reva", + "hostname": "", + }, + }, + "checksums": map[string]interface{}{ + "supported_types": []string{"SHA256"}, + "preferred_upload_type": "SHA256", + }, + "files": map[string]interface{}{ + "private_links": false, + "bigfilechunking": false, + "blacklisted_files": []string{}, + "undelete": true, + "versioning": true, + }, + "dav": map[string]interface{}{ + "chunking": "1.0", + }, + "files_sharing": map[string]interface{}{ + "api_enabled": true, + "resharing": true, + "group_sharing": true, + "auto_accept_share": true, + "share_with_group_members_only": true, + "share_with_membership_groups_only": true, + "default_permissions": 22, + "search_min_length": 3, + "public": map[string]interface{}{ + "enabled": true, + "send_mail": true, + "social_share": true, + "upload": true, + "multiple": true, + "supports_upload_only": true, + "password": map[string]interface{}{ + "enforced": true, + "enforced_for": map[string]interface{}{ + "read_only": true, + "read_write": true, + "upload_only": true, + }, + }, + "expire_date": map[string]interface{}{ + "enabled": true, + }, + }, + "user": map[string]interface{}{ + "send_mail": true, + }, + "user_enumeration": map[string]interface{}{ + "enabled": true, + "group_members_only": true, + }, + "federation": map[string]interface{}{ + "outgoing": true, + "incoming": true, + }, + }, + "notifications": map[string]interface{}{ + "endpoints": []string{"list", "get", "delete"}, + }, + }, + "version": map[string]interface{}{ + "edition": "reva", + "major": 10, + "minor": 0, + "micro": 11, + "string": "10.0.11", + }, + }, + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.Frontend.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", "debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go new file mode 100644 index 0000000000..f3fe4a9b89 --- /dev/null +++ b/pkg/command/gateway.go @@ -0,0 +1,220 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// Gateway is the entrypoint for the gateway command. +func Gateway(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "gateway", + Usage: "Start reva gateway", + Flags: flagset.GatewayWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.Gateway.MaxCPUs, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.Gateway.Network, + "address": cfg.Reva.Gateway.Addr, + // TODO extract interceptor config, which is the same for all grpc services + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + }, + // TODO build services dynamically + "services": map[string]interface{}{ + "gateway": map[string]interface{}{ + // registries is located on the gateway + "authregistrysvc": cfg.Reva.Gateway.URL, + "storageregistrysvc": cfg.Reva.Gateway.URL, + "appregistrysvc": cfg.Reva.Gateway.URL, + // user metadata is located on the users services + "preferencessvc": cfg.Reva.Users.URL, + "userprovidersvc": cfg.Reva.Users.URL, + // sharing is located on the sharing service + "usershareprovidersvc": cfg.Reva.Sharing.URL, + "publicshareprovidersvc": cfg.Reva.Sharing.URL, + "ocmshareprovidersvc": cfg.Reva.Sharing.URL, + "commit_share_to_storage_grant": cfg.Reva.Gateway.CommitShareToStorageGrant, + // other + "datagateway": cfg.Reva.Frontend.URL, + "transfer_shared_secret": cfg.Reva.TransferSecret, + "transfer_expires": cfg.Reva.TransferExpires, + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + "authregistry": map[string]interface{}{ + "driver": "static", + "drivers": map[string]interface{}{ + "static": map[string]interface{}{ + "rules": map[string]interface{}{ + "basic": cfg.Reva.AuthBasic.URL, + "bearer": cfg.Reva.AuthBearer.URL, + }, + }, + }, + }, + "storageregistry": map[string]interface{}{ + "driver": "static", + "drivers": map[string]interface{}{ + "static": map[string]interface{}{ + "rules": map[string]interface{}{ + cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL, + cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, + cfg.Reva.StorageHome.MountPath: cfg.Reva.StorageHome.URL, + // home has no lookup by mount id because it resolves to another storage + cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL, + cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL, + cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL, + cfg.Reva.StorageOC.MountID: cfg.Reva.StorageOC.URL, + cfg.Reva.StorageS3.MountPath: cfg.Reva.StorageS3.URL, + cfg.Reva.StorageS3.MountID: cfg.Reva.StorageS3.URL, + cfg.Reva.StorageWND.MountPath: cfg.Reva.StorageWND.URL, + cfg.Reva.StorageWND.MountID: cfg.Reva.StorageWND.URL, + cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL, + cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL, + }, + }, + }, + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.Gateway.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", "debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", "debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/legacy.go b/pkg/command/legacy.go deleted file mode 100644 index 78bd8766ea..0000000000 --- a/pkg/command/legacy.go +++ /dev/null @@ -1,453 +0,0 @@ -package command - -import ( - "context" - "os" - "os/signal" - "path" - "time" - - "github.com/cs3org/reva/cmd/revad/runtime" - "github.com/gofrs/uuid" - "github.com/micro/cli" - "github.com/oklog/run" - "github.com/owncloud/ocis-reva/pkg/config" - "github.com/owncloud/ocis-reva/pkg/flagset" - "github.com/owncloud/ocis-reva/pkg/server/debug" -) - -// Legacy is the entrypoint for the legacy command. -func Legacy(cfg *config.Config) cli.Command { - return cli.Command{ - Name: "legacy", - Usage: "Start legacy server mimicking oc10", - Flags: flagset.ServerWithConfig(cfg), - Action: func(c *cli.Context) error { - logger := NewLogger(cfg) - - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "agent": - logger.Error(). - Str("type", t). - Msg("Reva only supports the jaeger tracing backend") - - case "jaeger": - logger.Info(). - Str("type", t). - Msg("configuring reva to use the jaeger tracing backend") - - case "zipkin": - logger.Error(). - Str("type", t). - Msg("Reva only supports the jaeger tracing backend") - - default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") - } - - } else { - logger.Debug(). - Msg("Tracing is not enabled") - } - - var ( - gr = run.Group{} - ctx, cancel = context.WithCancel(context.Background()) - ) - - defer cancel() - - // Flags have to be injected all the way down to the go-micro service - { - - uuid := uuid.Must(uuid.NewV4()) - pidFile := path.Join(os.TempDir(), "revad-"+uuid.String()+".pid") - - rcfg := map[string]interface{}{ - "core": map[string]interface{}{ - "max_cpus": cfg.Reva.MaxCPUs, - "tracing_enabled": cfg.Tracing.Enabled, - "tracing_endpoint": cfg.Tracing.Endpoint, - "tracing_collector": cfg.Tracing.Collector, - "tracing_service_name": cfg.Tracing.Service, - }, - "log": map[string]interface{}{ - "level": cfg.Reva.LogLevel, - //TODO mode": ""console" # "console" or "json" - //TODO output": ""./standalone.log" - }, - "http": map[string]interface{}{ - "network": cfg.Reva.HTTP.Network, - "address": cfg.Reva.HTTP.Addr, - "enabled_services": []string{ - "dataprovider", - "ocdav", - "prometheus", - "wellknown", - "oidcprovider", - "ocs", - }, - "enabled_middlewares": []string{ - //"cors", - "auth", - }, - "middlewares": map[string]interface{}{ - "auth": map[string]interface{}{ - "gateway": cfg.Reva.GRPC.Addr, - "auth_type": "oidc", - "credential_strategy": "oidc", - "token_strategy": "header", - "token_writer": "header", - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - "skip_methods": []string{ - "/favicon.ico", - "/status.php", - "/oauth2", - "/oauth2/auth", - "/oauth2/token", - // TODO protect the introspection endpoint from external requests. - // should only be reachable by internal services, which is why the - // oidc-provider.toml has clientid and secret that are used for a basic auth - //"/oauth2/introspect", // no longer used, oidc auth checks access token using the userinfo endpoint - "/oauth2/userinfo", - "/oauth2/sessions", - "/.well-known/openid-configuration", - "/metrics", // for prometheus metrics - }, - }, - }, - "services": map[string]interface{}{ - "oidcprovider": map[string]interface{}{ - "prefix": "oauth2", - "gateway": cfg.Reva.GRPC.Addr, - "auth_type": "basic", - "issuer": cfg.Reva.HTTP.Addr, - "clients": map[string]interface{}{ - "phoenix": map[string]interface{}{ - "id": "phoenix", - // use ocis port range for phoenix - // TODO should use the micro / ocis http gateway, but then it would no longer be able to run standalone - // IMO the ports should be fetched from the ocis registry anyway - "redirect_uris": []string{"http://localhost:9100/oidc-callback.html", "http://localhost:9100/"}, - "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, - "response_types": []string{"code"}, // use authorization code flow, see https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead for details - "scopes": []string{"openid", "profile", "email", "offline"}, - "public": true, // force PKCS for public clients - }, - "cli": map[string]interface{}{ - "id": "cli", - "client_secret": "$2a$10$IxMdI6d.LIRZPpSfEwNoeu4rY3FhDREsxFJXikcgdRRAStxUlsuEO", // = "foobar" - // use hardcoded port credentials for cli - "redirect_uris": []string{"http://localhost:18080/callback"}, - "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, - "response_types": []string{"code"}, // use authorization code flow, see https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead for details - "scopes": []string{"openid", "profile", "email", "offline"}, - }, - }, - }, - "dataprovider": map[string]interface{}{ - "driver": "owncloud", - "prefix": "data", - "tmp_folder": "/var/tmp/", - "drivers": map[string]interface{}{ - "owncloud": map[string]interface{}{ - "datadirectory": "/var/tmp/reva/data", - }, - }, - }, - "ocdav": map[string]interface{}{ - "prefix": "", - "chunk_folder": "/var/tmp/revad/chunks", - "gateway": cfg.Reva.GRPC.Addr, - }, - "ocs": map[string]interface{}{ - "gateway": cfg.Reva.GRPC.Addr, - "config": map[string]interface{}{ - "version": "1.8", - "website": "ocis", - "host": cfg.Reva.HTTP.Addr, // TODO should be read from registry - "contact": "admin@localhost", - "ssl": "false", - }, - "capabilities": map[string]interface{}{ - "capabilities": map[string]interface{}{ - "core": map[string]interface{}{ - "poll_interval": 60, - "webdav_root": "remote.php/webdav", - "status": map[string]interface{}{ - "installed": true, - "maintenance": false, - "needsDbUpgrade": false, - "version": "10.0.11.5", - "versionstring": "10.0.11", - "edition": "community", - "productname": "reva", - "hostname": "", - }, - }, - "checksums": map[string]interface{}{ - "supported_types": []string{"SHA256"}, - "preferred_upload_type": "SHA256", - }, - "files": map[string]interface{}{ - "private_links": false, - "bigfilechunking": false, - "blacklisted_files": []string{}, - "undelete": true, - "versioning": true, - }, - "dav": map[string]interface{}{ - "chunking": "1.0", - }, - "files_sharing": map[string]interface{}{ - "api_enabled": true, - "resharing": true, - "group_sharing": true, - "auto_accept_share": true, - "share_with_group_members_only": true, - "share_with_membership_groups_only": true, - "default_permissions": 22, - "search_min_length": 3, - "public": map[string]interface{}{ - "enabled": true, - "send_mail": true, - "social_share": true, - "upload": true, - "multiple": true, - "supports_upload_only": true, - "password": map[string]interface{}{ - "enforced": true, - "enforced_for": map[string]interface{}{ - "read_only": true, - "read_write": true, - "upload_only": true, - }, - }, - "expire_date": map[string]interface{}{ - "enabled": true, - }, - }, - "user": map[string]interface{}{ - "send_mail": true, - }, - "user_enumeration": map[string]interface{}{ - "enabled": true, - "group_members_only": true, - }, - "federation": map[string]interface{}{ - "outgoing": true, - "incoming": true, - }, - }, - "notifications": map[string]interface{}{ - "endpoints": []string{"list", "get", "delete"}, - }, - }, - "version": map[string]interface{}{ - "edition": "ocis", - "major": 11, - "minor": 0, - "micro": 0, - "string": "11.0.0", - }, - }, - }, - }, - }, - "grpc": map[string]interface{}{ - "network": cfg.Reva.GRPC.Network, - "address": cfg.Reva.GRPC.Addr, - "enabled_services": []string{ - "authprovider", // provides basic auth - "storageprovider", // handles storage metadata - "usershareprovider", // provides user shares - "userprovider", // provides user matadata (used to look up email, displayname etc after a login) - "preferences", // provides user preferences - "gateway", // to lookup services and authenticate requests - "authregistry", // used by the gateway to look up auth providers - "storageregistry", // used by the gateway to look up storage providers - }, - "interceptors": map[string]interface{}{ - "auth": map[string]interface{}{ - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - "skip_methods": []string{ - // we need to allow calls that happen during authentication - "/cs3.gatewayv0alpha.GatewayService/Authenticate", - "/cs3.gatewayv0alpha.GatewayService/WhoAmI", - "/cs3.gatewayv0alpha.GatewayService/GetUser", - "/cs3.gatewayv0alpha.GatewayService/ListAuthProviders", - "/cs3.authregistryv0alpha.AuthRegistryService/ListAuthProviders", - "/cs3.authregistryv0alpha.AuthRegistryService/GetAuthProvider", - "/cs3.authproviderv0alpha.AuthProviderService/Authenticate", - "/cs3.userproviderv0alpha.UserProviderService/GetUser", - }, - }, - }, - "services": map[string]interface{}{ - "gateway": map[string]interface{}{ - "authregistrysvc": cfg.Reva.GRPC.Addr, - "storageregistrysvc": cfg.Reva.GRPC.Addr, - "appregistrysvc": cfg.Reva.GRPC.Addr, - "preferencessvc": cfg.Reva.GRPC.Addr, - "usershareprovidersvc": cfg.Reva.GRPC.Addr, - "publicshareprovidersvc": cfg.Reva.GRPC.Addr, - "ocmshareprovidersvc": cfg.Reva.GRPC.Addr, - "userprovidersvc": cfg.Reva.GRPC.Addr, - "commit_share_to_storage_grant": true, - "datagateway": "http://" + cfg.Reva.HTTP.Addr + "/data", - "transfer_shared_secret": "replace-me-with-a-transfer-secret", - "transfer_expires": 6, // give it a moment - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - "authregistry": map[string]interface{}{ - "driver": "static", - "drivers": map[string]interface{}{ - "static": map[string]interface{}{ - "rules": map[string]interface{}{ - //"basic": "localhost:9999", - "oidc": cfg.Reva.GRPC.Addr, - }, - }, - }, - }, - "storageregistry": map[string]interface{}{ - "driver": "static", - "drivers": map[string]interface{}{ - "static": map[string]interface{}{ - "rules": map[string]interface{}{ - "/": cfg.Reva.GRPC.Addr, - "123e4567-e89b-12d3-a456-426655440000": cfg.Reva.GRPC.Addr, - }, - }, - }, - }, - "authprovider": map[string]interface{}{ - "auth_manager": "oidc", - "auth_managers": map[string]interface{}{ - "oidc": map[string]interface{}{ - "provider": cfg.AuthProvider.Provider, - "insecure": cfg.AuthProvider.Insecure, - }, - }, - "userprovidersvc": cfg.Reva.GRPC.Addr, - }, - "userprovider": map[string]interface{}{ - "driver": "demo", // TODO use graph api - /* - "drivers": map[string]interface{}{ - "graph": map[string]interface{}{ - "provider": cfg.AuthProvider.Provider, - "insecure": cfg.AuthProvider.Insecure, - }, - }, - */ - }, - "usershareprovider": map[string]interface{}{ - "driver": "memory", - }, - "storageprovider": map[string]interface{}{ - "mount_path": "/", - "mount_id": "123e4567-e89b-12d3-a456-426655440000", - "data_server_url": "http://" + cfg.Reva.HTTP.Addr + "/data", - "expose_data_server": true, - "available_checksums": map[string]interface{}{ - "md5": 100, - "unset": 1000, - }, - "driver": "owncloud", - "drivers": map[string]interface{}{ - "owncloud": map[string]interface{}{ - "datadirectory": "/var/tmp/reva/data", - }, - }, - }, - }, - }, - } - gr.Add(func() error { - // TODO micro knows nothing about reva - runtime.Run(rcfg, pidFile) - return nil - }, func(_ error) { - logger.Info(). - Str("server", "reva"). - Msg("Shutting down server") - - cancel() - }) - } - - { - server, err := debug.Server( - debug.Logger(logger), - debug.Context(ctx), - debug.Config(cfg), - ) - - if err != nil { - logger.Info(). - Err(err). - Str("server", "debug"). - Msg("Failed to initialize server") - - return err - } - - gr.Add(func() error { - return server.ListenAndServe() - }, func(_ error) { - ctx, timeout := context.WithTimeout(ctx, 5*time.Second) - - defer timeout() - defer cancel() - - if err := server.Shutdown(ctx); err != nil { - logger.Info(). - Err(err). - Str("server", "debug"). - Msg("Failed to shutdown server") - } else { - logger.Info(). - Str("server", "debug"). - Msg("Shutting down server") - } - }) - } - - { - stop := make(chan os.Signal, 1) - - gr.Add(func() error { - signal.Notify(stop, os.Interrupt) - - <-stop - - return nil - }, func(err error) { - close(stop) - cancel() - }) - } - - return gr.Run() - }, - } -} diff --git a/pkg/command/root.go b/pkg/command/root.go index 4395742e59..c787b5fcc1 100644 --- a/pkg/command/root.go +++ b/pkg/command/root.go @@ -74,9 +74,17 @@ func Execute() error { }, Commands: []cli.Command{ - Server(cfg), - Legacy(cfg), - AuthProvider(cfg), + Frontend(cfg), + Gateway(cfg), + Users(cfg), + AuthBasic(cfg), + AuthBearer(cfg), + Sharing(cfg), + StorageRoot(cfg), + StorageHome(cfg), + StorageHomeData(cfg), + StorageOC(cfg), + StorageOCData(cfg), Health(cfg), }, } diff --git a/pkg/command/server.go b/pkg/command/server.go deleted file mode 100644 index 8b3f45e5f2..0000000000 --- a/pkg/command/server.go +++ /dev/null @@ -1,328 +0,0 @@ -package command - -import ( - "context" - "os" - "os/signal" - "path" - "sync" - "time" - - "github.com/cs3org/reva/cmd/revad/runtime" - "github.com/gofrs/uuid" - "github.com/micro/cli" - "github.com/oklog/run" - "github.com/owncloud/ocis-reva/pkg/config" - "github.com/owncloud/ocis-reva/pkg/flagset" - "github.com/owncloud/ocis-reva/pkg/server/debug" -) - -// Server is the entrypoint for the server command. -func Server(cfg *config.Config) cli.Command { - return cli.Command{ - Name: "server", - Usage: "Start integrated server", - Flags: flagset.ServerWithConfig(cfg), - Action: func(c *cli.Context) error { - logger := NewLogger(cfg) - - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "agent": - logger.Error(). - Str("type", t). - Msg("Reva only supports the jaeger tracing backend") - - case "jaeger": - logger.Info(). - Str("type", t). - Msg("configuring reva to use the jaeger tracing backend") - - case "zipkin": - logger.Error(). - Str("type", t). - Msg("Reva only supports the jaeger tracing backend") - - default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") - } - - } else { - logger.Debug(). - Msg("Tracing is not enabled") - } - - var ( - gr = run.Group{} - ctx, cancel = context.WithCancel(context.Background()) - ) - - defer cancel() - - // Flags have to be injected all the way down to the go-micro service - { - - if len(cfg.Reva.Configs) < 1 { - cfg.Reva.Configs = map[string]interface{}{ - "default": map[string]interface{}{ - "core": map[string]interface{}{ - "max_cpus": cfg.Reva.MaxCPUs, - "tracing_enabled": cfg.Tracing.Enabled, - "tracing_endpoint": cfg.Tracing.Endpoint, - "tracing_collector": cfg.Tracing.Collector, - "tracing_service_name": cfg.Tracing.Service, - }, - "log": map[string]interface{}{ - "level": cfg.Reva.LogLevel, - //TODO mode = "console" # "console" or "json" - //TODO output = "./standalone.log" - }, - "http": map[string]interface{}{ - "network": cfg.Reva.HTTP.Network, - "address": cfg.Reva.HTTP.Addr, - "enabled_services": []string{ - "dataprovider", - "prometheus", - }, - "enabled_middlewares": []string{ - //"cors", - "auth", - }, - "middlewares": map[string]interface{}{ - "auth": map[string]interface{}{ - "gateway": cfg.Reva.GRPC.Addr, - "auth_type": "oidc", - "credential_strategy": "oidc", - "token_strategy": "header", - "token_writer": "header", - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - "skip_methods": []string{ - "/metrics", // for prometheus metrics - }, - }, - }, - "services": map[string]interface{}{ - "dataprovider": map[string]interface{}{ - "driver": "local", - "prefix": "data", - "tmp_folder": "/var/tmp/", - "drivers": map[string]interface{}{ - "local": map[string]interface{}{ - "root": "/var/tmp/reva/data", - }, - }, - }, - }, - }, - "grpc": map[string]interface{}{ - "network": cfg.Reva.GRPC.Network, - "address": cfg.Reva.GRPC.Addr, - "enabled_services": []string{ - "authprovider", // provides basic auth - "storageprovider", // handles storage metadata - "usershareprovider", // provides user shares - "userprovider", // provides user matadata (used to look up email, displayname etc after a login) - "preferences", // provides user preferences - "gateway", // to lookup services and authenticate requests - "authregistry", // used by the gateway to look up auth providers - "storageregistry", // used by the gateway to look up storage providers - }, - "interceptors": map[string]interface{}{ - "auth": map[string]interface{}{ - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - "skip_methods": []string{ - // we need to allow calls that happen during authentication - "/cs3.gatewayv0alpha.GatewayService/Authenticate", - "/cs3.gatewayv0alpha.GatewayService/WhoAmI", - "/cs3.gatewayv0alpha.GatewayService/GetUser", - "/cs3.gatewayv0alpha.GatewayService/ListAuthProviders", - "/cs3.authregistryv0alpha.AuthRegistryService/ListAuthProviders", - "/cs3.authregistryv0alpha.AuthRegistryService/GetAuthProvider", - "/cs3.authproviderv0alpha.AuthProviderService/Authenticate", - "/cs3.userproviderv0alpha.UserProviderService/GetUser", - }, - }, - }, - "services": map[string]interface{}{ - "gateway": map[string]interface{}{ - "authregistrysvc": cfg.Reva.GRPC.Addr, - "storageregistrysvc": cfg.Reva.GRPC.Addr, - "appregistrysvc": cfg.Reva.GRPC.Addr, - "preferencessvc": cfg.Reva.GRPC.Addr, - "usershareprovidersvc": cfg.Reva.GRPC.Addr, - "publicshareprovidersvc": cfg.Reva.GRPC.Addr, - "ocmshareprovidersvc": cfg.Reva.GRPC.Addr, - "userprovidersvc": cfg.Reva.GRPC.Addr, - "commit_share_to_storage_grant": true, - "datagateway": "http://" + cfg.Reva.HTTP.Addr + "/data", - "transfer_shared_secret": "replace-me-with-a-transfer-secret", - "transfer_expires": 6, // give it a moment - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - "authregistry": map[string]interface{}{ - "driver": "static", - "drivers": map[string]interface{}{ - "static": map[string]interface{}{ - "rules": map[string]interface{}{ - //"basic": "localhost:9999", - "oidc": cfg.Reva.GRPC.Addr, - }, - }, - }, - }, - "storageregistry": map[string]interface{}{ - "driver": "static", - "drivers": map[string]interface{}{ - "static": map[string]interface{}{ - "rules": map[string]interface{}{ - "/": cfg.Reva.GRPC.Addr, - "123e4567-e89b-12d3-a456-426655440000": cfg.Reva.GRPC.Addr, - }, - }, - }, - }, - "authprovider": map[string]interface{}{ - "auth_manager": "oidc", - "auth_managers": map[string]interface{}{ - "oidc": map[string]interface{}{ - "provider": cfg.AuthProvider.Provider, - "insecure": cfg.AuthProvider.Insecure, - }, - }, - "userprovidersvc": cfg.Reva.GRPC.Addr, - }, - "userprovider": map[string]interface{}{ - "driver": "demo", // TODO use graph api - /* - "drivers": map[string]interface{}{ - "graph": map[string]interface{}{ - "provider": cfg.AuthProvider.Provider, - "insecure": cfg.AuthProvider.Insecure, - }, - }, - */ - }, - "usershareprovider": map[string]interface{}{ - "driver": "memory", - }, - "storageprovider": map[string]interface{}{ - "mount_path": "/", - "mount_id": "123e4567-e89b-12d3-a456-426655440000", - "data_server_url": "http://" + cfg.Reva.HTTP.Addr + "/data", - "expose_data_server": true, - "available_checksums": map[string]interface{}{ - "md5": 100, - "unset": 1000, - }, - "driver": "local", - "drivers": map[string]interface{}{ - "local": map[string]interface{}{ - "root": "/var/tmp/reva/data", - }, - }, - }, - }, - }, - }, - } - } - gr.Add(func() error { - var wg sync.WaitGroup - for k, conf := range cfg.Reva.Configs { - wg.Add(1) - go func(wg *sync.WaitGroup, config string, c map[string]interface{}) { - uuid := uuid.Must(uuid.NewV4()) - pidFile := path.Join(os.TempDir(), "revad-"+uuid.String()+".pid") - logger.Info(). - Str("config", config). - Str("server", "reva"). - Msg("Starting server") - // TODO register reva as a service in micro - runtime.Run(c, pidFile) - wg.Done() - }(&wg, k, conf.(map[string]interface{})) - } - wg.Wait() - return nil - }, func(_ error) { - logger.Info(). - Str("server", "reva"). - Msg("Shutting down server") - - cancel() - }) - } - - { - server, err := debug.Server( - debug.Logger(logger), - debug.Context(ctx), - debug.Config(cfg), - ) - - if err != nil { - logger.Info(). - Err(err). - Str("server", "debug"). - Msg("Failed to initialize server") - - return err - } - - gr.Add(func() error { - return server.ListenAndServe() - }, func(_ error) { - ctx, timeout := context.WithTimeout(ctx, 5*time.Second) - - defer timeout() - defer cancel() - - if err := server.Shutdown(ctx); err != nil { - logger.Info(). - Err(err). - Str("server", "debug"). - Msg("Failed to shutdown server") - } else { - logger.Info(). - Str("server", "debug"). - Msg("Shutting down server") - } - }) - } - - { - stop := make(chan os.Signal, 1) - - gr.Add(func() error { - signal.Notify(stop, os.Interrupt) - - <-stop - - return nil - }, func(err error) { - close(stop) - cancel() - }) - } - - return gr.Run() - }, - } -} diff --git a/pkg/command/sharing.go b/pkg/command/sharing.go new file mode 100644 index 0000000000..4da067f859 --- /dev/null +++ b/pkg/command/sharing.go @@ -0,0 +1,168 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// Sharing is the entrypoint for the sharing command. +func Sharing(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "sharing", + Usage: "Start reva sharing service", + Flags: flagset.SharingWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.Sharing.MaxCPUs, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.Sharing.Network, + "address": cfg.Reva.Sharing.Addr, + // TODO extract interceptor config, which is the same for all grpc services + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + }, + // TODO build services dynamically + "services": map[string]interface{}{ + "usershareprovider": map[string]interface{}{ + "driver": "memory", + }, + "publicshareprovider": map[string]interface{}{ + "driver": "memory", + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.Sharing.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", c.Command.Name+"-debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go new file mode 100644 index 0000000000..6165603982 --- /dev/null +++ b/pkg/command/storagehome.go @@ -0,0 +1,210 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// StorageHome is the entrypoint for the storage-home command. +func StorageHome(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "storage-home", + Usage: "Start reva storage-home service", + Flags: flagset.StorageHomeWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.StorageHome.MaxCPUs, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.StorageHome.Network, + "address": cfg.Reva.StorageHome.Addr, + // TODO extract interceptor config, which is the same for all grpc services + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + }, + // TODO build services dynamically + "services": map[string]interface{}{ + "storageprovider": map[string]interface{}{ + "driver": cfg.Reva.StorageHome.Driver, + "drivers": map[string]interface{}{ + "eos": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + }, + "local": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + }, + "owncloud": map[string]interface{}{ + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + "s3": map[string]interface{}{ + "region": cfg.Reva.Storages.S3.Region, + "access_key": cfg.Reva.Storages.S3.AccessKey, + "secret_key": cfg.Reva.Storages.S3.SecretKey, + "endpoint": cfg.Reva.Storages.S3.Endpoint, + "bucket": cfg.Reva.Storages.S3.Bucket, + "prefix": cfg.Reva.Storages.S3.Prefix, + }, + }, + "path_wrapper": cfg.Reva.StorageHome.PathWrapper, + "path_wrappers": map[string]interface{}{ + "context": map[string]interface{}{ + "prefix": cfg.Reva.StorageHome.PathWrapperContext.Prefix, + }, + }, + "mount_path": cfg.Reva.StorageHome.MountPath, + "mount_id": cfg.Reva.StorageHome.MountID, + "expose_data_server": cfg.Reva.StorageHome.ExposeDataServer, + // TODO use cfg.Reva.StorageHomeData.URL, ? + "data_server_url": cfg.Reva.StorageHome.DataServerURL, + "available_checksums": map[string]interface{}{ + "md5": 100, + "unset": 1000, + }, + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.StorageHome.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", c.Command.Name+"-debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go new file mode 100644 index 0000000000..c3eba563e7 --- /dev/null +++ b/pkg/command/storagehomedata.go @@ -0,0 +1,200 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// StorageHomeData is the entrypoint for the storage-home-data command. +func StorageHomeData(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "storage-home-data", + Usage: "Start reva storage-home-data service", + Flags: flagset.StorageHomeDataWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.StorageHomeData.MaxCPUs, + }, + "http": map[string]interface{}{ + "network": cfg.Reva.StorageHomeData.Network, + "address": cfg.Reva.StorageHomeData.Addr, + "middlewares": map[string]interface{}{ + "auth": map[string]interface{}{ + "gateway": cfg.Reva.Gateway.URL, + "credential_chain": []string{"basic", "bearer"}, + "token_strategy": "header", + "token_writer": "header", + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + }, + // TODO build services dynamically + "services": map[string]interface{}{ + "dataprovider": map[string]interface{}{ + "prefix": cfg.Reva.StorageHomeData.Prefix, + "driver": cfg.Reva.StorageHomeData.Driver, + "drivers": map[string]interface{}{ + "eos": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + }, + "local": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + }, + "owncloud": map[string]interface{}{ + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + "s3": map[string]interface{}{ + "region": cfg.Reva.Storages.S3.Region, + "access_key": cfg.Reva.Storages.S3.AccessKey, + "secret_key": cfg.Reva.Storages.S3.SecretKey, + "endpoint": cfg.Reva.Storages.S3.Endpoint, + "bucket": cfg.Reva.Storages.S3.Bucket, + "prefix": cfg.Reva.Storages.S3.Prefix, + }, + }, + "temp_folder": cfg.Reva.StorageHomeData.TempFolder, + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.StorageHomeData.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", c.Command.Name+"-debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go new file mode 100644 index 0000000000..06dda84d2e --- /dev/null +++ b/pkg/command/storageoc.go @@ -0,0 +1,210 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// StorageOC is the entrypoint for the storage-oc command. +func StorageOC(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "storage-oc", + Usage: "Start reva storage-oc service", + Flags: flagset.StorageOCWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.StorageOC.MaxCPUs, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.StorageOC.Network, + "address": cfg.Reva.StorageOC.Addr, + // TODO extract interceptor config, which is the same for all grpc services + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + }, + // TODO build services dynamically + "services": map[string]interface{}{ + "storageprovider": map[string]interface{}{ + "driver": cfg.Reva.StorageOC.Driver, + "drivers": map[string]interface{}{ + "eos": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + }, + "local": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + }, + "owncloud": map[string]interface{}{ + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + "s3": map[string]interface{}{ + "region": cfg.Reva.Storages.S3.Region, + "access_key": cfg.Reva.Storages.S3.AccessKey, + "secret_key": cfg.Reva.Storages.S3.SecretKey, + "endpoint": cfg.Reva.Storages.S3.Endpoint, + "bucket": cfg.Reva.Storages.S3.Bucket, + "prefix": cfg.Reva.Storages.S3.Prefix, + }, + }, + "path_wrapper": cfg.Reva.StorageOC.PathWrapper, + "path_wrappers": map[string]interface{}{ + "context": map[string]interface{}{ + "prefix": cfg.Reva.StorageOC.PathWrapperContext.Prefix, + }, + }, + "mount_path": cfg.Reva.StorageOC.MountPath, + "mount_id": cfg.Reva.StorageOC.MountID, + "expose_data_server": cfg.Reva.StorageOC.ExposeDataServer, + // TODO use cfg.Reva.SStorageOCData.URL, ? + "data_server_url": cfg.Reva.StorageOC.DataServerURL, + "available_checksums": map[string]interface{}{ + "md5": 100, + "unset": 1000, + }, + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.StorageOC.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", c.Command.Name+"-debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go new file mode 100644 index 0000000000..1af607dbc7 --- /dev/null +++ b/pkg/command/storageocdata.go @@ -0,0 +1,200 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// StorageOCData is the entrypoint for the storage-oc-data command. +func StorageOCData(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "storage-oc-data", + Usage: "Start reva storage-oc-data service", + Flags: flagset.StorageOCDataWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.StorageOCData.MaxCPUs, + }, + "http": map[string]interface{}{ + "network": cfg.Reva.StorageOCData.Network, + "address": cfg.Reva.StorageOCData.Addr, + "middlewares": map[string]interface{}{ + "auth": map[string]interface{}{ + "gateway": cfg.Reva.Gateway.URL, + "credential_chain": []string{"basic", "bearer"}, + "token_strategy": "header", + "token_writer": "header", + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + }, + // TODO build services dynamically + "services": map[string]interface{}{ + "dataprovider": map[string]interface{}{ + "prefix": cfg.Reva.StorageOCData.Prefix, + "driver": cfg.Reva.StorageOCData.Driver, + "drivers": map[string]interface{}{ + "eos": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + }, + "local": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + }, + "owncloud": map[string]interface{}{ + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + "s3": map[string]interface{}{ + "region": cfg.Reva.Storages.S3.Region, + "access_key": cfg.Reva.Storages.S3.AccessKey, + "secret_key": cfg.Reva.Storages.S3.SecretKey, + "endpoint": cfg.Reva.Storages.S3.Endpoint, + "bucket": cfg.Reva.Storages.S3.Bucket, + "prefix": cfg.Reva.Storages.S3.Prefix, + }, + }, + "temp_folder": cfg.Reva.StorageOCData.TempFolder, + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.StorageOCData.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", c.Command.Name+"-debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go new file mode 100644 index 0000000000..005304219a --- /dev/null +++ b/pkg/command/storageroot.go @@ -0,0 +1,209 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// StorageRoot is the entrypoint for the storage-root command. +func StorageRoot(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "storage-root", + Usage: "Start reva storage-root service", + Flags: flagset.StorageRootWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.StorageRoot.MaxCPUs, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.StorageRoot.Network, + "address": cfg.Reva.StorageRoot.Addr, + // TODO extract interceptor config, which is the same for all grpc services + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + }, + // TODO build services dynamically + "services": map[string]interface{}{ + "storageprovider": map[string]interface{}{ + "driver": cfg.Reva.StorageRoot.Driver, + "drivers": map[string]interface{}{ + "eos": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + }, + "local": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + }, + "owncloud": map[string]interface{}{ + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + "s3": map[string]interface{}{ + "region": cfg.Reva.Storages.S3.Region, + "access_key": cfg.Reva.Storages.S3.AccessKey, + "secret_key": cfg.Reva.Storages.S3.SecretKey, + "endpoint": cfg.Reva.Storages.S3.Endpoint, + "bucket": cfg.Reva.Storages.S3.Bucket, + "prefix": cfg.Reva.Storages.S3.Prefix, + }, + }, + "path_wrapper": cfg.Reva.StorageRoot.PathWrapper, + "path_wrappers": map[string]interface{}{ + "context": map[string]interface{}{ + "prefix": cfg.Reva.StorageRoot.PathWrapperContext.Prefix, + }, + }, + "mount_path": cfg.Reva.StorageRoot.MountPath, + "mount_id": cfg.Reva.StorageRoot.MountID, + "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, + "data_server_url": cfg.Reva.StorageRoot.DataServerURL, + "available_checksums": map[string]interface{}{ + "md5": 100, + "unset": 1000, + }, + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.StorageRoot.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", c.Command.Name+"-debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/users.go b/pkg/command/users.go new file mode 100644 index 0000000000..4845032f98 --- /dev/null +++ b/pkg/command/users.go @@ -0,0 +1,186 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// Users is the entrypoint for the sharing command. +func Users(cfg *config.Config) cli.Command { + return cli.Command{ + Name: "users", + Usage: "Start reva users service", + Flags: flagset.UsersWithConfig(cfg), + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.Users.MaxCPUs, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.Users.Network, + "address": cfg.Reva.Users.Addr, + // TODO extract interceptor config, which is the same for all grpc services + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.JWTSecret, + }, + }, + }, + }, + // TODO build services dynamically + "services": map[string]interface{}{ + "userprovider": map[string]interface{}{ + "driver": cfg.Reva.Users.Driver, + "drivers": map[string]interface{}{ + "json": map[string]interface{}{ + "users": cfg.Reva.Users.JSON, + }, + "ldap": map[string]interface{}{ + "hostname": cfg.Reva.LDAP.Hostname, + "port": cfg.Reva.LDAP.Port, + "base_dn": cfg.Reva.LDAP.BaseDN, + "userfilter": cfg.Reva.LDAP.UserFilter, + "groupfilter": cfg.Reva.LDAP.GroupFilter, + "bind_username": cfg.Reva.LDAP.BindDN, + "bind_password": cfg.Reva.LDAP.BindPassword, + "idp": cfg.Reva.LDAP.IDP, + "schema": map[string]interface{}{ + "dn": "dn", + "uid": cfg.Reva.LDAP.Schema.UID, + "mail": cfg.Reva.LDAP.Schema.Mail, + "displayName": cfg.Reva.LDAP.Schema.DisplayName, + "cn": cfg.Reva.LDAP.Schema.CN, + }, + }, + }, + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.Users.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", c.Command.Name+"-debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/config/config.go b/pkg/config/config.go index 3eafc1b2b1..d40532e11f 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -15,33 +15,179 @@ type Debug struct { Zpages bool } -type HTTP struct { - Network string - Addr string - Root string // TODO do we need the http root path -} -type GRPC struct { - Network string - Addr string +type Gateway struct { + Port + CommitShareToStorageGrant bool } -// Reva defines the available reva configuration. -type Reva struct { +type Port struct { // MaxCPUs can be a number or a percentage MaxCPUs string LogLevel string // Network can be tcp, udp or unix - HTTP HTTP - GRPC GRPC - JWTSecret string - // Used to pass in configs from the ocis repo, multiple reva instances can be started with this - Configs map[string]interface{} + Network string + // Addr to listen on, hostname:port (0.0.0.0:9999 for all interfaces) or socket (/var/run/reva/sock) + Addr string + // Protocol can be grpc or http + Protocol string + // URL is used by the gateway and registries (eg http://localhost:9100 or https://cloud.example.com) + URL string + // DebugAddr for the debug endpoint to bind to + DebugAddr string + // Services can be used to give a list of services that should be started on this port + Services string + // used to store the parsed services + servicesList []string + // Config can be used to configure the reva instance. + // Services and Protocol will be ignored if this is used + Config map[string]interface{} +} +type Users struct { + Port + Driver string + JSON string +} +type PathWrapperContext struct { + Prefix string +} +type StoragePort struct { + Port + Driver string + PathWrapper string + PathWrapperContext PathWrapperContext + MountPath string + MountID string + ExposeDataServer bool + DataServerURL string + // TODO checksums ... figure out what that is supposed to do + + // for HTTP ports with only one http service + Prefix string + TempFolder string +} +type StorageConfig struct { + EOS StorageEOS + Local StorageLocal + OwnCloud StorageOwnCloud + S3 StorageS3 + // TODO checksums ... figure out what that is supposed to do +} +type StorageEOS struct { + // Namespace for metadata operations + Namespace string + + // Location of the eos binary. + // Default is /usr/bin/eos. + EosBinary string + + // Location of the xrdcopy binary. + // Default is /usr/bin/xrdcopy. + XrdcopyBinary string + + // URL of the Master EOS MGM. + // Default is root://eos-example.org + MasterURL string + + // URL of the Slave EOS MGM. + // Default is root://eos-example.org + SlaveURL string + + // Location on the local fs where to store reads. + // Defaults to os.TempDir() + CacheDirectory string + + // Enables logging of the commands executed + // Defaults to false + EnableLogging bool + + // ShowHiddenSysFiles shows internal EOS files like + // .sys.v# and .sys.a# files. + ShowHiddenSysFiles bool + + // ForceSingleUserMode will force connections to EOS to use SingleUsername + ForceSingleUserMode bool + + // UseKeyTabAuth changes will authenticate requests by using an EOS keytab. + UseKeytab bool + + // SecProtocol specifies the xrootd security protocol to use between the server and EOS. + SecProtocol string + + // Keytab specifies the location of the keytab to use to authenticate to EOS. + Keytab string + + // SingleUsername is the username to use when SingleUserMode is enabled + SingleUsername string +} +type StorageLocal struct { + Root string +} +type StorageOwnCloud struct { + Datadirectory string +} +type StorageS3 struct { + Region string + AccessKey string + SecretKey string + Endpoint string + Bucket string + Prefix string +} +type OIDC struct { + Issuer string + Insecure bool + IDClaim string +} +type LDAP struct { + Hostname string + Port int + BaseDN string + UserFilter string + GroupFilter string + BindDN string + BindPassword string + IDP string + Schema LDAPSchema +} +type LDAPSchema struct { + UID string + Mail string + DisplayName string + CN string } -// AuthProvider defines the available authprovider configuration. -type AuthProvider struct { - Provider string - Insecure bool +// Reva defines the available reva configuration. +type Reva struct { + // JWTSecret used to sign jwt tokens between services + JWTSecret string + TransferSecret string + TransferExpires int + OIDC OIDC + LDAP LDAP + Storages StorageConfig + // Ports are used configure which services to start on which port + Frontend Port + Gateway Gateway + Users Users + AuthBasic Port + AuthBearer Port + Sharing Port + StorageRoot StoragePort + StorageHome StoragePort + StorageHomeData StoragePort + StorageEOS StoragePort + StorageEOSData StoragePort + StorageOC StoragePort + StorageOCData StoragePort + StorageS3 StoragePort + StorageS3Data StoragePort + StorageWND StoragePort + StorageWNDData StoragePort + StorageCustom StoragePort + StorageCustomData StoragePort + // Configs can be used to configure the reva instance. + // Services and Ports will be ignored if this is used + Configs map[string]interface{} } // Tracing defines the available tracing configuration. @@ -60,13 +206,12 @@ type Asset struct { // Config combines all available configuration parts. type Config struct { - File string - Log Log - Debug Debug - Reva Reva - AuthProvider AuthProvider - Tracing Tracing - Asset Asset + File string + Log Log + Debug Debug + Reva Reva + Tracing Tracing + Asset Asset } // New initializes a new configuration with or without defaults. diff --git a/pkg/flagset/authbasic.go b/pkg/flagset/authbasic.go new file mode 100644 index 0000000000..5a495a8d2b --- /dev/null +++ b/pkg/flagset/authbasic.go @@ -0,0 +1,223 @@ +package flagset + +import ( + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// AuthBasicWithConfig applies cfg to the root flagset +func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9147", + Usage: "Address to bind debug server", + EnvVar: "REVA_AUTH_BASIC_DEBUG_ADDR", + Destination: &cfg.Reva.AuthBasic.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + + // Users + + &cli.StringFlag{ + Name: "users-driver", + Value: "demo", + Usage: "user driver: 'demo', 'json' or 'ldap'", + EnvVar: "REVA_USERS_DRIVER", + Destination: &cfg.Reva.Users.Driver, + }, + &cli.StringFlag{ + Name: "users-json", + Value: "", + Usage: "Path to users.json file", + EnvVar: "REVA_USERS_JSON", + Destination: &cfg.Reva.Users.JSON, + }, + + // LDAP + + &cli.StringFlag{ + Name: "ldap-hostname", + Value: "localhost", + Usage: "LDAP hostname", + EnvVar: "REVA_LDAP_HOSTNAME", + Destination: &cfg.Reva.LDAP.Hostname, + }, + &cli.IntFlag{ + Name: "ldap-port", + Value: 389, + Usage: "LDAP port", + EnvVar: "REVA_LDAP_PORT", + Destination: &cfg.Reva.LDAP.Port, + }, + &cli.StringFlag{ + Name: "ldap-base-dn", + Value: "dc=owncloud,dc=com", + Usage: "LDAP basedn", + EnvVar: "REVA_LDAP_BASE_DN", + Destination: &cfg.Reva.LDAP.BaseDN, + }, + &cli.StringFlag{ + Name: "ldap-userfilter", + Value: "(objectclass=posixAccount)", + Usage: "LDAP userfilter", + EnvVar: "REVA_LDAP_USERFILTER", + Destination: &cfg.Reva.LDAP.UserFilter, + }, + &cli.StringFlag{ + Name: "ldap-groupfilter", + Value: "(objectclass=posixGroup)", + Usage: "LDAP groupfilter", + EnvVar: "REVA_LDAP_GROUPFILTER", + Destination: &cfg.Reva.LDAP.GroupFilter, + }, + &cli.StringFlag{ + Name: "ldap-bind-dn", + Value: "cn=admin,dc=owncloud,dc=com", + Usage: "LDAP bind dn", + EnvVar: "REVA_LDAP_BIND_DN", + Destination: &cfg.Reva.LDAP.BindDN, + }, + &cli.StringFlag{ + Name: "ldap-bind-password", + Value: "admin", + Usage: "LDAP bind password", + EnvVar: "REVA_LDAP_BIND_PASSWORD", + Destination: &cfg.Reva.LDAP.BindPassword, + }, + // ldap dn is always the dn + &cli.StringFlag{ + Name: "ldap-schema-uid", + Value: "uid", + Usage: "LDAP schema uid", + EnvVar: "REVA_LDAP_SCHEMA_UID", + Destination: &cfg.Reva.LDAP.Schema.UID, + }, + &cli.StringFlag{ + Name: "ldap-schema-mail", + Value: "mail", + Usage: "LDAP schema mail", + EnvVar: "REVA_LDAP_SCHEMA_Mail", + Destination: &cfg.Reva.LDAP.Schema.Mail, + }, + &cli.StringFlag{ + Name: "ldap-schema-displayName", + Value: "displayName", + Usage: "LDAP schema displayName", + EnvVar: "REVA_LDAP_SCHEMA_DISPLAYNAME", + Destination: &cfg.Reva.LDAP.Schema.DisplayName, + }, + &cli.StringFlag{ + Name: "ldap-schema-cn", + Value: "cn", + Usage: "LDAP schema cn", + EnvVar: "REVA_LDAP_SCHEMA_CN", + Destination: &cfg.Reva.LDAP.Schema.CN, + }, + + // Services + + // AuthBasic + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva auth-basic service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_AUTH_BASIC_NETWORK", + Destination: &cfg.Reva.AuthBasic.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "grpc", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVar: "REVA_AUTH_BASIC_PROTOCOL", + Destination: &cfg.Reva.AuthBasic.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9146", + Usage: "Address to bind reva service", + EnvVar: "REVA_AUTH_BASIC_ADDR", + Destination: &cfg.Reva.AuthBasic.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9146", + Usage: "URL to use for the reva service", + EnvVar: "REVA_AUTH_BASIC_URL", + Destination: &cfg.Reva.AuthBasic.URL, + }, + &cli.StringFlag{ + Name: "services", + Value: "authprovider", + Usage: "comma separated list of services to include", + EnvVar: "REVA_AUTH_BASIC_SERVICES", + Destination: &cfg.Reva.AuthBasic.Services, + }, + } +} diff --git a/pkg/flagset/authbearer.go b/pkg/flagset/authbearer.go new file mode 100644 index 0000000000..cb80938a90 --- /dev/null +++ b/pkg/flagset/authbearer.go @@ -0,0 +1,148 @@ +package flagset + +import ( + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// AuthBearerWithConfig applies cfg to the root flagset +func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9149", + Usage: "Address to bind debug server", + EnvVar: "REVA_AUTH_BEARER_DEBUG_ADDR", + Destination: &cfg.Reva.AuthBearer.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + + // OIDC + + &cli.StringFlag{ + Name: "oidc-issuer", + Value: "http://localhost:9140", + Usage: "OIDC issuer", + EnvVar: "REVA_OIDC_ISSUER", + Destination: &cfg.Reva.OIDC.Issuer, + }, + &cli.BoolFlag{ + Name: "oidc-insecure", + Usage: "OIDC allow insecure communication", + EnvVar: "REVA_OIDC_INSECURE", + Destination: &cfg.Reva.OIDC.Insecure, + }, + &cli.StringFlag{ + Name: "oidc-id-claim", + Value: "sub", // sub is stable and defined as unique. the user manager needs to take care of the sub to user metadata lookup + Usage: "OIDC id claim", + EnvVar: "REVA_OIDC_ID_CLAIM", + Destination: &cfg.Reva.OIDC.IDClaim, + }, + + // Services + + // AuthBearer + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_AUTH_BEARER_NETWORK", + Destination: &cfg.Reva.AuthBearer.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "grpc", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVar: "REVA_AUTH_BEARER_PROTOCOL", + Destination: &cfg.Reva.AuthBearer.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9148", + Usage: "Address to bind reva service", + EnvVar: "REVA_AUTH_BEARER_ADDR", + Destination: &cfg.Reva.AuthBearer.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9148", + Usage: "URL to use for the reva service", + EnvVar: "REVA_AUTH_BEARER_URL", + Destination: &cfg.Reva.AuthBearer.URL, + }, + &cli.StringFlag{ + Name: "services", + Value: "authprovider", // TODO preferences + Usage: "comma separated list of services to include", + EnvVar: "REVA_AUTH_BEARER_SERVICES", + Destination: &cfg.Reva.AuthBearer.Services, + }, + } +} diff --git a/pkg/flagset/flagset.go b/pkg/flagset/flagset.go deleted file mode 100644 index 94755b0e18..0000000000 --- a/pkg/flagset/flagset.go +++ /dev/null @@ -1,193 +0,0 @@ -package flagset - -import ( - "github.com/micro/cli" - "github.com/owncloud/ocis-reva/pkg/config" -) - -// RootWithConfig applies cfg to the root flagset -func RootWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - &cli.StringFlag{ - Name: "config-file", - Value: "", - Usage: "Path to config file", - EnvVar: "REVA_CONFIG_FILE", - Destination: &cfg.File, - }, - &cli.StringFlag{ - Name: "log-level", - Value: "info", - Usage: "Set logging level", - EnvVar: "REVA_LOG_LEVEL", - Destination: &cfg.Log.Level, - }, - &cli.BoolTFlag{ - Name: "log-pretty", - Usage: "Enable pretty logging", - EnvVar: "REVA_LOG_PRETTY", - Destination: &cfg.Log.Pretty, - }, - &cli.BoolTFlag{ - Name: "log-color", - Usage: "Enable colored logging", - EnvVar: "REVA_LOG_COLOR", - Destination: &cfg.Log.Color, - }, - } -} - -// HealthWithConfig applies cfg to the root flagset -func HealthWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9109", - Usage: "Address to debug endpoint", - EnvVar: "REVA_DEBUG_ADDR", - Destination: &cfg.Debug.Addr, - }, - } -} - -// ServerWithConfig applies cfg to the root flagset -func ServerWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", - Destination: &cfg.Tracing.Service, - }, - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9139", - Usage: "Address to bind debug server", - EnvVar: "REVA_DEBUG_ADDR", - Destination: &cfg.Debug.Addr, - }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", - Destination: &cfg.Debug.Zpages, - }, - &cli.StringFlag{ - Name: "reva-http-network", - Value: "tcp", - Usage: "Network to use for the reva http server, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_HTTP_NETWORK", - Destination: &cfg.Reva.HTTP.Network, - }, - &cli.StringFlag{ - Name: "reva-http-addr", - Value: "0.0.0.0:9135", - Usage: "Address to bind http port of reva server", - EnvVar: "REVA_HTTP_ADDR", - Destination: &cfg.Reva.HTTP.Addr, - }, - &cli.StringFlag{ - Name: "reva-http-root", - Value: "/", - Usage: "Root path of reva server", - EnvVar: "REVA__HTTP_ROOT", - Destination: &cfg.Reva.HTTP.Root, - }, - &cli.StringFlag{ - Name: "reva-grpc-network", - Value: "tcp", - Usage: "Network to use for the reva grpc server, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_GRPC_NETWORK", - Destination: &cfg.Reva.GRPC.Network, - }, - &cli.StringFlag{ - Name: "reva-grpc-addr", - Value: "0.0.0.0:9136", - Usage: "Address to bind grpc port of reva server", - EnvVar: "REVA_GRPC_ADDR", - Destination: &cfg.Reva.GRPC.Addr, - }, - &cli.StringFlag{ - Name: "reva-max-cpus", - Value: "2", - Usage: "Max number of cpus for reva server", - EnvVar: "REVA_MAX_CPUS", - Destination: &cfg.Reva.MaxCPUs, - }, - &cli.StringFlag{ - Name: "reva-log-level", - Value: "info", - Usage: "Log level for reva server", - EnvVar: "REVA_LOG_LEVEL", - Destination: &cfg.Reva.LogLevel, - }, - &cli.StringFlag{ - Name: "reva-jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", - Destination: &cfg.Reva.JWTSecret, - }, - &cli.StringFlag{ - Name: "reva-authprovider-provider", - Value: "", - Usage: "URL of the OpenID Connect Provider", - EnvVar: "REVA_AUTHPROVIDER_PROVIDER", - Destination: &cfg.AuthProvider.Provider, - }, - &cli.BoolFlag{ - Name: "reva-authprovider-insecure", - Usage: "Allow insecure certificates", - EnvVar: "REVA_AUTHPROVIDER_INSECURE", - Destination: &cfg.AuthProvider.Insecure, - }, - &cli.StringFlag{ - Name: "asset-path", - Value: "", - Usage: "Path to custom assets", - EnvVar: "REVA_ASSET_PATH", - Destination: &cfg.Asset.Path, - }, - } -} diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go new file mode 100644 index 0000000000..45d119a57d --- /dev/null +++ b/pkg/flagset/frontend.go @@ -0,0 +1,167 @@ +package flagset + +import ( + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// FrontendWithConfig applies cfg to the root flagset +func FrontendWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9141", + Usage: "Address to bind debug server", + EnvVar: "REVA_FRONTEND_DEBUG_ADDR", + Destination: &cfg.Reva.Frontend.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + &cli.StringFlag{ + Name: "transfer-secret", + Value: "replace-me-with-a-transfer-secret", + Usage: "Transfer secret for datagateway", + EnvVar: "REVA_TRANSFER_SECRET", + Destination: &cfg.Reva.TransferSecret, + }, + + // OIDC + + &cli.StringFlag{ + Name: "oidc-issuer", + Value: "http://localhost:9140", + Usage: "OIDC issuer", + EnvVar: "REVA_OIDC_ISSUER", + Destination: &cfg.Reva.OIDC.Issuer, + }, + &cli.BoolFlag{ + Name: "oidc-insecure", + Usage: "OIDC allow insecure communication", + EnvVar: "REVA_OIDC_INSECURE", + Destination: &cfg.Reva.OIDC.Insecure, + }, + &cli.StringFlag{ + Name: "oidc-id-claim", + Value: "sub", // sub is stable and defined as unique. the user manager needs to take care of the sub to user metadata lookup + Usage: "OIDC id claim", + EnvVar: "REVA_OIDC_ID_CLAIM", + Destination: &cfg.Reva.OIDC.IDClaim, + }, + + // TODO allow configuring clients + + // Services + + // Frontend + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_FRONTEND_NETWORK", + Destination: &cfg.Reva.Frontend.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "http", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVar: "REVA_FRONTEND_PROTOCOL", + Destination: &cfg.Reva.Frontend.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9140", + Usage: "Address to bind reva service", + EnvVar: "REVA_FRONTEND_ADDR", + Destination: &cfg.Reva.Frontend.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9140", + Usage: "URL to use for the reva service", + EnvVar: "REVA_FRONTEND_URL", + Destination: &cfg.Reva.Frontend.URL, + }, + &cli.StringFlag{ + Name: "services", + Value: "datagateway,wellknown,oidcprovider,ocdav,ocs", + Usage: "comma separated list of services to include", + EnvVar: "REVA_FRONTEND_SERVICES", + Destination: &cfg.Reva.Frontend.Services, + }, + + // Gateway + + &cli.StringFlag{ + Name: "gateway-url", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVar: "REVA_GATEWAY_URL", + Destination: &cfg.Reva.Gateway.URL, + }, + } +} diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go new file mode 100644 index 0000000000..b855546246 --- /dev/null +++ b/pkg/flagset/gateway.go @@ -0,0 +1,270 @@ +package flagset + +import ( + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// GatewayWithConfig applies cfg to the root flagset +func GatewayWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9143", + Usage: "Address to bind debug server", + EnvVar: "REVA_GATEWAY_DEBUG_ADDR", + Destination: &cfg.Reva.Gateway.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + &cli.StringFlag{ + Name: "transfer-secret", + Value: "replace-me-with-a-transfer-secret", + Usage: "Transfer secret for datagateway", + EnvVar: "REVA_TRANSFER_SECRET", + Destination: &cfg.Reva.TransferSecret, + }, + &cli.IntFlag{ + Name: "transfer-expires", + Value: 10, + Usage: "Transfer secret for datagateway", + EnvVar: "REVA_TRANSFER_EXPIRES", + Destination: &cfg.Reva.TransferExpires, + }, + + // TODO allow configuring clients + + // Services + + // Gateway + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_GATEWAY_NETWORK", + Destination: &cfg.Reva.Gateway.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "grpc", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVar: "REVA_GATEWAY_PROTOCOL", + Destination: &cfg.Reva.Gateway.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9142", + Usage: "Address to bind reva service", + EnvVar: "REVA_GATEWAY_ADDR", + Destination: &cfg.Reva.Gateway.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9142", + Usage: "URL to use for the reva service", + EnvVar: "REVA_GATEWAY_URL", + Destination: &cfg.Reva.Gateway.URL, + }, + &cli.StringFlag{ + Name: "services", + Value: "gateway,authregistry,storageregistry", // TODO appregistry + Usage: "comma separated list of services to include", + EnvVar: "REVA_GATEWAY_SERVICES", + Destination: &cfg.Reva.Gateway.Services, + }, + // TODO should defaults to true. reverse logic to 'disable-share-commit'? + &cli.BoolFlag{ + Name: "commit-share-to-storage-grant", + Usage: "Commit shares to the share manager as well as as a grant to the storage", + EnvVar: "REVA_GATEWAY_COMMIT_SHARE_TO_STRORAGE_GRANT", + Destination: &cfg.Reva.Gateway.CommitShareToStorageGrant, + }, + + // other services + + // storage registry + + &cli.StringFlag{ + Name: "frontend-url", + Value: "localhost:9140", + Usage: "URL to use for the reva service", + EnvVar: "REVA_FRONTEND_URL", + Destination: &cfg.Reva.Frontend.URL, + }, + &cli.StringFlag{ + Name: "users-url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVar: "REVA_USERS_URL", + Destination: &cfg.Reva.Users.URL, + }, + &cli.StringFlag{ + Name: "auth-basic-url", + Value: "localhost:9146", + Usage: "URL to use for the reva service", + EnvVar: "REVA_AUTH_BASIC_URL", + Destination: &cfg.Reva.AuthBasic.URL, + }, + &cli.StringFlag{ + Name: "auth-bearer-url", + Value: "localhost:9148", + Usage: "URL to use for the reva service", + EnvVar: "REVA_AUTH_BEARER_URL", + Destination: &cfg.Reva.AuthBearer.URL, + }, + &cli.StringFlag{ + Name: "sharing-url", + Value: "localhost:9150", + Usage: "URL to use for the reva service", + EnvVar: "REVA_SHARING_URL", + Destination: &cfg.Reva.Sharing.URL, + }, + + &cli.StringFlag{ + Name: "storage-root-url", + Value: "localhost:9152", + Usage: "URL to use for the reva service", + EnvVar: "REVA_STORAGE_ROOT_URL", + Destination: &cfg.Reva.StorageRoot.URL, + }, + &cli.StringFlag{ + Name: "storage-root-mount-path", + Value: "/", + Usage: "mount path", + EnvVar: "REVA_STORAGE_ROOT_MOUNT_PATH", + Destination: &cfg.Reva.StorageRoot.MountPath, + }, + &cli.StringFlag{ + Name: "storage-root-mount-id", + Value: "123e4567-e89b-12d3-a456-426655440001", + Usage: "mount id", + EnvVar: "REVA_STORAGE_ROOT_MOUNT_ID", + Destination: &cfg.Reva.StorageRoot.MountID, + }, + + &cli.StringFlag{ + Name: "storage-home-url", + Value: "localhost:9154", + Usage: "URL to use for the reva service", + EnvVar: "REVA_STORAGE_HOME_URL", + Destination: &cfg.Reva.StorageHome.URL, + }, + &cli.StringFlag{ + Name: "storage-home-mount-path", + Value: "/home", + Usage: "mount path", + EnvVar: "REVA_STORAGE_HOME_MOUNT_PATH", + Destination: &cfg.Reva.StorageHome.MountPath, + }, + &cli.StringFlag{ + Name: "storage-home-mount-id", + Value: "123e4567-e89b-12d3-a456-426655440000", + Usage: "mount id", + EnvVar: "REVA_STORAGE_HOME_MOUNT_ID", + Destination: &cfg.Reva.StorageHome.MountID, + }, + + &cli.StringFlag{ + Name: "storage-home-data-url", + Value: "localhost:9156", + Usage: "URL to use for the reva service", + EnvVar: "REVA_STORAGE_HOME_DATA_URL", + Destination: &cfg.Reva.StorageHomeData.URL, + }, + + &cli.StringFlag{ + Name: "storage-oc-url", + Value: "localhost:9162", + Usage: "URL to use for the reva service", + EnvVar: "REVA_STORAGE_OC_URL", + Destination: &cfg.Reva.StorageOC.URL, + }, + &cli.StringFlag{ + Name: "storage-oc-mount-path", + Value: "/oc", + Usage: "mount path", + EnvVar: "REVA_STORAGE_OC_MOUNT_PATH", + Destination: &cfg.Reva.StorageOC.MountPath, + }, + &cli.StringFlag{ + Name: "storage-oc-mount-id", + Value: "123e4567-e89b-12d3-a456-426655440000", + Usage: "mount id", + EnvVar: "REVA_STORAGE_OC_MOUNT_ID", + Destination: &cfg.Reva.StorageOC.MountID, + }, + + &cli.StringFlag{ + Name: "storage-oc-data-url", + Value: "localhost:9164", + Usage: "URL to use for the reva service", + EnvVar: "REVA_STORAGE_OC_DATA_URL", + Destination: &cfg.Reva.StorageOCData.URL, + }, + } +} diff --git a/pkg/flagset/health.go b/pkg/flagset/health.go new file mode 100644 index 0000000000..3c536cf8ae --- /dev/null +++ b/pkg/flagset/health.go @@ -0,0 +1,19 @@ +package flagset + +import ( + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// HealthWithConfig applies cfg to the health flagset +func HealthWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9109", + Usage: "Address to debug endpoint", + EnvVar: "REVA_DEBUG_ADDR", + Destination: &cfg.Debug.Addr, + }, + } +} diff --git a/pkg/flagset/root.go b/pkg/flagset/root.go new file mode 100644 index 0000000000..d839a68364 --- /dev/null +++ b/pkg/flagset/root.go @@ -0,0 +1,38 @@ +package flagset + +import ( + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// RootWithConfig applies cfg to the root flagset +func RootWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "config-file", + Value: "", + Usage: "Path to config file", + EnvVar: "REVA_CONFIG_FILE", + Destination: &cfg.File, + }, + &cli.StringFlag{ + Name: "log-level", + Value: "info", + Usage: "Set logging level", + EnvVar: "REVA_LOG_LEVEL", + Destination: &cfg.Log.Level, + }, + &cli.BoolTFlag{ + Name: "log-pretty", + Usage: "Enable pretty logging", + EnvVar: "REVA_LOG_PRETTY", + Destination: &cfg.Log.Pretty, + }, + &cli.BoolTFlag{ + Name: "log-color", + Usage: "Enable colored logging", + EnvVar: "REVA_LOG_COLOR", + Destination: &cfg.Log.Color, + }, + } +} diff --git a/pkg/flagset/server.go b/pkg/flagset/server.go new file mode 100644 index 0000000000..db476b5911 --- /dev/null +++ b/pkg/flagset/server.go @@ -0,0 +1,507 @@ +package flagset + +/* TODO move this into dedicated flagsets, along with storage commands + +import ( + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// ServerWithConfig applies cfg to the root flagset +func ServerWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "storage-eos-debug-addr", + Value: "0.0.0.0:9159", + Usage: "Address to bind storage eos debug server", + EnvVar: "REVA_STORAGE_EOS_DEBUG_ADDR", + Destination: &cfg.Reva.StorageEOS.DebugAddr, + }, + &cli.StringFlag{ + Name: "storage-eos-data-debug-addr", + Value: "0.0.0.0:9161", + Usage: "Address to bind storage eos data debug server", + EnvVar: "REVA_STORAGE_HOME_DATA_DEBUG_ADDR", + Destination: &cfg.Reva.StorageEOSData.DebugAddr, + }, + &cli.StringFlag{ + Name: "storage-s3-debug-addr", + Value: "0.0.0.0:9167", + Usage: "Address to bind storage s3 debug server", + EnvVar: "REVA_STORAGE_S3_DEBUG_ADDR", + Destination: &cfg.Reva.StorageS3.DebugAddr, + }, + &cli.StringFlag{ + Name: "storage-s3-data-debug-addr", + Value: "0.0.0.0:9169", + Usage: "Address to bind storage s3 data debug server", + EnvVar: "REVA_STORAGE_S3_DATA_DEBUG_ADDR", + Destination: &cfg.Reva.StorageS3Data.DebugAddr, + }, + &cli.StringFlag{ + Name: "storage-custom-debug-addr", + Value: "0.0.0.0:9171", + Usage: "Address to bind storage custom debug server", + EnvVar: "REVA_STORAGE_CUSTOM_DEBUG_ADDR", + Destination: &cfg.Reva.StorageCustom.DebugAddr, + }, + &cli.StringFlag{ + Name: "storage-custom-data-debug-addr", + Value: "0.0.0.0:9173", + Usage: "Address to bind storage custom data debug server", + EnvVar: "REVA_STORAGE_CUSTOM_DATA_DEBUG_ADDR", + Destination: &cfg.Reva.StorageCustomData.DebugAddr, + }, + + // Services + + // Storage eos + + &cli.StringFlag{ + Name: "storage-eos-network", + Value: "tcp", + Usage: "Network to use for the reva storage-eos service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_STORAGE_EOS_NETWORK", + Destination: &cfg.Reva.StorageEOS.Network, + }, + &cli.StringFlag{ + Name: "storage-eos-protocol", + Value: "grpc", + Usage: "protocol for reva storage-eos service, can be 'http' or 'grpc'", + EnvVar: "REVA_STORAGE_EOS_PROTOCOL", + Destination: &cfg.Reva.StorageEOS.Protocol, + }, + &cli.StringFlag{ + Name: "storage-eos-addr", + Value: "0.0.0.0:9158", + Usage: "Address to bind reva storage-eos service", + EnvVar: "REVA_STORAGE_EOS_ADDR", + Destination: &cfg.Reva.StorageEOS.Addr, + }, + &cli.StringFlag{ + Name: "storage-eos-url", + Value: "localhost:9158", + Usage: "URL to use for the reva storage-eos service", + EnvVar: "REVA_STORAGE_EOS_URL", + Destination: &cfg.Reva.StorageEOS.URL, + }, + &cli.StringFlag{ + Name: "storage-eos-services", + Value: "storageprovider", + Usage: "comma separated list of services to include in the storage-eos service", + EnvVar: "REVA_STORAGE_EOS_SERVICES", + Destination: &cfg.Reva.StorageEOS.Services, + }, + + &cli.StringFlag{ + Name: "storage-eos-driver", + Value: "local", + Usage: "eos storage driver", + EnvVar: "REVA_STORAGE_EOS_DRIVER", + Destination: &cfg.Reva.StorageEOS.Driver, + }, + &cli.StringFlag{ + Name: "storage-eos-path-wrapper", + Value: "", + Usage: "eos storage path wrapper", + EnvVar: "REVA_STORAGE_EOS_PATH_WRAPPER", + Destination: &cfg.Reva.StorageEOS.PathWrapper, + }, + &cli.StringFlag{ + Name: "storage-eos-path-wrapper-context-prefix", + Value: "", + Usage: "eos storage path wrapper context prefix", + EnvVar: "REVA_STORAGE_EOS_PATH_WRAPPER_CONTEXT_PREFIX", + Destination: &cfg.Reva.StorageEOS.PathWrapperContext.Prefix, + }, + &cli.StringFlag{ + Name: "storage-eos-mount-path", + Value: "/eos", + Usage: "eos storage mount path", + EnvVar: "REVA_STORAGE_EOS_MOUNT_PATH", + Destination: &cfg.Reva.StorageEOS.MountPath, + }, + &cli.StringFlag{ + Name: "storage-eos-mount-id", + Value: "", + Usage: "eos storage mount id", + EnvVar: "REVA_STORAGE_EOS_MOUNT_ID", + Destination: &cfg.Reva.StorageEOS.MountID, + }, + &cli.BoolFlag{ + Name: "storage-eos-expose-data-server", + Usage: "eos storage exposes a dedicated data server", + EnvVar: "REVA_STORAGE_EOS_EXPOSE_DATA_SERVER", + Destination: &cfg.Reva.StorageEOS.ExposeDataServer, + }, + &cli.StringFlag{ + Name: "storage-eos-data-server-url", + Value: "", + Usage: "eos storage data server url", + EnvVar: "REVA_STORAGE_EOS_DATA_SERVER_URL", + Destination: &cfg.Reva.StorageEOS.DataServerURL, + }, + + // Storage eos data + + &cli.StringFlag{ + Name: "storage-eos-data-network", + Value: "tcp", + Usage: "Network to use for the reva storage-eos data service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_STORAGE_EOS_DATA_NETWORK", + Destination: &cfg.Reva.StorageEOSData.Network, + }, + &cli.StringFlag{ + Name: "storage-eos-data-protocol", + Value: "http", + Usage: "protocol for reva storage-eos data service, can be 'http' or 'grpc'", + EnvVar: "REVA_STORAGE_EOS_DATA_PROTOCOL", + Destination: &cfg.Reva.StorageEOSData.Protocol, + }, + &cli.StringFlag{ + Name: "storage-eos-data-addr", + Value: "0.0.0.0:9160", + Usage: "Address to bind reva storage-eos data service", + EnvVar: "REVA_STORAGE_EOS_DATA_ADDR", + Destination: &cfg.Reva.StorageEOSData.Addr, + }, + &cli.StringFlag{ + Name: "storage-eos-data-url", + Value: "localhost:9160", + Usage: "URL to use for the reva storage-eos data service", + EnvVar: "REVA_STORAGE_EOS_DATA_URL", + Destination: &cfg.Reva.StorageEOSData.URL, + }, + &cli.StringFlag{ + Name: "storage-eos-data-services", + Value: "dataprovider", + Usage: "comma separated list of services to include in the storage-eos data service", + EnvVar: "REVA_STORAGE_EOS_DATA_SERVICES", + Destination: &cfg.Reva.StorageEOSData.Services, + }, + &cli.StringFlag{ + Name: "storage-eos-data-driver", + Value: "eos", + Usage: "eos data storage driver", + EnvVar: "REVA_STORAGE_EOS_DATA_DRIVER", + Destination: &cfg.Reva.StorageEOSData.Driver, + }, + &cli.StringFlag{ + Name: "storage-eos-data-prefix", + Value: "data", + Usage: "prefix for the http endpoint, without leading slash", + EnvVar: "REVA_STORAGE_EOS_DATA_PREFIX", + Destination: &cfg.Reva.StorageEOSData.Prefix, + }, + &cli.StringFlag{ + Name: "storage-eos-data-temp-folder", + Value: "/var/tmp/", + Usage: "storage eos data temp folder", + EnvVar: "REVA_STORAGE_HOME_DATA_TEMP_FOLDER", + Destination: &cfg.Reva.StorageEOSData.TempFolder, + }, + + // Storage s3 + + &cli.StringFlag{ + Name: "storage-s3-network", + Value: "tcp", + Usage: "Network to use for the reva storage-oc service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_STORAGE_S3_NETWORK", + Destination: &cfg.Reva.StorageS3.Network, + }, + &cli.StringFlag{ + Name: "storage-s3-protocol", + Value: "grpc", + Usage: "protocol for reva storage-s3 service, can be 'http' or 'grpc'", + EnvVar: "REVA_STORAGE_S3_PROTOCOL", + Destination: &cfg.Reva.StorageS3.Protocol, + }, + &cli.StringFlag{ + Name: "storage-s3-addr", + Value: "0.0.0.0:9166", + Usage: "Address to bind reva storage-s3 service", + EnvVar: "REVA_STORAGE_S3_ADDR", + Destination: &cfg.Reva.StorageS3.Addr, + }, + &cli.StringFlag{ + Name: "storage-s3-url", + Value: "localhost:9166", + Usage: "URL to use for the reva storage-s3 service", + EnvVar: "REVA_STORAGE_S3_URL", + Destination: &cfg.Reva.StorageS3.URL, + }, + &cli.StringFlag{ + Name: "storage-s3-services", + Value: "storageprovider", + Usage: "comma separated list of services to include in the storage-s3 service", + EnvVar: "REVA_STORAGE_S3_SERVICES", + Destination: &cfg.Reva.StorageS3.Services, + }, + + &cli.StringFlag{ + Name: "storage-s3-driver", + Value: "local", + Usage: "s3 storage driver", + EnvVar: "REVA_STORAGE_S3_DRIVER", + Destination: &cfg.Reva.StorageS3.Driver, + }, + &cli.StringFlag{ + Name: "storage-s3-path-wrapper", + Value: "", + Usage: "s3 storage path wrapper", + EnvVar: "REVA_STORAGE_S3_PATH_WRAPPER", + Destination: &cfg.Reva.StorageS3.PathWrapper, + }, + &cli.StringFlag{ + Name: "storage-s3-path-wrapper-context-prefix", + Value: "", + Usage: "s3 storage path wrapper context prefix", + EnvVar: "REVA_STORAGE_S3_PATH_WRAPPER_CONTEXT_PREFIX", + Destination: &cfg.Reva.StorageS3.PathWrapperContext.Prefix, + }, + &cli.StringFlag{ + Name: "storage-s3-mount-path", + Value: "", + Usage: "s3 storage mount path", + EnvVar: "REVA_STORAGE_S3_MOUNT_PATH", + Destination: &cfg.Reva.StorageS3.MountPath, + }, + &cli.StringFlag{ + Name: "storage-s3-mount-id", + Value: "", + Usage: "s3 storage mount id", + EnvVar: "REVA_STORAGE_S3_MOUNT_ID", + Destination: &cfg.Reva.StorageS3.MountID, + }, + &cli.BoolFlag{ + Name: "storage-s3-expose-data-server", + Usage: "s3 storage exposes a dedicated data server", + EnvVar: "REVA_STORAGE_S3_EXPOSE_DATA_SERVER", + Destination: &cfg.Reva.StorageS3.ExposeDataServer, + }, + &cli.StringFlag{ + Name: "storage-s3-data-server-url", + Value: "", + Usage: "s3 storage data server url", + EnvVar: "REVA_STORAGE_S3_DATA_SERVER_URL", + Destination: &cfg.Reva.StorageS3.DataServerURL, + }, + + // Storage s3 data + + &cli.StringFlag{ + Name: "storage-s3-data-network", + Value: "tcp", + Usage: "Network to use for the reva storage-s3 data service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_STORAGE_S3_DATA_NETWORK", + Destination: &cfg.Reva.StorageS3Data.Network, + }, + &cli.StringFlag{ + Name: "storage-s3-data-protocol", + Value: "http", + Usage: "protocol for reva storage-s3 data service, can be 'http' or 'grpc'", + EnvVar: "REVA_STORAGE_S3_DATA_PROTOCOL", + Destination: &cfg.Reva.StorageS3Data.Protocol, + }, + &cli.StringFlag{ + Name: "storage-s3-data-addr", + Value: "0.0.0.0:9168", + Usage: "Address to bind reva storage-s3 data service", + EnvVar: "REVA_STORAGE_S3_DATA_ADDR", + Destination: &cfg.Reva.StorageS3Data.Addr, + }, + &cli.StringFlag{ + Name: "storage-s3-data-url", + Value: "localhost:9168", + Usage: "URL to use for the reva storage-s3 data service", + EnvVar: "REVA_STORAGE_S3_DATA_URL", + Destination: &cfg.Reva.StorageS3Data.URL, + }, + &cli.StringFlag{ + Name: "storage-s3-data-services", + Value: "dataprovider", + Usage: "comma separated list of services to include in the storage-s3 data service", + EnvVar: "REVA_STORAGE_S3_DATA_SERVICES", + Destination: &cfg.Reva.StorageS3Data.Services, + }, + &cli.StringFlag{ + Name: "storage-s3-data-driver", + Value: "s3", + Usage: "s3 data storage driver", + EnvVar: "REVA_STORAGE_S3_DATA_DRIVER", + Destination: &cfg.Reva.StorageS3Data.Driver, + }, + &cli.StringFlag{ + Name: "storage-s3-data-prefix", + Value: "data", + Usage: "prefix for the http endpoint, without leading slash", + EnvVar: "REVA_STORAGE_S3_DATA_PREFIX", + Destination: &cfg.Reva.StorageS3Data.Prefix, + }, + &cli.StringFlag{ + Name: "storage-s3-data-temp-folder", + Value: "/var/tmp/", + Usage: "storage s3 data temp folder", + EnvVar: "REVA_STORAGE_S3_DATA_TEMP_FOLDER", + Destination: &cfg.Reva.StorageS3Data.TempFolder, + }, + + // Storage custom + + &cli.StringFlag{ + Name: "storage-custom-network", + Value: "tcp", + Usage: "Network to use for the reva storage-custom service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_STORAGE_CUSTOM_NETWORK", + Destination: &cfg.Reva.StorageCustom.Network, + }, + &cli.StringFlag{ + Name: "storage-custom-protocol", + Value: "grpc", + Usage: "protocol for reva storage-custom service, can be 'http' or 'grpc'", + EnvVar: "REVA_STORAGE_CUSTOM_PROTOCOL", + Destination: &cfg.Reva.StorageCustom.Protocol, + }, + &cli.StringFlag{ + Name: "storage-custom-addr", + Value: "0.0.0.0:9170", + Usage: "Address to bind reva storage-custom service", + EnvVar: "REVA_STORAGE_CUSTOM_ADDR", + Destination: &cfg.Reva.StorageCustom.Addr, + }, + &cli.StringFlag{ + Name: "storage-custom-url", + Value: "localhost:9170", + Usage: "URL to use for the reva storage-custom service", + EnvVar: "REVA_STORAGE_CUSTOM_URL", + Destination: &cfg.Reva.StorageCustom.URL, + }, + &cli.StringFlag{ + Name: "storage-custom-services", + Value: "storageprovider", + Usage: "comma separated list of services to include in the storage-custom service", + EnvVar: "REVA_STORAGE_CUSTOM_SERVICES", + Destination: &cfg.Reva.StorageCustom.Services, + }, + + &cli.StringFlag{ + Name: "storage-custom-driver", + Value: "local", + Usage: "custom storage driver", + EnvVar: "REVA_STORAGE_CUSTOM_DRIVER", + Destination: &cfg.Reva.StorageCustom.Driver, + }, + &cli.StringFlag{ + Name: "storage-custom-path-wrapper", + Value: "", + Usage: "custom storage path wrapper", + EnvVar: "REVA_STORAGE_CUSTOM_PATH_WRAPPER", + Destination: &cfg.Reva.StorageCustom.PathWrapper, + }, + &cli.StringFlag{ + Name: "storage-custom-path-wrapper-context-prefix", + Value: "", + Usage: "custom storage path wrapper context prefix", + EnvVar: "REVA_STORAGE_CUSTOM_PATH_WRAPPER_CONTEXT_PREFIX", + Destination: &cfg.Reva.StorageCustom.PathWrapperContext.Prefix, + }, + &cli.StringFlag{ + Name: "storage-custom-mount-path", + Value: "", + Usage: "custom storage mount path", + EnvVar: "REVA_STORAGE_CUSTOM_MOUNT_PATH", + Destination: &cfg.Reva.StorageCustom.MountPath, + }, + &cli.StringFlag{ + Name: "storage-custom-mount-id", + Value: "", + Usage: "custom storage mount id", + EnvVar: "REVA_STORAGE_CUSTOM_MOUNT_ID", + Destination: &cfg.Reva.StorageCustom.MountID, + }, + &cli.BoolFlag{ + Name: "storage-custom-expose-data-server", + Usage: "custom storage exposes a dedicated data server", + EnvVar: "REVA_STORAGE_CUSTOM_EXPOSE_DATA_SERVER", + Destination: &cfg.Reva.StorageCustom.ExposeDataServer, + }, + &cli.StringFlag{ + Name: "storage-custom-data-server-url", + Value: "", + Usage: "custom storage data server url", + EnvVar: "REVA_STORAGE_CUSTOM_DATA_SERVER_URL", + Destination: &cfg.Reva.StorageCustom.DataServerURL, + }, + + // Storage custom data + + &cli.StringFlag{ + Name: "storage-custom-data-network", + Value: "tcp", + Usage: "Network to use for the reva storage-custom data service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_STORAGE_CUSTOM_DATA_NETWORK", + Destination: &cfg.Reva.StorageCustomData.Network, + }, + &cli.StringFlag{ + Name: "storage-custom-data-protocol", + Value: "http", + Usage: "protocol for reva storage-custom data service, can be 'http' or 'grpc'", + EnvVar: "REVA_STORAGE_CUSTOM_DATA_PROTOCOL", + Destination: &cfg.Reva.StorageCustomData.Protocol, + }, + &cli.StringFlag{ + Name: "storage-custom-data-addr", + Value: "0.0.0.0:9172", + Usage: "Address to bind reva storage-custom data service", + EnvVar: "REVA_STORAGE_CUSTOM_DATA_ADDR", + Destination: &cfg.Reva.StorageCustomData.Addr, + }, + &cli.StringFlag{ + Name: "storage-custom-data-url", + Value: "localhost:9172", + Usage: "URL to use for the reva storage-custom data service", + EnvVar: "REVA_STORAGE_CUSTOM_DATA_URL", + Destination: &cfg.Reva.StorageCustomData.URL, + }, + &cli.StringFlag{ + Name: "storage-custom-data-services", + Value: "dataprovider", + Usage: "comma separated list of services to include in the storage-custom data service", + EnvVar: "REVA_STORAGE_CUSTOM_DATA_SERVICES", + Destination: &cfg.Reva.StorageCustomData.Services, + }, + &cli.StringFlag{ + Name: "storage-custom-data-driver", + Value: "", + Usage: "custom data storage driver", + EnvVar: "REVA_STORAGE_CUSTOM_DATA_DRIVER", + Destination: &cfg.Reva.StorageCustomData.Driver, + }, + &cli.StringFlag{ + Name: "storage-custom-data-prefix", + Value: "data", + Usage: "prefix for the http endpoint, without leading slash", + EnvVar: "REVA_STORAGE_S3_DATA_PREFIX", + Destination: &cfg.Reva.StorageCustomData.Prefix, + }, + &cli.StringFlag{ + Name: "storage-custom-data-temp-folder", + Value: "/var/tmp/", + Usage: "storage custom data temp folder", + EnvVar: "REVA_STORAGE_CUSTOM_DATA_TEMP_FOLDER", + Destination: &cfg.Reva.StorageCustomData.TempFolder, + }, + + &cli.StringFlag{ + Name: "asset-path", + Value: "", + Usage: "Path to custom assets", + EnvVar: "REVA_ASSET_PATH", + Destination: &cfg.Asset.Path, + }, + } +} +*/ diff --git a/pkg/flagset/sharing.go b/pkg/flagset/sharing.go new file mode 100644 index 0000000000..4b6016a2dc --- /dev/null +++ b/pkg/flagset/sharing.go @@ -0,0 +1,125 @@ +package flagset + +import ( + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// SharingWithConfig applies cfg to the root flagset +func SharingWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9151", + Usage: "Address to bind debug server", + EnvVar: "REVA_SHARING_DEBUG_ADDR", + Destination: &cfg.Reva.Sharing.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Sharing + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_SHARING_NETWORK", + Destination: &cfg.Reva.Sharing.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "grpc", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVar: "REVA_SHARING_PROTOCOL", + Destination: &cfg.Reva.Sharing.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9150", + Usage: "Address to bind reva service", + EnvVar: "REVA_SHARING_ADDR", + Destination: &cfg.Reva.Sharing.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9150", + Usage: "URL to use for the reva service", + EnvVar: "REVA_SHARING_URL", + Destination: &cfg.Reva.Sharing.URL, + }, + &cli.StringFlag{ + Name: "services", + Value: "usershareprovider,publicshareprovider", // TODO osmshareprovider + Usage: "comma separated list of services to include", + EnvVar: "REVA_SHARING_SERVICES", + Destination: &cfg.Reva.Sharing.Services, + }, + } +} diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go new file mode 100644 index 0000000000..8ade136f9f --- /dev/null +++ b/pkg/flagset/storagehome.go @@ -0,0 +1,288 @@ +package flagset + +import ( + "os" + + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// StorageHomeWithConfig applies cfg to the root flagset +func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9155", + Usage: "Address to bind debug server", + EnvVar: "REVA_STORAGE_HOME_DEBUG_ADDR", + Destination: &cfg.Reva.StorageHome.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage home + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_STORAGE_HOME_NETWORK", + Destination: &cfg.Reva.StorageHome.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "grpc", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVar: "REVA_STORAGE_HOME_PROTOCOL", + Destination: &cfg.Reva.StorageHome.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9154", + Usage: "Address to bind reva service", + EnvVar: "REVA_STORAGE_HOME_ADDR", + Destination: &cfg.Reva.StorageHome.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9154", + Usage: "URL to use for the reva service", + EnvVar: "REVA_STORAGE_HOME_URL", + Destination: &cfg.Reva.StorageHome.URL, + }, + &cli.StringFlag{ + Name: "services", + Value: "storageprovider", + Usage: "comma separated list of services to include", + EnvVar: "REVA_STORAGE_HOME_SERVICES", + Destination: &cfg.Reva.StorageHome.Services, + }, + + &cli.StringFlag{ + Name: "driver", + Value: "owncloud", + Usage: "storage driver, eg. local, eos, owncloud or s3", + EnvVar: "REVA_STORAGE_HOME_DRIVER", + Destination: &cfg.Reva.StorageHome.Driver, + }, + &cli.StringFlag{ + Name: "path-wrapper", + Value: "context", + Usage: "path wrapper", + EnvVar: "REVA_STORAGE_HOME_PATH_WRAPPER", + Destination: &cfg.Reva.StorageHome.PathWrapper, + }, + &cli.StringFlag{ + Name: "path-wrapper-context-prefix", + Value: "", + Usage: "path wrapper context prefix", + EnvVar: "REVA_STORAGE_HOME_PATH_WRAPPER_CONTEXT_PREFIX", + Destination: &cfg.Reva.StorageHome.PathWrapperContext.Prefix, + }, + &cli.StringFlag{ + Name: "mount-path", + Value: "/home", + Usage: "mount path", + EnvVar: "REVA_STORAGE_HOME_MOUNT_PATH", + Destination: &cfg.Reva.StorageHome.MountPath, + }, + &cli.StringFlag{ + Name: "mount-id", + Value: "123e4567-e89b-12d3-a456-426655440000", + Usage: "mount id", + EnvVar: "REVA_STORAGE_HOME_MOUNT_ID", + Destination: &cfg.Reva.StorageHome.MountID, + }, + &cli.BoolFlag{ + Name: "expose-data-server", + Usage: "exposes a dedicated data server", + EnvVar: "REVA_STORAGE_HOME_EXPOSE_DATA_SERVER", + Destination: &cfg.Reva.StorageHome.ExposeDataServer, + }, + &cli.StringFlag{ + Name: "data-server-url", + Value: "http://localhost:9156/data", + Usage: "data server url", + EnvVar: "REVA_STORAGE_HOME_DATA_SERVER_URL", + Destination: &cfg.Reva.StorageHome.DataServerURL, + }, + + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "", + Usage: "Namespace for metadata operations", + EnvVar: "REVA_STORAGE_EOS_NAMESPACE", + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVar: "REVA_STORAGE_EOS_BINARY", + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVar: "REVA_STORAGE_EOS_XRDCOPY_BINARY", + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-example.org", + Usage: "URL of the Master EOS MGM", + EnvVar: "REVA_STORAGE_EOS_MASTER_URL", + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-example.org", + Usage: "URL of the Slave EOS MGM", + EnvVar: "REVA_STORAGE_EOS_SLAVE_URL", + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVar: "REVA_STORAGE_EOS_CACHE_DIRECTORY", + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVar: "REVA_STORAGE_EOS_ENABLE_LOGGING", + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVar: "REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES", + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVar: "REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE", + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVar: "REVA_STORAGE_EOS_USE_KEYTAB", + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Value: "", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVar: "REVA_STORAGE_EOS_SEC_PROTOCOL", + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Value: "", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVar: "REVA_STORAGE_EOS_KEYTAB", + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Value: "", + Usage: "the username to use when SingleUserMode is enabled", + EnvVar: "REVA_STORAGE_EOS_SINGLE_USERNAME", + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVar: "REVA_STORAGE_LOCAL_ROOT", + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + } +} diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go new file mode 100644 index 0000000000..d36267ca8d --- /dev/null +++ b/pkg/flagset/storagehomedata.go @@ -0,0 +1,260 @@ +package flagset + +import ( + "os" + + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// StorageHomeDataWithConfig applies cfg to the root flagset +func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9157", + Usage: "Address to bind debug server", + EnvVar: "REVA_STORAGE_HOME_DATA_DEBUG_ADDR", + Destination: &cfg.Reva.StorageHomeData.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage home data + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_STORAGE_HOME_DATA_NETWORK", + Destination: &cfg.Reva.StorageHomeData.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "http", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVar: "REVA_STORAGE_HOME_DATA_PROTOCOL", + Destination: &cfg.Reva.StorageHomeData.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9156", + Usage: "Address to bind reva service", + EnvVar: "REVA_STORAGE_HOME_DATA_ADDR", + Destination: &cfg.Reva.StorageHomeData.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9156", + Usage: "URL to use for the reva service", + EnvVar: "REVA_STORAGE_HOME_DATA_URL", + Destination: &cfg.Reva.StorageHomeData.URL, + }, + &cli.StringFlag{ + Name: "services", + Value: "dataprovider", + Usage: "comma separated list of services to include", + EnvVar: "REVA_STORAGE_HOME_DATA_SERVICES", + Destination: &cfg.Reva.StorageHomeData.Services, + }, + &cli.StringFlag{ + Name: "driver", + Value: "owncloud", + Usage: "storage driver, eg. local, eos, owncloud or s3", + EnvVar: "REVA_STORAGE_HOME_DATA_DRIVER", + Destination: &cfg.Reva.StorageHomeData.Driver, + }, + &cli.StringFlag{ + Name: "prefix", + Value: "data", + Usage: "prefix for the http endpoint, without leading slash", + EnvVar: "REVA_STORAGE_HOME_DATA_PREFIX", + Destination: &cfg.Reva.StorageHomeData.Prefix, + }, + &cli.StringFlag{ + Name: "temp-folder", + Value: "/var/tmp/", + Usage: "temp folder", + EnvVar: "REVA_STORAGE_HOME_DATA_TEMP_FOLDER", + Destination: &cfg.Reva.StorageHomeData.TempFolder, + }, + + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "", + Usage: "Namespace for metadata operations", + EnvVar: "REVA_STORAGE_EOS_NAMESPACE", + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVar: "REVA_STORAGE_EOS_BINARY", + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVar: "REVA_STORAGE_EOS_XRDCOPY_BINARY", + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-example.org", + Usage: "URL of the Master EOS MGM", + EnvVar: "REVA_STORAGE_EOS_MASTER_URL", + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-example.org", + Usage: "URL of the Slave EOS MGM", + EnvVar: "REVA_STORAGE_EOS_SLAVE_URL", + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVar: "REVA_STORAGE_EOS_CACHE_DIRECTORY", + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVar: "REVA_STORAGE_EOS_ENABLE_LOGGING", + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVar: "REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES", + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVar: "REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE", + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVar: "REVA_STORAGE_EOS_USE_KEYTAB", + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Value: "", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVar: "REVA_STORAGE_EOS_SEC_PROTOCOL", + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Value: "", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVar: "REVA_STORAGE_EOS_KEYTAB", + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Value: "", + Usage: "the username to use when SingleUserMode is enabled", + EnvVar: "REVA_STORAGE_EOS_SINGLE_USERNAME", + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVar: "REVA_STORAGE_LOCAL_ROOT", + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + } +} diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go new file mode 100644 index 0000000000..85112f6fa0 --- /dev/null +++ b/pkg/flagset/storageoc.go @@ -0,0 +1,288 @@ +package flagset + +import ( + "os" + + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// StorageOCWithConfig applies cfg to the root flagset +func StorageOCWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9163", + Usage: "Address to bind debug server", + EnvVar: "REVA_STORAGE_OC_DEBUG_ADDR", + Destination: &cfg.Reva.StorageOC.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage oc + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_STORAGE_OC_NETWORK", + Destination: &cfg.Reva.StorageOC.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "grpc", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVar: "REVA_STORAGE_OC_PROTOCOL", + Destination: &cfg.Reva.StorageOC.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9162", + Usage: "Address to bind reva service", + EnvVar: "REVA_STORAGE_OC_ADDR", + Destination: &cfg.Reva.StorageOC.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9162", + Usage: "URL to use for the reva service", + EnvVar: "REVA_STORAGE_OC_URL", + Destination: &cfg.Reva.StorageOC.URL, + }, + &cli.StringFlag{ + Name: "services", + Value: "storageprovider", + Usage: "comma separated list of services to include", + EnvVar: "REVA_STORAGE_OC_SERVICES", + Destination: &cfg.Reva.StorageOC.Services, + }, + + &cli.StringFlag{ + Name: "driver", + Value: "owncloud", + Usage: "storage driver, eg. local, eos, owncloud or s3", + EnvVar: "REVA_STORAGE_OC_DRIVER", + Destination: &cfg.Reva.StorageOC.Driver, + }, + &cli.StringFlag{ + Name: "path-wrapper", + Value: "", + Usage: "path wrapper", + EnvVar: "REVA_STORAGE_OC_PATH_WRAPPER", + Destination: &cfg.Reva.StorageOC.PathWrapper, + }, + &cli.StringFlag{ + Name: "path-wrapper-context-prefix", + Value: "", + Usage: "path wrapper context prefix", + EnvVar: "REVA_STORAGE_OC_PATH_WRAPPER_CONTEXT_PREFIX", + Destination: &cfg.Reva.StorageOC.PathWrapperContext.Prefix, + }, + &cli.StringFlag{ + Name: "mount-path", + Value: "/oc", + Usage: "mount path", + EnvVar: "REVA_STORAGE_OC_MOUNT_PATH", + Destination: &cfg.Reva.StorageOC.MountPath, + }, + &cli.StringFlag{ + Name: "mount-id", + Value: "123e4567-e89b-12d3-a456-426655440000", + Usage: "mount id", + EnvVar: "REVA_STORAGE_OC_MOUNT_ID", + Destination: &cfg.Reva.StorageOC.MountID, + }, + &cli.BoolFlag{ + Name: "expose-data-server", + Usage: "exposes a dedicated data server", + EnvVar: "REVA_STORAGE_OC_EXPOSE_DATA_SERVER", + Destination: &cfg.Reva.StorageOC.ExposeDataServer, + }, + &cli.StringFlag{ + Name: "data-server-url", + Value: "", + Usage: "data server url", + EnvVar: "REVA_STORAGE_OC_DATA_SERVER_URL", + Destination: &cfg.Reva.StorageOC.DataServerURL, + }, + + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "", + Usage: "Namespace for metadata operations", + EnvVar: "REVA_STORAGE_EOS_NAMESPACE", + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVar: "REVA_STORAGE_EOS_BINARY", + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVar: "REVA_STORAGE_EOS_XRDCOPY_BINARY", + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-example.org", + Usage: "URL of the Master EOS MGM", + EnvVar: "REVA_STORAGE_EOS_MASTER_URL", + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-example.org", + Usage: "URL of the Slave EOS MGM", + EnvVar: "REVA_STORAGE_EOS_SLAVE_URL", + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVar: "REVA_STORAGE_EOS_CACHE_DIRECTORY", + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVar: "REVA_STORAGE_EOS_ENABLE_LOGGING", + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVar: "REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES", + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVar: "REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE", + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVar: "REVA_STORAGE_EOS_USE_KEYTAB", + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Value: "", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVar: "REVA_STORAGE_EOS_SEC_PROTOCOL", + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Value: "", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVar: "REVA_STORAGE_EOS_KEYTAB", + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Value: "", + Usage: "the username to use when SingleUserMode is enabled", + EnvVar: "REVA_STORAGE_EOS_SINGLE_USERNAME", + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVar: "REVA_STORAGE_LOCAL_ROOT", + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + } +} diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go new file mode 100644 index 0000000000..8046303699 --- /dev/null +++ b/pkg/flagset/storageocdata.go @@ -0,0 +1,260 @@ +package flagset + +import ( + "os" + + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// StorageOCDataWithConfig applies cfg to the root flagset +func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9165", + Usage: "Address to bind debug server", + EnvVar: "REVA_STORAGE_OC_DATA_DEBUG_ADDR", + Destination: &cfg.Reva.StorageOCData.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage oc data + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_STORAGE_OC_DATA_NETWORK", + Destination: &cfg.Reva.StorageOCData.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "http", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVar: "REVA_STORAGE_OC_DATA_PROTOCOL", + Destination: &cfg.Reva.StorageOCData.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9164", + Usage: "Address to bind reva service", + EnvVar: "REVA_STORAGE_OC_DATA_ADDR", + Destination: &cfg.Reva.StorageOCData.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9164", + Usage: "URL to use for the reva service", + EnvVar: "REVA_STORAGE_OC_DATA_URL", + Destination: &cfg.Reva.StorageOCData.URL, + }, + &cli.StringFlag{ + Name: "services", + Value: "dataprovider", + Usage: "comma separated list of services to include in the storage-oc data service", + EnvVar: "REVA_STORAGE_OC_DATA_SERVICES", + Destination: &cfg.Reva.StorageOCData.Services, + }, + &cli.StringFlag{ + Name: "driver", + Value: "owncloud", + Usage: "storage driver, eg. local, eos, owncloud or s3", + EnvVar: "REVA_STORAGE_OC_DATA_DRIVER", + Destination: &cfg.Reva.StorageOCData.Driver, + }, + &cli.StringFlag{ + Name: "prefix", + Value: "data", + Usage: "prefix for the http endpoint, without leading slash", + EnvVar: "REVA_STORAGE_OC_DATA_PREFIX", + Destination: &cfg.Reva.StorageOCData.Prefix, + }, + &cli.StringFlag{ + Name: "temp-folder", + Value: "/var/tmp/", + Usage: "temp folder", + EnvVar: "REVA_STORAGE_OC_DATA_TEMP_FOLDER", + Destination: &cfg.Reva.StorageOCData.TempFolder, + }, + + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "", + Usage: "Namespace for metadata operations", + EnvVar: "REVA_STORAGE_EOS_NAMESPACE", + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVar: "REVA_STORAGE_EOS_BINARY", + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVar: "REVA_STORAGE_EOS_XRDCOPY_BINARY", + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-example.org", + Usage: "URL of the Master EOS MGM", + EnvVar: "REVA_STORAGE_EOS_MASTER_URL", + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-example.org", + Usage: "URL of the Slave EOS MGM", + EnvVar: "REVA_STORAGE_EOS_SLAVE_URL", + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVar: "REVA_STORAGE_EOS_CACHE_DIRECTORY", + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVar: "REVA_STORAGE_EOS_ENABLE_LOGGING", + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVar: "REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES", + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVar: "REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE", + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVar: "REVA_STORAGE_EOS_USE_KEYTAB", + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Value: "", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVar: "REVA_STORAGE_EOS_SEC_PROTOCOL", + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Value: "", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVar: "REVA_STORAGE_EOS_KEYTAB", + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Value: "", + Usage: "the username to use when SingleUserMode is enabled", + EnvVar: "REVA_STORAGE_EOS_SINGLE_USERNAME", + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVar: "REVA_STORAGE_LOCAL_ROOT", + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + } +} diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go new file mode 100644 index 0000000000..164522ad92 --- /dev/null +++ b/pkg/flagset/storageroot.go @@ -0,0 +1,288 @@ +package flagset + +import ( + "os" + + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// StorageRootWithConfig applies cfg to the root flagset +func StorageRootWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9153", + Usage: "Address to bind debug server", + EnvVar: "REVA_STORAGE_ROOT_DEBUG_ADDR", + Destination: &cfg.Reva.StorageRoot.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage root + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_STORAGE_ROOT_NETWORK", + Destination: &cfg.Reva.StorageRoot.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "grpc", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVar: "REVA_STORAGE_ROOT_PROTOCOL", + Destination: &cfg.Reva.StorageRoot.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9152", + Usage: "Address to bind reva service", + EnvVar: "REVA_STORAGE_ROOT_ADDR", + Destination: &cfg.Reva.StorageRoot.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9152", + Usage: "URL to use for the reva service", + EnvVar: "REVA_STORAGE_ROOT_URL", + Destination: &cfg.Reva.StorageRoot.URL, + }, + &cli.StringFlag{ + Name: "services", + Value: "storageprovider", + Usage: "comma separated list of services to include in the storage-root service", + EnvVar: "REVA_STORAGE_ROOT_SERVICES", + Destination: &cfg.Reva.StorageRoot.Services, + }, + + &cli.StringFlag{ + Name: "driver", + Value: "local", + Usage: "storage driver, eg. local, eos, owncloud or s3", + EnvVar: "REVA_STORAGE_ROOT_DRIVER", + Destination: &cfg.Reva.StorageRoot.Driver, + }, + &cli.StringFlag{ + Name: "path-wrapper", + Value: "", + Usage: "path wrapper", + EnvVar: "REVA_STORAGE_ROOT_PATH_WRAPPER", + Destination: &cfg.Reva.StorageRoot.PathWrapper, + }, + &cli.StringFlag{ + Name: "path-wrapper-context-prefix", + Value: "", + Usage: "path wrapper context prefix", + EnvVar: "REVA_STORAGE_ROOT_PATH_WRAPPER_CONTEXT_PREFIX", + Destination: &cfg.Reva.StorageRoot.PathWrapperContext.Prefix, + }, + &cli.StringFlag{ + Name: "mount-path", + Value: "/", + Usage: "mount path", + EnvVar: "REVA_STORAGE_ROOT_MOUNT_PATH", + Destination: &cfg.Reva.StorageRoot.MountPath, + }, + &cli.StringFlag{ + Name: "mount-id", + Value: "123e4567-e89b-12d3-a456-426655440001", + Usage: "mount id", + EnvVar: "REVA_STORAGE_ROOT_MOUNT_ID", + Destination: &cfg.Reva.StorageRoot.MountID, + }, + &cli.BoolFlag{ + Name: "expose-data-server", + Usage: "exposes a dedicated data server", + EnvVar: "REVA_STORAGE_ROOT_EXPOSE_DATA_SERVER", + Destination: &cfg.Reva.StorageRoot.ExposeDataServer, + }, + &cli.StringFlag{ + Name: "data-server-url", + Value: "", + Usage: "data server url", + EnvVar: "REVA_STORAGE_ROOT_DATA_SERVER_URL", + Destination: &cfg.Reva.StorageRoot.DataServerURL, + }, + + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "", + Usage: "Namespace for metadata operations", + EnvVar: "REVA_STORAGE_EOS_NAMESPACE", + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVar: "REVA_STORAGE_EOS_BINARY", + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVar: "REVA_STORAGE_EOS_XRDCOPY_BINARY", + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-example.org", + Usage: "URL of the Master EOS MGM", + EnvVar: "REVA_STORAGE_EOS_MASTER_URL", + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-example.org", + Usage: "URL of the Slave EOS MGM", + EnvVar: "REVA_STORAGE_EOS_SLAVE_URL", + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVar: "REVA_STORAGE_EOS_CACHE_DIRECTORY", + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVar: "REVA_STORAGE_EOS_ENABLE_LOGGING", + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVar: "REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES", + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVar: "REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE", + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVar: "REVA_STORAGE_EOS_USE_KEYTAB", + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Value: "", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVar: "REVA_STORAGE_EOS_SEC_PROTOCOL", + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Value: "", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVar: "REVA_STORAGE_EOS_KEYTAB", + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Value: "", + Usage: "the username to use when SingleUserMode is enabled", + EnvVar: "REVA_STORAGE_EOS_SINGLE_USERNAME", + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVar: "REVA_STORAGE_LOCAL_ROOT", + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + } +} diff --git a/pkg/flagset/users.go b/pkg/flagset/users.go new file mode 100644 index 0000000000..76d8670575 --- /dev/null +++ b/pkg/flagset/users.go @@ -0,0 +1,221 @@ +package flagset + +import ( + "github.com/micro/cli" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// UsersWithConfig applies cfg to the root flagset +func UsersWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVar: "REVA_TRACING_ENABLED", + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVar: "REVA_TRACING_TYPE", + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVar: "REVA_TRACING_ENDPOINT", + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVar: "REVA_TRACING_COLLECTOR", + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVar: "REVA_TRACING_SERVICE", + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9145", + Usage: "Address to bind debug server", + EnvVar: "REVA_SHARING_DEBUG_ADDR", + Destination: &cfg.Reva.Users.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVar: "REVA_DEBUG_TOKEN", + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVar: "REVA_DEBUG_PPROF", + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVar: "REVA_DEBUG_ZPAGES", + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVar: "REVA_JWT_SECRET", + Destination: &cfg.Reva.JWTSecret, + }, + + // LDAP + + &cli.StringFlag{ + Name: "ldap-hostname", + Value: "localhost", + Usage: "LDAP hostname", + EnvVar: "REVA_LDAP_HOSTNAME", + Destination: &cfg.Reva.LDAP.Hostname, + }, + &cli.IntFlag{ + Name: "ldap-port", + Value: 389, + Usage: "LDAP port", + EnvVar: "REVA_LDAP_PORT", + Destination: &cfg.Reva.LDAP.Port, + }, + &cli.StringFlag{ + Name: "ldap-base-dn", + Value: "dc=owncloud,dc=com", + Usage: "LDAP basedn", + EnvVar: "REVA_LDAP_BASE_DN", + Destination: &cfg.Reva.LDAP.BaseDN, + }, + &cli.StringFlag{ + Name: "ldap-userfilter", + Value: "(objectclass=posixAccount)", + Usage: "LDAP userfilter", + EnvVar: "REVA_LDAP_USERFILTER", + Destination: &cfg.Reva.LDAP.UserFilter, + }, + &cli.StringFlag{ + Name: "ldap-groupfilter", + Value: "(objectclass=posixGroup)", + Usage: "LDAP groupfilter", + EnvVar: "REVA_LDAP_GROUPFILTER", + Destination: &cfg.Reva.LDAP.GroupFilter, + }, + &cli.StringFlag{ + Name: "ldap-bind-dn", + Value: "cn=admin,dc=owncloud,dc=com", + Usage: "LDAP bind dn", + EnvVar: "REVA_LDAP_BIND_DN", + Destination: &cfg.Reva.LDAP.BindDN, + }, + &cli.StringFlag{ + Name: "ldap-bind-password", + Value: "admin", + Usage: "LDAP bind password", + EnvVar: "REVA_LDAP_BIND_PASSWORD", + Destination: &cfg.Reva.LDAP.BindPassword, + }, + // ldap dn is always the dn + &cli.StringFlag{ + Name: "ldap-schema-uid", + Value: "uid", + Usage: "LDAP schema uid", + EnvVar: "REVA_LDAP_SCHEMA_UID", + Destination: &cfg.Reva.LDAP.Schema.UID, + }, + &cli.StringFlag{ + Name: "ldap-schema-mail", + Value: "mail", + Usage: "LDAP schema mail", + EnvVar: "REVA_LDAP_SCHEMA_MAIL", + Destination: &cfg.Reva.LDAP.Schema.Mail, + }, + &cli.StringFlag{ + Name: "ldap-schema-displayName", + Value: "displayName", + Usage: "LDAP schema displayName", + EnvVar: "REVA_LDAP_SCHEMA_DISPLAYNAME", + Destination: &cfg.Reva.LDAP.Schema.DisplayName, + }, + &cli.StringFlag{ + Name: "ldap-schema-cn", + Value: "cn", + Usage: "LDAP schema cn", + EnvVar: "REVA_LDAP_SCHEMA_CN", + Destination: &cfg.Reva.LDAP.Schema.CN, + }, + + // Services + + // Users + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVar: "REVA_USERS_NETWORK", + Destination: &cfg.Reva.Users.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "grpc", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVar: "REVA_USERS_PROTOCOL", + Destination: &cfg.Reva.Users.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9144", + Usage: "Address to bind reva service", + EnvVar: "REVA_USERS_ADDR", + Destination: &cfg.Reva.Users.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVar: "REVA_USERS_URL", + Destination: &cfg.Reva.Users.URL, + }, + &cli.StringFlag{ + Name: "services", + Value: "userprovider", // TODO preferences + Usage: "comma separated list of services to include", + EnvVar: "REVA_USERS_SERVICES", + Destination: &cfg.Reva.Users.Services, + }, + + &cli.StringFlag{ + Name: "driver", + Value: "demo", + Usage: "user driver: 'demo', 'json' or 'ldap'", + EnvVar: "REVA_USERS_DRIVER", + Destination: &cfg.Reva.Users.Driver, + }, + &cli.StringFlag{ + Name: "json-config", + Value: "", + Usage: "Path to users.json file", + EnvVar: "REVA_USERS_JSON", + Destination: &cfg.Reva.Users.JSON, + }, + } +} diff --git a/pkg/server/debug/option.go b/pkg/server/debug/option.go index f728caac68..347aa4a701 100644 --- a/pkg/server/debug/option.go +++ b/pkg/server/debug/option.go @@ -3,8 +3,8 @@ package debug import ( "context" - "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-pkg/log" + "github.com/owncloud/ocis-reva/pkg/config" ) // Option defines a single option function. @@ -12,6 +12,8 @@ type Option func(o *Options) // Options defines the available options for this package. type Options struct { + Name string + Addr string Logger log.Logger Context context.Context Config *config.Config @@ -28,6 +30,20 @@ func newOptions(opts ...Option) Options { return opt } +// Name provides a function to set the name option. +func Name(val string) Option { + return func(o *Options) { + o.Name = val + } +} + +// Addr provides a function to set the addr option. +func Addr(val string) Option { + return func(o *Options) { + o.Addr = val + } +} + // Logger provides a function to set the logger option. func Logger(val log.Logger) Option { return func(o *Options) { diff --git a/pkg/server/debug/server.go b/pkg/server/debug/server.go index 91c1f8deca..fb2ab77464 100644 --- a/pkg/server/debug/server.go +++ b/pkg/server/debug/server.go @@ -4,9 +4,9 @@ import ( "io" "net/http" + "github.com/owncloud/ocis-pkg/service/debug" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/version" - "github.com/owncloud/ocis-pkg/service/debug" ) // Server initializes the debug service and server. @@ -15,9 +15,9 @@ func Server(opts ...Option) (*http.Server, error) { return debug.NewService( debug.Logger(options.Logger), - debug.Name("hello"), + debug.Name(options.Name), debug.Version(version.String), - debug.Address(options.Config.Debug.Addr), + debug.Address(options.Addr), debug.Token(options.Config.Debug.Token), debug.Pprof(options.Config.Debug.Pprof), debug.Zpages(options.Config.Debug.Zpages), From 4d203ba5e97c9aff44960dc578f4392b5c08a7e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 16 Jan 2020 21:57:15 +0100 Subject: [PATCH 005/346] add .github folder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .github/issue_template.md | 0 .github/pull_request_template.md | 0 .github/settings.yml | 98 ++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 .github/issue_template.md create mode 100644 .github/pull_request_template.md create mode 100644 .github/settings.yml diff --git a/.github/issue_template.md b/.github/issue_template.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.github/settings.yml b/.github/settings.yml new file mode 100644 index 0000000000..bf6f837316 --- /dev/null +++ b/.github/settings.yml @@ -0,0 +1,98 @@ +--- +repository: + name: ocis-reva + description: ':arrows_counterclockwise: reva integration for oCIS' + homepage: https://owncloud.github.io/ocis-reva/ + topics: reva, ocis + + private: false + has_issues: true + has_projects: false + has_wiki: true + has_downloads: false + + default_branch: master + + allow_squash_merge: true + allow_merge_commit: true + allow_rebase_merge: true + +labels: + - name: bug + color: d73a4a + description: Something isn't working + - name: documentation + color: 0075ca + description: Improvements or additions to documentation + - name: duplicate + color: cfd3d7 + description: This issue or pull request already exists + - name: enhancement + color: a2eeef + description: New feature or request + - name: good first issue + color: 7057ff + description: Good for newcomers + - name: help wanted + color: 008672 + description: Extra attention is needed + - name: invalid + color: e4e669 + description: This doesn't seem right + - name: question + color: d876e3 + description: Further information is requested + - name: wontfix + color: ffffff + description: This will not be worked on + - name: effort/trivial + color: c2e0c6 + description: Required effort to finish task + - name: effort/0.25d + color: c2e0c6 + description: Required effort to finish task + - name: effort/0.5d + color: c2e0c6 + description: Required effort to finish task + - name: effort/1d + color: c2e0c6 + description: Required effort to finish task + - name: effort/2d + color: c2e0c6 + description: Required effort to finish task + - name: effort/4d + color: c2e0c6 + description: Required effort to finish task + - name: effort/5d + color: c2e0c6 + description: Required effort to finish task + - name: effort/10d + color: c2e0c6 + description: Required effort to finish task + +teams: + - name: ci + permission: admin + - name: employees + permission: push + +branches: + - name: master + protection: + required_pull_request_reviews: + required_approving_review_count: 1 + dismiss_stale_reviews: false + require_code_owner_reviews: false + dismissal_restrictions: {} + required_status_checks: + strict: true + contexts: + - continuous-integration/drone/pr + enforce_admins: false + restrictions: + users: [] + teams: + - ci + - employees + +... From 46ab6037b75bdb701095f16e930d0685969ac5cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 17 Jan 2020 10:12:12 +0100 Subject: [PATCH 006/346] fix default storage config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/flagset/storagehomedata.go | 10 ++++++++++ pkg/flagset/storageoc.go | 2 +- pkg/flagset/storageocdata.go | 10 ++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index d36267ca8d..569f428be5 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -256,5 +256,15 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, + + // Gateway + + &cli.StringFlag{ + Name: "gateway-url", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVar: "REVA_GATEWAY_URL", + Destination: &cfg.Reva.Gateway.URL, + }, } } diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 85112f6fa0..2bf4303dba 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -167,7 +167,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "data-server-url", - Value: "", + Value: "http://localhost:9164/data", Usage: "data server url", EnvVar: "REVA_STORAGE_OC_DATA_SERVER_URL", Destination: &cfg.Reva.StorageOC.DataServerURL, diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index 8046303699..8d0244d517 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -256,5 +256,15 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, + + // Gateway + + &cli.StringFlag{ + Name: "gateway-url", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVar: "REVA_GATEWAY_URL", + Destination: &cfg.Reva.Gateway.URL, + }, } } From 1df7dd421513586b0a7c961294979a7bd2bce6ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 17 Jan 2020 13:36:51 +0100 Subject: [PATCH 007/346] fix default ldap filters and port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- docs/content/users.md | 4 ++-- pkg/flagset/authbasic.go | 6 +++--- pkg/flagset/users.go | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/content/users.md b/docs/content/users.md index 536810aae3..2950269cf4 100644 --- a/docs/content/users.md +++ b/docs/content/users.md @@ -36,8 +36,8 @@ If the below defaults don't match your environment change them accordingly: export REVA_LDAP_HOSTNAME=localhost export REVA_LDAP_PORT=389 export REVA_LDAP_BASE_DN='dc=owncloud,dc=com' -export REVA_LDAP_USERFILTER='(objectclass=posixAccount)' -export REVA_LDAP_GROUPFILTER='(objectclass=posixGroup)' +export REVA_LDAP_USERFILTER='(&(objectclass=posixAccount)(cn=%s))' +export REVA_LDAP_GROUPFILTER='(&(objectclass=posixGroup)(cn=%s))' export REVA_LDAP_BIND_DN='cn=admin,dc=owncloud,dc=com' export REVA_LDAP_BIND_PASSWORD=admin export REVA_LDAP_SCHEMA_UID=uid diff --git a/pkg/flagset/authbasic.go b/pkg/flagset/authbasic.go index 5a495a8d2b..13402d78f3 100644 --- a/pkg/flagset/authbasic.go +++ b/pkg/flagset/authbasic.go @@ -110,7 +110,7 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { }, &cli.IntFlag{ Name: "ldap-port", - Value: 389, + Value: 636, Usage: "LDAP port", EnvVar: "REVA_LDAP_PORT", Destination: &cfg.Reva.LDAP.Port, @@ -124,14 +124,14 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "ldap-userfilter", - Value: "(objectclass=posixAccount)", + Value: "(&(objectclass=posixAccount)(cn=%s))", Usage: "LDAP userfilter", EnvVar: "REVA_LDAP_USERFILTER", Destination: &cfg.Reva.LDAP.UserFilter, }, &cli.StringFlag{ Name: "ldap-groupfilter", - Value: "(objectclass=posixGroup)", + Value: "(&(objectclass=posixGroup)(cn=%s))", Usage: "LDAP groupfilter", EnvVar: "REVA_LDAP_GROUPFILTER", Destination: &cfg.Reva.LDAP.GroupFilter, diff --git a/pkg/flagset/users.go b/pkg/flagset/users.go index 76d8670575..523cd265da 100644 --- a/pkg/flagset/users.go +++ b/pkg/flagset/users.go @@ -93,7 +93,7 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { }, &cli.IntFlag{ Name: "ldap-port", - Value: 389, + Value: 636, Usage: "LDAP port", EnvVar: "REVA_LDAP_PORT", Destination: &cfg.Reva.LDAP.Port, @@ -107,14 +107,14 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "ldap-userfilter", - Value: "(objectclass=posixAccount)", + Value: "(&(objectclass=posixAccount)(cn=%s))", Usage: "LDAP userfilter", EnvVar: "REVA_LDAP_USERFILTER", Destination: &cfg.Reva.LDAP.UserFilter, }, &cli.StringFlag{ Name: "ldap-groupfilter", - Value: "(objectclass=posixGroup)", + Value: "(&(objectclass=posixGroup)(cn=%s))", Usage: "LDAP groupfilter", EnvVar: "REVA_LDAP_GROUPFILTER", Destination: &cfg.Reva.LDAP.GroupFilter, From c3afb798d6835aaf1ee3f61007ed70cf0339f244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 21 Jan 2020 15:48:08 +0100 Subject: [PATCH 008/346] Fix desktop oidc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/command/frontend.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index 0520476d89..bf2cf1d5a8 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -70,7 +70,7 @@ func Frontend(cfg *config.Config) cli.Command { // TODO use custom scheme like "owncloud://localhost/user/callback" tracked in var desktopRedirectURIs [65535 - 1024]string for port := 0; port < len(desktopRedirectURIs); port++ { - desktopRedirectURIs[port] = fmt.Sprintf("http://localhost:%d/callback", (port + 1024)) + desktopRedirectURIs[port] = fmt.Sprintf("http://localhost:%d", (port + 1024)) } rcfg := map[string]interface{}{ @@ -156,7 +156,8 @@ func Frontend(cfg *config.Config) cli.Command { "scopes": []string{"openid", "profile", "email", "offline"}, "public": true, // force PKCS for public clients }, - "desktop": map[string]interface{}{ + // desktop + "xdXOt13JKxym1B1QcEncf2XDkLAexMBFwiT9j6EfhhHFJhs2KM9jbjTmf8JBXE69": map[string]interface{}{ "id": "xdXOt13JKxym1B1QcEncf2XDkLAexMBFwiT9j6EfhhHFJhs2KM9jbjTmf8JBXE69", "client_secret": "$2y$12$pKsCQPp8e/UOL1QDQhT3g.1J.KK8oMJACbEXIqRD0LiOxvgey.TtS", // preregister localhost ports for the desktop From 3455e996883361ec9429135e301fa53229212c2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 22 Jan 2020 11:29:07 +0100 Subject: [PATCH 009/346] Add env vars used by ocis to enable the data services --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fce69656df..df415e8606 100644 --- a/README.md +++ b/README.md @@ -35,12 +35,14 @@ bin/ocis-reva auth-basic & \ bin/ocis-reva auth-bearer & \ bin/ocis-reva sharing & \ bin/ocis-reva storage-root & \ -bin/ocis-reva storage-home & \ +REVA_STORAGE_HOME_EXPOSE_DATA_SERVER=1 bin/ocis-reva storage-home & \ bin/ocis-reva storage-home-data & \ -bin/ocis-reva storage-oc & \ +REVA_STORAGE_OC_EXPOSE_DATA_SERVER=1 bin/ocis-reva storage-oc & \ bin/ocis-reva storage-oc-data ``` +The two env vars are needed to tell the reva gateway to use the dedicated data services when uploading files. + The root storage serves the available namespaces from disk using the local storage driver. In order to be able to navigate into the `/home` and `/oc` storage providers you have to create these directories: ``` mkdir /var/tmp/reva/root/home From 92cfad0e260109d240849ae6559141d80a2be17e Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 24 Jan 2020 14:53:03 +0545 Subject: [PATCH 010/346] fix default port in documentation --- docs/content/users.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/content/users.md b/docs/content/users.md index 2950269cf4..02593e085b 100644 --- a/docs/content/users.md +++ b/docs/content/users.md @@ -34,7 +34,7 @@ export REVA_USERS_DRIVER=ldap If the below defaults don't match your environment change them accordingly: ``` export REVA_LDAP_HOSTNAME=localhost -export REVA_LDAP_PORT=389 +export REVA_LDAP_PORT=636 export REVA_LDAP_BASE_DN='dc=owncloud,dc=com' export REVA_LDAP_USERFILTER='(&(objectclass=posixAccount)(cn=%s))' export REVA_LDAP_GROUPFILTER='(&(objectclass=posixGroup)(cn=%s))' @@ -46,4 +46,4 @@ export REVA_LDAP_SCHEMA_DISPLAYNAME=displayName export REVA_LDAP_SCHEMA_CN=cn ``` -Then restart the `bin/ocis-reva users` and `bin/ocis-reva auth-basic` services for the changes to take effect. \ No newline at end of file +Then restart the `bin/ocis-reva users` and `bin/ocis-reva auth-basic` services for the changes to take effect. From 731e6f39ce5be7dab2e8a4660af97490ce430b75 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Mon, 27 Jan 2020 14:16:30 +0100 Subject: [PATCH 011/346] Remove frontend parts from CI --- .drone.star | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/.drone.star b/.drone.star index 135ba8dd12..c1bba64194 100644 --- a/.drone.star +++ b/.drone.star @@ -32,17 +32,6 @@ def testing(ctx): 'arch': 'amd64', }, 'steps': [ - { - 'name': 'frontend', - 'image': 'webhippie/nodejs:latest', - 'pull': 'always', - 'commands': [ - 'yarn install --frozen-lockfile', - 'yarn lint', - 'yarn test', - 'yarn build', - ], - }, { 'name': 'generate', 'image': 'webhippie/golang:1.13', @@ -163,15 +152,6 @@ def docker(ctx, arch): 'arch': arch, }, 'steps': [ - { - 'name': 'frontend', - 'image': 'webhippie/nodejs:latest', - 'pull': 'always', - 'commands': [ - 'yarn install --frozen-lockfile', - 'yarn build', - ], - }, { 'name': 'generate', 'image': 'webhippie/golang:1.13', @@ -310,15 +290,6 @@ def binary(ctx, name): 'arch': 'amd64', }, 'steps': [ - { - 'name': 'frontend', - 'image': 'webhippie/nodejs:latest', - 'pull': 'always', - 'commands': [ - 'yarn install --frozen-lockfile', - 'yarn build', - ], - }, { 'name': 'generate', 'image': 'webhippie/golang:1.13', From 64dd8a8b175225e61e76fddac447030cb1584709 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Mon, 27 Jan 2020 15:09:20 +0100 Subject: [PATCH 012/346] Remove unused assets and fix generate target --- Makefile | 2 +- go.sum | 16 +++++ pkg/assets/assets.go | 60 ------------------ pkg/assets/dummy.go | 9 --- pkg/assets/embed.go | 144 ------------------------------------------- pkg/assets/embed.yml | 17 ----- pkg/assets/option.go | 40 ------------ 7 files changed, 17 insertions(+), 271 deletions(-) delete mode 100644 pkg/assets/assets.go delete mode 100644 pkg/assets/dummy.go delete mode 100644 pkg/assets/embed.go delete mode 100644 pkg/assets/embed.yml delete mode 100644 pkg/assets/option.go diff --git a/Makefile b/Makefile index 7ebb8308bf..e5eb471cc1 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ endif PACKAGES ?= $(shell go list ./...) SOURCES ?= $(shell find . -name "*.go" -type f -not -path "./node_modules/*") -GENERATE ?= $(IMPORT)/pkg/assets +GENERATE ?= $(PACKAGES) TAGS ?= diff --git a/go.sum b/go.sum index 033e49fa2c..75f3864ede 100644 --- a/go.sum +++ b/go.sum @@ -13,6 +13,7 @@ contrib.go.opencensus.io/exporter/jaeger v0.2.0 h1:nhTv/Ry3lGmqbJ/JGvCjWxBl5ozRf contrib.go.opencensus.io/exporter/jaeger v0.2.0/go.mod h1:ukdzwIYYHgZ7QYtwVFQUjiT28BJHiMhTERo32s6qVgM= contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrLVhN+qmP8BTVvdH2YLs7Gl0= +contrib.go.opencensus.io/exporter/prometheus v0.1.0 h1:SByaIoWwNgMdPSgl5sMqM2KDE5H/ukPWBRo314xiDvg= contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= @@ -85,6 +86,7 @@ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmV github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee h1:3T/l+vMotQ7cDSLWNAn2Vg1SAQ3mdyLgBWWBitSS3uU= github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt4WATGGgae9mURNGQQqxAudPKrxfsbSDSGOso+g= @@ -149,6 +151,7 @@ github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkE github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.17+incompatible h1:f/Z3EoDSx1yjaIjLQGo1diYUlQYSBrrAQ5vP8NjwXwo= github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= @@ -282,6 +285,7 @@ github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -387,6 +391,7 @@ github.com/jcmturner/gofork v0.0.0-20190328161633-dc7c13fece03/go.mod h1:MK8+TM0 github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4FwCTKeG3oo7hrHJAoznj9nag= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= @@ -502,6 +507,7 @@ github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lN github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/moul/http2curl v0.0.0-20170919181001-9ac6cf4d929b/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= @@ -554,7 +560,9 @@ github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mo github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= +github.com/ory/fosite v0.30.2 h1:1HQZPXQ+PdeIe27H9Fjfvxem5uxVc/diIwUDk5XTEM4= github.com/ory/fosite v0.30.2/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKGbN8= +github.com/ory/go-convenience v0.1.0 h1:zouLKfF2GoSGnJwGq+PE/nJAE6dj2Zj5QlTgmMTsTS8= github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= github.com/owncloud/ocis-pkg v1.2.1-0.20191217084055-eab942498596 h1:3aMNmuDCIdKsaa4YdVTQEBJMjGz8KiuIB/+xlJUCT3k= @@ -565,6 +573,7 @@ github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfD github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= @@ -579,11 +588,13 @@ github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/xattr v0.4.1 h1:dhclzL6EqOXNaPDWqoeb9tIxATfBSmjqL0b4DpSjwRw= github.com/pkg/xattr v0.4.1/go.mod h1:W2cGD0TBEus7MkUgv0tNZ9JutLtVO3cXu+IBRuHqnFs= github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 h1:J9b7z+QKAmPf4YLrFg6oQUotqHQeUNWwkvo7jZp1GLU= github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -625,6 +636,7 @@ github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqn github.com/restic/calens v0.1.0/go.mod h1:u67f5msOjCTDYNzOf/NoAUSdmXP03YXPCwIQLYADy5M= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.17.2 h1:RMRHFw2+wF7LO0QqtELQwo8hqSmqISyCJeFeAAuWcRo= @@ -827,6 +839,7 @@ golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAG golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -961,6 +974,7 @@ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 gopkg.in/DataDog/dd-trace-go.v1 v1.19.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= +gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/bsm/ratelimit.v1 v1.0.0-20160220154919-db14e161995a/go.mod h1:KF9sEfUPAXdG8Oev9e99iLGnl2uJMjc5B+4y3O7x610= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -988,6 +1002,7 @@ gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eR gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= gopkg.in/jcmturner/gokrb5.v7 v7.2.3/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= +gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU= gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= gopkg.in/ldap.v3 v3.1.0/go.mod h1:dQjCc0R0kfyFjIlWNMH1DORwUASZyDxo2Ry1B51dXaQ= gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw= @@ -997,6 +1012,7 @@ gopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.1.9/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= diff --git a/pkg/assets/assets.go b/pkg/assets/assets.go deleted file mode 100644 index be5f6c270e..0000000000 --- a/pkg/assets/assets.go +++ /dev/null @@ -1,60 +0,0 @@ -package assets - -import ( - "net/http" - "os" - "path" - - "github.com/owncloud/ocis-reva/pkg/config" - "github.com/owncloud/ocis-pkg/log" -) - -//go:generate go run github.com/UnnoTed/fileb0x embed.yml - -// assets gets initialized by New and provides the handler. -type assets struct { - logger log.Logger - config *config.Config -} - -// Open just implements the HTTP filesystem interface. -func (a assets) Open(original string) (http.File, error) { - if a.config.Asset.Path != "" { - if stat, err := os.Stat(a.config.Asset.Path); err == nil && stat.IsDir() { - custom := path.Join( - a.config.Asset.Path, - original, - ) - - if _, err := os.Stat(custom); !os.IsNotExist(err) { - f, err := os.Open(custom) - - if err != nil { - return nil, err - } - - return f, nil - } - } else { - a.logger.Warn(). - Str("path", a.config.Asset.Path). - Msg("Assets directory doesn't exist") - } - } - - return FS.OpenFile( - CTX, - original, - os.O_RDONLY, - 0644, - ) -} - -// New returns a new http filesystem to serve assets. -func New(opts ...Option) http.FileSystem { - options := newOptions(opts...) - - return assets{ - config: options.Config, - } -} diff --git a/pkg/assets/dummy.go b/pkg/assets/dummy.go deleted file mode 100644 index 9f1db4bfbd..0000000000 --- a/pkg/assets/dummy.go +++ /dev/null @@ -1,9 +0,0 @@ -package assets - -import ( - // Fake the import to make the dep tree happy. - _ "golang.org/x/net/context" - - // Fake the import to make the dep tree happy. - _ "golang.org/x/net/webdav" -) diff --git a/pkg/assets/embed.go b/pkg/assets/embed.go deleted file mode 100644 index 0d2c4f7b6c..0000000000 --- a/pkg/assets/embed.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by fileb0x at "2019-12-17 13:05:06.070460692 +0100 CET m=+0.000833910" from config file "embed.yml" DO NOT EDIT. -// modification hash(d41d8cd98f00b204e9800998ecf8427e.8058aec596c5fb73022d09bb97af796e) - -package assets - -import ( - "bytes" - "compress/gzip" - "context" - "io" - "net/http" - "os" - "path" - - "golang.org/x/net/webdav" -) - -var ( - // CTX is a context for webdav vfs - CTX = context.Background() - - // FS is a virtual memory file system - FS = webdav.NewMemFS() - - // Handler is used to server files through a http handler - Handler *webdav.Handler - - // HTTP is the http file system - HTTP http.FileSystem = new(HTTPFS) -) - -// HTTPFS implements http.FileSystem -type HTTPFS struct { - // Prefix allows to limit the path of all requests. F.e. a prefix "css" would allow only calls to /css/* - Prefix string -} - -func init() { - err := CTX.Err() - if err != nil { - panic(err) - } - - var f webdav.File - - var rb *bytes.Reader - var r *gzip.Reader - - Handler = &webdav.Handler{ - FileSystem: FS, - LockSystem: webdav.NewMemLS(), - } - -} - -// Open a file -func (hfs *HTTPFS) Open(path string) (http.File, error) { - path = hfs.Prefix + path - - f, err := FS.OpenFile(CTX, path, os.O_RDONLY, 0644) - if err != nil { - return nil, err - } - - return f, nil -} - -// ReadFile is adapTed from ioutil -func ReadFile(path string) ([]byte, error) { - f, err := FS.OpenFile(CTX, path, os.O_RDONLY, 0644) - if err != nil { - return nil, err - } - - buf := bytes.NewBuffer(make([]byte, 0, bytes.MinRead)) - - // If the buffer overflows, we will get bytes.ErrTooLarge. - // Return that as an error. Any other panic remains. - defer func() { - e := recover() - if e == nil { - return - } - if panicErr, ok := e.(error); ok && panicErr == bytes.ErrTooLarge { - err = panicErr - } else { - panic(e) - } - }() - _, err = buf.ReadFrom(f) - return buf.Bytes(), err -} - -// WriteFile is adapTed from ioutil -func WriteFile(filename string, data []byte, perm os.FileMode) error { - f, err := FS.OpenFile(CTX, filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm) - if err != nil { - return err - } - n, err := f.Write(data) - if err == nil && n < len(data) { - err = io.ErrShortWrite - } - if err1 := f.Close(); err == nil { - err = err1 - } - return err -} - -// WalkDirs looks for files in the given dir and returns a list of files in it -// usage for all files in the b0x: WalkDirs("", false) -func WalkDirs(name string, includeDirsInList bool, files ...string) ([]string, error) { - f, err := FS.OpenFile(CTX, name, os.O_RDONLY, 0) - if err != nil { - return nil, err - } - - fileInfos, err := f.Readdir(0) - if err != nil { - return nil, err - } - - err = f.Close() - if err != nil { - return nil, err - } - - for _, info := range fileInfos { - filename := path.Join(name, info.Name()) - - if includeDirsInList || !info.IsDir() { - files = append(files, filename) - } - - if info.IsDir() { - files, err = WalkDirs(filename, includeDirsInList, files...) - if err != nil { - return nil, err - } - } - } - - return files, nil -} diff --git a/pkg/assets/embed.yml b/pkg/assets/embed.yml deleted file mode 100644 index 6dcfc266a9..0000000000 --- a/pkg/assets/embed.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -pkg: "assets" -dest: "." -output: "embed.go" -fmt: true -noprefix: true - -compression: - compress: true - -custom: - - files: - - "../../assets/" - base: "../../assets/" - prefix: "" - -... diff --git a/pkg/assets/option.go b/pkg/assets/option.go deleted file mode 100644 index a7af5ca21d..0000000000 --- a/pkg/assets/option.go +++ /dev/null @@ -1,40 +0,0 @@ -package assets - -import ( - "github.com/owncloud/ocis-reva/pkg/config" - "github.com/owncloud/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 - 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 - } -} - -// Config provides a function to set the config option. -func Config(val *config.Config) Option { - return func(o *Options) { - o.Config = val - } -} From 11816f75ab002bdc0d736d20d97e997c1348d732 Mon Sep 17 00:00:00 2001 From: David Christofas Date: Tue, 28 Jan 2020 14:41:18 +0100 Subject: [PATCH 013/346] updgrade the micro/cli dependency --- go.mod | 4 +- go.sum | 7 +++ pkg/command/authbasic.go | 11 +++-- pkg/command/authbearer.go | 11 +++-- pkg/command/frontend.go | 11 +++-- pkg/command/gateway.go | 11 +++-- pkg/command/health.go | 6 +-- pkg/command/root.go | 6 +-- pkg/command/sharing.go | 11 +++-- pkg/command/storagehome.go | 11 +++-- pkg/command/storagehomedata.go | 11 +++-- pkg/command/storageoc.go | 11 +++-- pkg/command/storageocdata.go | 11 +++-- pkg/command/storageroot.go | 11 +++-- pkg/command/users.go | 11 +++-- pkg/config/config.go | 4 +- pkg/flagset/authbasic.go | 67 +++++++++++++-------------- pkg/flagset/authbearer.go | 47 +++++++++---------- pkg/flagset/frontend.go | 51 ++++++++++---------- pkg/flagset/gateway.go | 79 ++++++++++++++++--------------- pkg/flagset/health.go | 4 +- pkg/flagset/root.go | 14 +++--- pkg/flagset/sharing.go | 41 ++++++++-------- pkg/flagset/storagehome.go | 85 +++++++++++++++++----------------- pkg/flagset/storagehomedata.go | 79 ++++++++++++++++--------------- pkg/flagset/storageoc.go | 85 +++++++++++++++++----------------- pkg/flagset/storageocdata.go | 79 ++++++++++++++++--------------- pkg/flagset/storageroot.go | 83 ++++++++++++++++----------------- pkg/flagset/users.go | 65 +++++++++++++------------- 29 files changed, 488 insertions(+), 439 deletions(-) diff --git a/go.mod b/go.mod index 74500be87f..b05de8a700 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/go-log/log v0.2.0 // indirect github.com/gofrs/uuid v3.2.0+incompatible github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 // indirect - github.com/micro/cli v0.2.0 + github.com/micro/cli/v2 v2.1.1 github.com/micro/go-micro v1.18.0 // indirect github.com/oklog/run v1.0.0 github.com/owncloud/ocis-pkg v1.2.1-0.20191217084055-eab942498596 @@ -21,7 +21,7 @@ require ( github.com/spf13/viper v1.6.1 github.com/uber/jaeger-client-go v2.20.1+incompatible // indirect golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 // indirect - golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 + golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 // indirect golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7 // indirect google.golang.org/api v0.14.0 // indirect google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb // indirect diff --git a/go.sum b/go.sum index 75f3864ede..ba252d3a77 100644 --- a/go.sum +++ b/go.sum @@ -162,6 +162,7 @@ github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMElOWxok= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83 h1:9bcp1jc6+36XUfuOae/w0BVrbzeVKBp/OqhTfCal40U= @@ -467,6 +468,8 @@ github.com/mholt/certmagic v0.7.5/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaR github.com/mholt/certmagic v0.8.3/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= github.com/micro/cli v0.2.0 h1:ut3rV5JWqZjsXIa2MvGF+qMUP8DAUTvHX9Br5gO4afA= github.com/micro/cli v0.2.0/go.mod h1:jRT9gmfVKWSS6pkKcXQ8YhUyj6bzwxK8Fp5b0Y7qNnk= +github.com/micro/cli/v2 v2.1.1 h1:uFw0SMIKmGuyHIm8lXns/NOn7V62bM5y7DnlxUM+BEQ= +github.com/micro/cli/v2 v2.1.1/go.mod h1:EguNh6DAoWKm9nmk+k/Rg0H3lQnDxqzu5x5srOtGtYg= github.com/micro/go-micro v1.16.0/go.mod h1:A0F58bHLh2m0LAI9QyhvmbN8c1cxhAZo3cM6s+iDsrM= github.com/micro/go-micro v1.17.1/go.mod h1:klwUJL1gkdY1MHFyz+fFJXn52dKcty4hoe95Mp571AA= github.com/micro/go-micro v1.18.0 h1:gP70EZVHpJuUIT0YWth192JmlIci+qMOEByHm83XE9E= @@ -538,6 +541,7 @@ github.com/nsqio/go-nsq v1.0.7/go.mod h1:XP5zaUs3pqf+Q71EqUJs3HYfBIqfK6G83WQMdNN github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/oleiade/reflections v1.0.0 h1:0ir4pc6v8/PJ0yw5AEtMddfXpWBXg9cnG7SgSoJuCgY= github.com/oleiade/reflections v1.0.0/go.mod h1:RbATFBbKYkVdqmSFtx13Bb/tVhR0lgOBXunWTZKeL4w= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -641,6 +645,7 @@ github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.17.2 h1:RMRHFw2+wF7LO0QqtELQwo8hqSmqISyCJeFeAAuWcRo= github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= +github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= @@ -652,6 +657,7 @@ github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdh github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= @@ -941,6 +947,7 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= diff --git a/pkg/command/authbasic.go b/pkg/command/authbasic.go index 16a5fb9171..f68478db49 100644 --- a/pkg/command/authbasic.go +++ b/pkg/command/authbasic.go @@ -9,7 +9,7 @@ import ( "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/oklog/run" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -17,11 +17,16 @@ import ( ) // AuthBasic is the entrypoint for the auth-basic command. -func AuthBasic(cfg *config.Config) cli.Command { - return cli.Command{ +func AuthBasic(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "auth-basic", Usage: "Start reva authprovider for basic auth", Flags: flagset.AuthBasicWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.AuthBasic.Services = c.StringSlice("service") + + return nil + }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) diff --git a/pkg/command/authbearer.go b/pkg/command/authbearer.go index b1ee497ca8..299afb4c36 100644 --- a/pkg/command/authbearer.go +++ b/pkg/command/authbearer.go @@ -9,7 +9,7 @@ import ( "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/oklog/run" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -17,11 +17,16 @@ import ( ) // AuthBearer is the entrypoint for the auth-bearer command. -func AuthBearer(cfg *config.Config) cli.Command { - return cli.Command{ +func AuthBearer(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "auth-bearer", Usage: "Start reva authprovider for bearer auth", Flags: flagset.AuthBearerWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.AuthBearer.Services = c.StringSlice("service") + + return nil + }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index bf2cf1d5a8..fd73589073 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -10,7 +10,7 @@ import ( "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/oklog/run" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -18,11 +18,16 @@ import ( ) // Frontend is the entrypoint for the frontend command. -func Frontend(cfg *config.Config) cli.Command { - return cli.Command{ +func Frontend(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "frontend", Usage: "Start reva frontend service", Flags: flagset.FrontendWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.Frontend.Services = c.StringSlice("service") + + return nil + }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index f3fe4a9b89..9019597dd3 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -9,7 +9,7 @@ import ( "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/oklog/run" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -17,11 +17,16 @@ import ( ) // Gateway is the entrypoint for the gateway command. -func Gateway(cfg *config.Config) cli.Command { - return cli.Command{ +func Gateway(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "gateway", Usage: "Start reva gateway", Flags: flagset.GatewayWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.Gateway.Services = c.StringSlice("service") + + return nil + }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) diff --git a/pkg/command/health.go b/pkg/command/health.go index 546d1084f2..36fe9f486d 100644 --- a/pkg/command/health.go +++ b/pkg/command/health.go @@ -4,14 +4,14 @@ import ( "fmt" "net/http" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" ) // Health is the entrypoint for the health command. -func Health(cfg *config.Config) cli.Command { - return cli.Command{ +func Health(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "health", Usage: "Check health status", Flags: flagset.HealthWithConfig(cfg), diff --git a/pkg/command/root.go b/pkg/command/root.go index c787b5fcc1..dc4ed30694 100644 --- a/pkg/command/root.go +++ b/pkg/command/root.go @@ -4,7 +4,7 @@ import ( "os" "strings" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-pkg/log" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -22,7 +22,7 @@ func Execute() error { Usage: "Example service for Reva/oCIS", Compiled: version.Compiled(), - Authors: []cli.Author{ + Authors: []*cli.Author{ { Name: "ownCloud GmbH", Email: "support@owncloud.com", @@ -73,7 +73,7 @@ func Execute() error { return nil }, - Commands: []cli.Command{ + Commands: []*cli.Command{ Frontend(cfg), Gateway(cfg), Users(cfg), diff --git a/pkg/command/sharing.go b/pkg/command/sharing.go index 4da067f859..123f830d91 100644 --- a/pkg/command/sharing.go +++ b/pkg/command/sharing.go @@ -9,7 +9,7 @@ import ( "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/oklog/run" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -17,11 +17,16 @@ import ( ) // Sharing is the entrypoint for the sharing command. -func Sharing(cfg *config.Config) cli.Command { - return cli.Command{ +func Sharing(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "sharing", Usage: "Start reva sharing service", Flags: flagset.SharingWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.Sharing.Services = c.StringSlice("service") + + return nil + }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 6165603982..1310425d3b 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -9,7 +9,7 @@ import ( "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/oklog/run" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -17,11 +17,16 @@ import ( ) // StorageHome is the entrypoint for the storage-home command. -func StorageHome(cfg *config.Config) cli.Command { - return cli.Command{ +func StorageHome(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "storage-home", Usage: "Start reva storage-home service", Flags: flagset.StorageHomeWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.StorageHome.Services = c.StringSlice("service") + + return nil + }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index c3eba563e7..d4a83a9b35 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -9,7 +9,7 @@ import ( "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/oklog/run" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -17,11 +17,16 @@ import ( ) // StorageHomeData is the entrypoint for the storage-home-data command. -func StorageHomeData(cfg *config.Config) cli.Command { - return cli.Command{ +func StorageHomeData(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "storage-home-data", Usage: "Start reva storage-home-data service", Flags: flagset.StorageHomeDataWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.StorageHomeData.Services = c.StringSlice("service") + + return nil + }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index 06dda84d2e..acc74c68cd 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -9,7 +9,7 @@ import ( "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/oklog/run" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -17,11 +17,16 @@ import ( ) // StorageOC is the entrypoint for the storage-oc command. -func StorageOC(cfg *config.Config) cli.Command { - return cli.Command{ +func StorageOC(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "storage-oc", Usage: "Start reva storage-oc service", Flags: flagset.StorageOCWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.StorageOC.Services = c.StringSlice("service") + + return nil + }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 1af607dbc7..45fbc719ba 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -9,7 +9,7 @@ import ( "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/oklog/run" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -17,11 +17,16 @@ import ( ) // StorageOCData is the entrypoint for the storage-oc-data command. -func StorageOCData(cfg *config.Config) cli.Command { - return cli.Command{ +func StorageOCData(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "storage-oc-data", Usage: "Start reva storage-oc-data service", Flags: flagset.StorageOCDataWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.StorageOCData.Services = c.StringSlice("service") + + return nil + }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index 005304219a..12d99dbcc8 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -9,7 +9,7 @@ import ( "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/oklog/run" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -17,11 +17,16 @@ import ( ) // StorageRoot is the entrypoint for the storage-root command. -func StorageRoot(cfg *config.Config) cli.Command { - return cli.Command{ +func StorageRoot(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "storage-root", Usage: "Start reva storage-root service", Flags: flagset.StorageRootWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.StorageRoot.Services = c.StringSlice("service") + + return nil + }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) diff --git a/pkg/command/users.go b/pkg/command/users.go index 4845032f98..18682258f0 100644 --- a/pkg/command/users.go +++ b/pkg/command/users.go @@ -9,7 +9,7 @@ import ( "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/oklog/run" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" @@ -17,11 +17,16 @@ import ( ) // Users is the entrypoint for the sharing command. -func Users(cfg *config.Config) cli.Command { - return cli.Command{ +func Users(cfg *config.Config) *cli.Command { + return &cli.Command{ Name: "users", Usage: "Start reva users service", Flags: flagset.UsersWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.Users.Services = c.StringSlice("service") + + return nil + }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) diff --git a/pkg/config/config.go b/pkg/config/config.go index d40532e11f..50c91f7cdf 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -35,9 +35,7 @@ type Port struct { // DebugAddr for the debug endpoint to bind to DebugAddr string // Services can be used to give a list of services that should be started on this port - Services string - // used to store the parsed services - servicesList []string + Services []string // Config can be used to configure the reva instance. // Services and Protocol will be ignored if this is used Config map[string]interface{} diff --git a/pkg/flagset/authbasic.go b/pkg/flagset/authbasic.go index 13402d78f3..8d43865617 100644 --- a/pkg/flagset/authbasic.go +++ b/pkg/flagset/authbasic.go @@ -1,7 +1,7 @@ package flagset import ( - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -12,35 +12,35 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", + EnvVars: []string{"REVA_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: "jaeger", Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", + EnvVars: []string{"REVA_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ Name: "tracing-service", Value: "reva", Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", + EnvVars: []string{"REVA_TRACING_SERVICE"}, Destination: &cfg.Tracing.Service, }, @@ -49,26 +49,26 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9147", Usage: "Address to bind debug server", - EnvVar: "REVA_AUTH_BASIC_DEBUG_ADDR", + EnvVars: []string{"REVA_AUTH_BASIC_DEBUG_ADDR"}, Destination: &cfg.Reva.AuthBasic.DebugAddr, }, &cli.StringFlag{ Name: "debug-token", Value: "", Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, Destination: &cfg.Debug.Token, }, &cli.BoolFlag{ Name: "debug-pprof", Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", + EnvVars: []string{"REVA_DEBUG_PPROF"}, Destination: &cfg.Debug.Pprof, }, &cli.BoolFlag{ Name: "debug-zpages", Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, Destination: &cfg.Debug.Zpages, }, @@ -78,7 +78,7 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { Name: "jwt-secret", Value: "Pive-Fumkiu4", Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", + EnvVars: []string{"REVA_JWT_SECRET"}, Destination: &cfg.Reva.JWTSecret, }, @@ -88,14 +88,14 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { Name: "users-driver", Value: "demo", Usage: "user driver: 'demo', 'json' or 'ldap'", - EnvVar: "REVA_USERS_DRIVER", + EnvVars: []string{"REVA_USERS_DRIVER"}, Destination: &cfg.Reva.Users.Driver, }, &cli.StringFlag{ Name: "users-json", Value: "", Usage: "Path to users.json file", - EnvVar: "REVA_USERS_JSON", + EnvVars: []string{"REVA_USERS_JSON"}, Destination: &cfg.Reva.Users.JSON, }, @@ -105,49 +105,49 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { Name: "ldap-hostname", Value: "localhost", Usage: "LDAP hostname", - EnvVar: "REVA_LDAP_HOSTNAME", + EnvVars: []string{"REVA_LDAP_HOSTNAME"}, Destination: &cfg.Reva.LDAP.Hostname, }, &cli.IntFlag{ Name: "ldap-port", Value: 636, Usage: "LDAP port", - EnvVar: "REVA_LDAP_PORT", + EnvVars: []string{"REVA_LDAP_PORT"}, Destination: &cfg.Reva.LDAP.Port, }, &cli.StringFlag{ Name: "ldap-base-dn", Value: "dc=owncloud,dc=com", Usage: "LDAP basedn", - EnvVar: "REVA_LDAP_BASE_DN", + EnvVars: []string{"REVA_LDAP_BASE_DN"}, Destination: &cfg.Reva.LDAP.BaseDN, }, &cli.StringFlag{ Name: "ldap-userfilter", Value: "(&(objectclass=posixAccount)(cn=%s))", Usage: "LDAP userfilter", - EnvVar: "REVA_LDAP_USERFILTER", + EnvVars: []string{"REVA_LDAP_USERFILTER"}, Destination: &cfg.Reva.LDAP.UserFilter, }, &cli.StringFlag{ Name: "ldap-groupfilter", Value: "(&(objectclass=posixGroup)(cn=%s))", Usage: "LDAP groupfilter", - EnvVar: "REVA_LDAP_GROUPFILTER", + EnvVars: []string{"REVA_LDAP_GROUPFILTER"}, Destination: &cfg.Reva.LDAP.GroupFilter, }, &cli.StringFlag{ Name: "ldap-bind-dn", Value: "cn=admin,dc=owncloud,dc=com", Usage: "LDAP bind dn", - EnvVar: "REVA_LDAP_BIND_DN", + EnvVars: []string{"REVA_LDAP_BIND_DN"}, Destination: &cfg.Reva.LDAP.BindDN, }, &cli.StringFlag{ Name: "ldap-bind-password", Value: "admin", Usage: "LDAP bind password", - EnvVar: "REVA_LDAP_BIND_PASSWORD", + EnvVars: []string{"REVA_LDAP_BIND_PASSWORD"}, Destination: &cfg.Reva.LDAP.BindPassword, }, // ldap dn is always the dn @@ -155,28 +155,28 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { Name: "ldap-schema-uid", Value: "uid", Usage: "LDAP schema uid", - EnvVar: "REVA_LDAP_SCHEMA_UID", + EnvVars: []string{"REVA_LDAP_SCHEMA_UID"}, Destination: &cfg.Reva.LDAP.Schema.UID, }, &cli.StringFlag{ Name: "ldap-schema-mail", Value: "mail", Usage: "LDAP schema mail", - EnvVar: "REVA_LDAP_SCHEMA_Mail", + EnvVars: []string{"REVA_LDAP_SCHEMA_Mail"}, Destination: &cfg.Reva.LDAP.Schema.Mail, }, &cli.StringFlag{ Name: "ldap-schema-displayName", Value: "displayName", Usage: "LDAP schema displayName", - EnvVar: "REVA_LDAP_SCHEMA_DISPLAYNAME", + EnvVars: []string{"REVA_LDAP_SCHEMA_DISPLAYNAME"}, Destination: &cfg.Reva.LDAP.Schema.DisplayName, }, &cli.StringFlag{ Name: "ldap-schema-cn", Value: "cn", Usage: "LDAP schema cn", - EnvVar: "REVA_LDAP_SCHEMA_CN", + EnvVars: []string{"REVA_LDAP_SCHEMA_CN"}, Destination: &cfg.Reva.LDAP.Schema.CN, }, @@ -188,36 +188,35 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { Name: "network", Value: "tcp", Usage: "Network to use for the reva auth-basic service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_AUTH_BASIC_NETWORK", + EnvVars: []string{"REVA_AUTH_BASIC_NETWORK"}, Destination: &cfg.Reva.AuthBasic.Network, }, &cli.StringFlag{ Name: "protocol", Value: "grpc", Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVar: "REVA_AUTH_BASIC_PROTOCOL", + EnvVars: []string{"REVA_AUTH_BASIC_PROTOCOL"}, Destination: &cfg.Reva.AuthBasic.Protocol, }, &cli.StringFlag{ Name: "addr", Value: "0.0.0.0:9146", Usage: "Address to bind reva service", - EnvVar: "REVA_AUTH_BASIC_ADDR", + EnvVars: []string{"REVA_AUTH_BASIC_ADDR"}, Destination: &cfg.Reva.AuthBasic.Addr, }, &cli.StringFlag{ Name: "url", Value: "localhost:9146", Usage: "URL to use for the reva service", - EnvVar: "REVA_AUTH_BASIC_URL", + EnvVars: []string{"REVA_AUTH_BASIC_URL"}, Destination: &cfg.Reva.AuthBasic.URL, }, - &cli.StringFlag{ - Name: "services", - Value: "authprovider", - Usage: "comma separated list of services to include", - EnvVar: "REVA_AUTH_BASIC_SERVICES", - Destination: &cfg.Reva.AuthBasic.Services, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("authprovider"), + Usage: "--service authprovider [--service otherservice]", + EnvVars: []string{"REVA_AUTH_BASIC_SERVICES"}, }, } } diff --git a/pkg/flagset/authbearer.go b/pkg/flagset/authbearer.go index cb80938a90..6da4204876 100644 --- a/pkg/flagset/authbearer.go +++ b/pkg/flagset/authbearer.go @@ -1,7 +1,7 @@ package flagset import ( - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -12,35 +12,35 @@ func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", + EnvVars: []string{"REVA_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: "jaeger", Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", + EnvVars: []string{"REVA_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ Name: "tracing-service", Value: "reva", Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", + EnvVars: []string{"REVA_TRACING_SERVICE"}, Destination: &cfg.Tracing.Service, }, @@ -49,26 +49,26 @@ func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9149", Usage: "Address to bind debug server", - EnvVar: "REVA_AUTH_BEARER_DEBUG_ADDR", + EnvVars: []string{"REVA_AUTH_BEARER_DEBUG_ADDR"}, Destination: &cfg.Reva.AuthBearer.DebugAddr, }, &cli.StringFlag{ Name: "debug-token", Value: "", Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, Destination: &cfg.Debug.Token, }, &cli.BoolFlag{ Name: "debug-pprof", Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", + EnvVars: []string{"REVA_DEBUG_PPROF"}, Destination: &cfg.Debug.Pprof, }, &cli.BoolFlag{ Name: "debug-zpages", Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, Destination: &cfg.Debug.Zpages, }, @@ -78,7 +78,7 @@ func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { Name: "jwt-secret", Value: "Pive-Fumkiu4", Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", + EnvVars: []string{"REVA_JWT_SECRET"}, Destination: &cfg.Reva.JWTSecret, }, @@ -88,20 +88,20 @@ func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { Name: "oidc-issuer", Value: "http://localhost:9140", Usage: "OIDC issuer", - EnvVar: "REVA_OIDC_ISSUER", + EnvVars: []string{"REVA_OIDC_ISSUER"}, Destination: &cfg.Reva.OIDC.Issuer, }, &cli.BoolFlag{ Name: "oidc-insecure", Usage: "OIDC allow insecure communication", - EnvVar: "REVA_OIDC_INSECURE", + EnvVars: []string{"REVA_OIDC_INSECURE"}, Destination: &cfg.Reva.OIDC.Insecure, }, &cli.StringFlag{ Name: "oidc-id-claim", Value: "sub", // sub is stable and defined as unique. the user manager needs to take care of the sub to user metadata lookup Usage: "OIDC id claim", - EnvVar: "REVA_OIDC_ID_CLAIM", + EnvVars: []string{"REVA_OIDC_ID_CLAIM"}, Destination: &cfg.Reva.OIDC.IDClaim, }, @@ -113,36 +113,35 @@ func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { Name: "network", Value: "tcp", Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_AUTH_BEARER_NETWORK", + EnvVars: []string{"REVA_AUTH_BEARER_NETWORK"}, Destination: &cfg.Reva.AuthBearer.Network, }, &cli.StringFlag{ Name: "protocol", Value: "grpc", Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVar: "REVA_AUTH_BEARER_PROTOCOL", + EnvVars: []string{"REVA_AUTH_BEARER_PROTOCOL"}, Destination: &cfg.Reva.AuthBearer.Protocol, }, &cli.StringFlag{ Name: "addr", Value: "0.0.0.0:9148", Usage: "Address to bind reva service", - EnvVar: "REVA_AUTH_BEARER_ADDR", + EnvVars: []string{"REVA_AUTH_BEARER_ADDR"}, Destination: &cfg.Reva.AuthBearer.Addr, }, &cli.StringFlag{ Name: "url", Value: "localhost:9148", Usage: "URL to use for the reva service", - EnvVar: "REVA_AUTH_BEARER_URL", + EnvVars: []string{"REVA_AUTH_BEARER_URL"}, Destination: &cfg.Reva.AuthBearer.URL, }, - &cli.StringFlag{ - Name: "services", - Value: "authprovider", // TODO preferences - Usage: "comma separated list of services to include", - EnvVar: "REVA_AUTH_BEARER_SERVICES", - Destination: &cfg.Reva.AuthBearer.Services, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("authprovider"), // TODO preferences + Usage: "--service authprovider [--service otherservice]", + EnvVars: []string{"REVA_AUTH_BEARER_SERVICES"}, }, } } diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index 45d119a57d..c85208622f 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -1,7 +1,7 @@ package flagset import ( - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -12,35 +12,35 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", + EnvVars: []string{"REVA_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: "jaeger", Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", + EnvVars: []string{"REVA_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ Name: "tracing-service", Value: "reva", Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", + EnvVars: []string{"REVA_TRACING_SERVICE"}, Destination: &cfg.Tracing.Service, }, @@ -49,26 +49,26 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9141", Usage: "Address to bind debug server", - EnvVar: "REVA_FRONTEND_DEBUG_ADDR", + EnvVars: []string{"REVA_FRONTEND_DEBUG_ADDR"}, Destination: &cfg.Reva.Frontend.DebugAddr, }, &cli.StringFlag{ Name: "debug-token", Value: "", Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, Destination: &cfg.Debug.Token, }, &cli.BoolFlag{ Name: "debug-pprof", Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", + EnvVars: []string{"REVA_DEBUG_PPROF"}, Destination: &cfg.Debug.Pprof, }, &cli.BoolFlag{ Name: "debug-zpages", Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, Destination: &cfg.Debug.Zpages, }, @@ -78,14 +78,14 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { Name: "jwt-secret", Value: "Pive-Fumkiu4", Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", + EnvVars: []string{"REVA_JWT_SECRET"}, Destination: &cfg.Reva.JWTSecret, }, &cli.StringFlag{ Name: "transfer-secret", Value: "replace-me-with-a-transfer-secret", Usage: "Transfer secret for datagateway", - EnvVar: "REVA_TRANSFER_SECRET", + EnvVars: []string{"REVA_TRANSFER_SECRET"}, Destination: &cfg.Reva.TransferSecret, }, @@ -95,20 +95,20 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { Name: "oidc-issuer", Value: "http://localhost:9140", Usage: "OIDC issuer", - EnvVar: "REVA_OIDC_ISSUER", + EnvVars: []string{"REVA_OIDC_ISSUER"}, Destination: &cfg.Reva.OIDC.Issuer, }, &cli.BoolFlag{ Name: "oidc-insecure", Usage: "OIDC allow insecure communication", - EnvVar: "REVA_OIDC_INSECURE", + EnvVars: []string{"REVA_OIDC_INSECURE"}, Destination: &cfg.Reva.OIDC.Insecure, }, &cli.StringFlag{ Name: "oidc-id-claim", Value: "sub", // sub is stable and defined as unique. the user manager needs to take care of the sub to user metadata lookup Usage: "OIDC id claim", - EnvVar: "REVA_OIDC_ID_CLAIM", + EnvVars: []string{"REVA_OIDC_ID_CLAIM"}, Destination: &cfg.Reva.OIDC.IDClaim, }, @@ -122,36 +122,35 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { Name: "network", Value: "tcp", Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_FRONTEND_NETWORK", + EnvVars: []string{"REVA_FRONTEND_NETWORK"}, Destination: &cfg.Reva.Frontend.Network, }, &cli.StringFlag{ Name: "protocol", Value: "http", Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVar: "REVA_FRONTEND_PROTOCOL", + EnvVars: []string{"REVA_FRONTEND_PROTOCOL"}, Destination: &cfg.Reva.Frontend.Protocol, }, &cli.StringFlag{ Name: "addr", Value: "0.0.0.0:9140", Usage: "Address to bind reva service", - EnvVar: "REVA_FRONTEND_ADDR", + EnvVars: []string{"REVA_FRONTEND_ADDR"}, Destination: &cfg.Reva.Frontend.Addr, }, &cli.StringFlag{ Name: "url", Value: "localhost:9140", Usage: "URL to use for the reva service", - EnvVar: "REVA_FRONTEND_URL", + EnvVars: []string{"REVA_FRONTEND_URL"}, Destination: &cfg.Reva.Frontend.URL, }, - &cli.StringFlag{ - Name: "services", - Value: "datagateway,wellknown,oidcprovider,ocdav,ocs", - Usage: "comma separated list of services to include", - EnvVar: "REVA_FRONTEND_SERVICES", - Destination: &cfg.Reva.Frontend.Services, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("datagateway", "wellknown", "oidcprovider", "ocdav", "ocs"), + Usage: "--service datagateway [--service wellknown]", + EnvVars: []string{"REVA_FRONTEND_SERVICES"}, }, // Gateway @@ -160,7 +159,7 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { Name: "gateway-url", Value: "localhost:9142", Usage: "URL to use for the reva gateway service", - EnvVar: "REVA_GATEWAY_URL", + EnvVars: []string{"REVA_GATEWAY_URL"}, Destination: &cfg.Reva.Gateway.URL, }, } diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index b855546246..38bc3e036d 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -1,7 +1,7 @@ package flagset import ( - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -12,35 +12,35 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", + EnvVars: []string{"REVA_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: "jaeger", Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", + EnvVars: []string{"REVA_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ Name: "tracing-service", Value: "reva", Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", + EnvVars: []string{"REVA_TRACING_SERVICE"}, Destination: &cfg.Tracing.Service, }, @@ -49,26 +49,26 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9143", Usage: "Address to bind debug server", - EnvVar: "REVA_GATEWAY_DEBUG_ADDR", + EnvVars: []string{"REVA_GATEWAY_DEBUG_ADDR"}, Destination: &cfg.Reva.Gateway.DebugAddr, }, &cli.StringFlag{ Name: "debug-token", Value: "", Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, Destination: &cfg.Debug.Token, }, &cli.BoolFlag{ Name: "debug-pprof", Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", + EnvVars: []string{"REVA_DEBUG_PPROF"}, Destination: &cfg.Debug.Pprof, }, &cli.BoolFlag{ Name: "debug-zpages", Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, Destination: &cfg.Debug.Zpages, }, @@ -78,21 +78,21 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Name: "jwt-secret", Value: "Pive-Fumkiu4", Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", + EnvVars: []string{"REVA_JWT_SECRET"}, Destination: &cfg.Reva.JWTSecret, }, &cli.StringFlag{ Name: "transfer-secret", Value: "replace-me-with-a-transfer-secret", Usage: "Transfer secret for datagateway", - EnvVar: "REVA_TRANSFER_SECRET", + EnvVars: []string{"REVA_TRANSFER_SECRET"}, Destination: &cfg.Reva.TransferSecret, }, &cli.IntFlag{ Name: "transfer-expires", Value: 10, Usage: "Transfer secret for datagateway", - EnvVar: "REVA_TRANSFER_EXPIRES", + EnvVars: []string{"REVA_TRANSFER_EXPIRES"}, Destination: &cfg.Reva.TransferExpires, }, @@ -106,42 +106,41 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Name: "network", Value: "tcp", Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_GATEWAY_NETWORK", + EnvVars: []string{"REVA_GATEWAY_NETWORK"}, Destination: &cfg.Reva.Gateway.Network, }, &cli.StringFlag{ Name: "protocol", Value: "grpc", Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVar: "REVA_GATEWAY_PROTOCOL", + EnvVars: []string{"REVA_GATEWAY_PROTOCOL"}, Destination: &cfg.Reva.Gateway.Protocol, }, &cli.StringFlag{ Name: "addr", Value: "0.0.0.0:9142", Usage: "Address to bind reva service", - EnvVar: "REVA_GATEWAY_ADDR", + EnvVars: []string{"REVA_GATEWAY_ADDR"}, Destination: &cfg.Reva.Gateway.Addr, }, &cli.StringFlag{ Name: "url", Value: "localhost:9142", Usage: "URL to use for the reva service", - EnvVar: "REVA_GATEWAY_URL", + EnvVars: []string{"REVA_GATEWAY_URL"}, Destination: &cfg.Reva.Gateway.URL, }, - &cli.StringFlag{ - Name: "services", - Value: "gateway,authregistry,storageregistry", // TODO appregistry - Usage: "comma separated list of services to include", - EnvVar: "REVA_GATEWAY_SERVICES", - Destination: &cfg.Reva.Gateway.Services, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("gateway", "authregistry", "storageregistry"), // TODO appregistry + Usage: "--service gateway [--service authregistry]", + EnvVars: []string{"REVA_GATEWAY_SERVICES"}, }, // TODO should defaults to true. reverse logic to 'disable-share-commit'? &cli.BoolFlag{ Name: "commit-share-to-storage-grant", Usage: "Commit shares to the share manager as well as as a grant to the storage", - EnvVar: "REVA_GATEWAY_COMMIT_SHARE_TO_STRORAGE_GRANT", + EnvVars: []string{"REVA_GATEWAY_COMMIT_SHARE_TO_STRORAGE_GRANT"}, Destination: &cfg.Reva.Gateway.CommitShareToStorageGrant, }, @@ -153,35 +152,35 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Name: "frontend-url", Value: "localhost:9140", Usage: "URL to use for the reva service", - EnvVar: "REVA_FRONTEND_URL", + EnvVars: []string{"REVA_FRONTEND_URL"}, Destination: &cfg.Reva.Frontend.URL, }, &cli.StringFlag{ Name: "users-url", Value: "localhost:9144", Usage: "URL to use for the reva service", - EnvVar: "REVA_USERS_URL", + EnvVars: []string{"REVA_USERS_URL"}, Destination: &cfg.Reva.Users.URL, }, &cli.StringFlag{ Name: "auth-basic-url", Value: "localhost:9146", Usage: "URL to use for the reva service", - EnvVar: "REVA_AUTH_BASIC_URL", + EnvVars: []string{"REVA_AUTH_BASIC_URL"}, Destination: &cfg.Reva.AuthBasic.URL, }, &cli.StringFlag{ Name: "auth-bearer-url", Value: "localhost:9148", Usage: "URL to use for the reva service", - EnvVar: "REVA_AUTH_BEARER_URL", + EnvVars: []string{"REVA_AUTH_BEARER_URL"}, Destination: &cfg.Reva.AuthBearer.URL, }, &cli.StringFlag{ Name: "sharing-url", Value: "localhost:9150", Usage: "URL to use for the reva service", - EnvVar: "REVA_SHARING_URL", + EnvVars: []string{"REVA_SHARING_URL"}, Destination: &cfg.Reva.Sharing.URL, }, @@ -189,21 +188,21 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-root-url", Value: "localhost:9152", Usage: "URL to use for the reva service", - EnvVar: "REVA_STORAGE_ROOT_URL", + EnvVars: []string{"REVA_STORAGE_ROOT_URL"}, Destination: &cfg.Reva.StorageRoot.URL, }, &cli.StringFlag{ Name: "storage-root-mount-path", Value: "/", Usage: "mount path", - EnvVar: "REVA_STORAGE_ROOT_MOUNT_PATH", + EnvVars: []string{"REVA_STORAGE_ROOT_MOUNT_PATH"}, Destination: &cfg.Reva.StorageRoot.MountPath, }, &cli.StringFlag{ Name: "storage-root-mount-id", Value: "123e4567-e89b-12d3-a456-426655440001", Usage: "mount id", - EnvVar: "REVA_STORAGE_ROOT_MOUNT_ID", + EnvVars: []string{"REVA_STORAGE_ROOT_MOUNT_ID"}, Destination: &cfg.Reva.StorageRoot.MountID, }, @@ -211,21 +210,21 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-home-url", Value: "localhost:9154", Usage: "URL to use for the reva service", - EnvVar: "REVA_STORAGE_HOME_URL", + EnvVars: []string{"REVA_STORAGE_HOME_URL"}, Destination: &cfg.Reva.StorageHome.URL, }, &cli.StringFlag{ Name: "storage-home-mount-path", Value: "/home", Usage: "mount path", - EnvVar: "REVA_STORAGE_HOME_MOUNT_PATH", + EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_PATH"}, Destination: &cfg.Reva.StorageHome.MountPath, }, &cli.StringFlag{ Name: "storage-home-mount-id", Value: "123e4567-e89b-12d3-a456-426655440000", Usage: "mount id", - EnvVar: "REVA_STORAGE_HOME_MOUNT_ID", + EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_ID"}, Destination: &cfg.Reva.StorageHome.MountID, }, @@ -233,7 +232,7 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-home-data-url", Value: "localhost:9156", Usage: "URL to use for the reva service", - EnvVar: "REVA_STORAGE_HOME_DATA_URL", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_URL"}, Destination: &cfg.Reva.StorageHomeData.URL, }, @@ -241,21 +240,21 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-oc-url", Value: "localhost:9162", Usage: "URL to use for the reva service", - EnvVar: "REVA_STORAGE_OC_URL", + EnvVars: []string{"REVA_STORAGE_OC_URL"}, Destination: &cfg.Reva.StorageOC.URL, }, &cli.StringFlag{ Name: "storage-oc-mount-path", Value: "/oc", Usage: "mount path", - EnvVar: "REVA_STORAGE_OC_MOUNT_PATH", + EnvVars: []string{"REVA_STORAGE_OC_MOUNT_PATH"}, Destination: &cfg.Reva.StorageOC.MountPath, }, &cli.StringFlag{ Name: "storage-oc-mount-id", Value: "123e4567-e89b-12d3-a456-426655440000", Usage: "mount id", - EnvVar: "REVA_STORAGE_OC_MOUNT_ID", + EnvVars: []string{"REVA_STORAGE_OC_MOUNT_ID"}, Destination: &cfg.Reva.StorageOC.MountID, }, @@ -263,7 +262,7 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-oc-data-url", Value: "localhost:9164", Usage: "URL to use for the reva service", - EnvVar: "REVA_STORAGE_OC_DATA_URL", + EnvVars: []string{"REVA_STORAGE_OC_DATA_URL"}, Destination: &cfg.Reva.StorageOCData.URL, }, } diff --git a/pkg/flagset/health.go b/pkg/flagset/health.go index 3c536cf8ae..145d9b3e7f 100644 --- a/pkg/flagset/health.go +++ b/pkg/flagset/health.go @@ -1,7 +1,7 @@ package flagset import ( - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -12,7 +12,7 @@ func HealthWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9109", Usage: "Address to debug endpoint", - EnvVar: "REVA_DEBUG_ADDR", + EnvVars: []string{"REVA_DEBUG_ADDR"}, Destination: &cfg.Debug.Addr, }, } diff --git a/pkg/flagset/root.go b/pkg/flagset/root.go index d839a68364..85d6436f98 100644 --- a/pkg/flagset/root.go +++ b/pkg/flagset/root.go @@ -1,7 +1,7 @@ package flagset import ( - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -12,26 +12,26 @@ func RootWithConfig(cfg *config.Config) []cli.Flag { Name: "config-file", Value: "", Usage: "Path to config file", - EnvVar: "REVA_CONFIG_FILE", + EnvVars: []string{"REVA_CONFIG_FILE"}, Destination: &cfg.File, }, &cli.StringFlag{ Name: "log-level", Value: "info", Usage: "Set logging level", - EnvVar: "REVA_LOG_LEVEL", + EnvVars: []string{"REVA_LOG_LEVEL"}, Destination: &cfg.Log.Level, }, - &cli.BoolTFlag{ + &cli.BoolFlag{ Name: "log-pretty", Usage: "Enable pretty logging", - EnvVar: "REVA_LOG_PRETTY", + EnvVars: []string{"REVA_LOG_PRETTY"}, Destination: &cfg.Log.Pretty, }, - &cli.BoolTFlag{ + &cli.BoolFlag{ Name: "log-color", Usage: "Enable colored logging", - EnvVar: "REVA_LOG_COLOR", + EnvVars: []string{"REVA_LOG_COLOR"}, Destination: &cfg.Log.Color, }, } diff --git a/pkg/flagset/sharing.go b/pkg/flagset/sharing.go index 4b6016a2dc..97003f0b99 100644 --- a/pkg/flagset/sharing.go +++ b/pkg/flagset/sharing.go @@ -1,7 +1,7 @@ package flagset import ( - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -12,35 +12,35 @@ func SharingWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", + EnvVars: []string{"REVA_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: "jaeger", Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", + EnvVars: []string{"REVA_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ Name: "tracing-service", Value: "reva", Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", + EnvVars: []string{"REVA_TRACING_SERVICE"}, Destination: &cfg.Tracing.Service, }, @@ -49,26 +49,26 @@ func SharingWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9151", Usage: "Address to bind debug server", - EnvVar: "REVA_SHARING_DEBUG_ADDR", + EnvVars: []string{"REVA_SHARING_DEBUG_ADDR"}, Destination: &cfg.Reva.Sharing.DebugAddr, }, &cli.StringFlag{ Name: "debug-token", Value: "", Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, Destination: &cfg.Debug.Token, }, &cli.BoolFlag{ Name: "debug-pprof", Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", + EnvVars: []string{"REVA_DEBUG_PPROF"}, Destination: &cfg.Debug.Pprof, }, &cli.BoolFlag{ Name: "debug-zpages", Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, Destination: &cfg.Debug.Zpages, }, @@ -78,7 +78,7 @@ func SharingWithConfig(cfg *config.Config) []cli.Flag { Name: "jwt-secret", Value: "Pive-Fumkiu4", Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", + EnvVars: []string{"REVA_JWT_SECRET"}, Destination: &cfg.Reva.JWTSecret, }, @@ -90,36 +90,35 @@ func SharingWithConfig(cfg *config.Config) []cli.Flag { Name: "network", Value: "tcp", Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_SHARING_NETWORK", + EnvVars: []string{"REVA_SHARING_NETWORK"}, Destination: &cfg.Reva.Sharing.Network, }, &cli.StringFlag{ Name: "protocol", Value: "grpc", Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVar: "REVA_SHARING_PROTOCOL", + EnvVars: []string{"REVA_SHARING_PROTOCOL"}, Destination: &cfg.Reva.Sharing.Protocol, }, &cli.StringFlag{ Name: "addr", Value: "0.0.0.0:9150", Usage: "Address to bind reva service", - EnvVar: "REVA_SHARING_ADDR", + EnvVars: []string{"REVA_SHARING_ADDR"}, Destination: &cfg.Reva.Sharing.Addr, }, &cli.StringFlag{ Name: "url", Value: "localhost:9150", Usage: "URL to use for the reva service", - EnvVar: "REVA_SHARING_URL", + EnvVars: []string{"REVA_SHARING_URL"}, Destination: &cfg.Reva.Sharing.URL, }, - &cli.StringFlag{ - Name: "services", - Value: "usershareprovider,publicshareprovider", // TODO osmshareprovider - Usage: "comma separated list of services to include", - EnvVar: "REVA_SHARING_SERVICES", - Destination: &cfg.Reva.Sharing.Services, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("usershareprovider", "publicshareprovider"), // TODO osmshareprovider + Usage: "--service usershareprovider [--service publicshareprovider]", + EnvVars: []string{"REVA_SHARING_SERVICES"}, }, } } diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index 8ade136f9f..29cf19bb2b 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -3,7 +3,7 @@ package flagset import ( "os" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -14,35 +14,35 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", + EnvVars: []string{"REVA_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: "jaeger", Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", + EnvVars: []string{"REVA_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ Name: "tracing-service", Value: "reva", Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", + EnvVars: []string{"REVA_TRACING_SERVICE"}, Destination: &cfg.Tracing.Service, }, @@ -51,26 +51,26 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9155", Usage: "Address to bind debug server", - EnvVar: "REVA_STORAGE_HOME_DEBUG_ADDR", + EnvVars: []string{"REVA_STORAGE_HOME_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageHome.DebugAddr, }, &cli.StringFlag{ Name: "debug-token", Value: "", Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, Destination: &cfg.Debug.Token, }, &cli.BoolFlag{ Name: "debug-pprof", Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", + EnvVars: []string{"REVA_DEBUG_PPROF"}, Destination: &cfg.Debug.Pprof, }, &cli.BoolFlag{ Name: "debug-zpages", Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, Destination: &cfg.Debug.Zpages, }, @@ -80,7 +80,7 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { Name: "jwt-secret", Value: "Pive-Fumkiu4", Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", + EnvVars: []string{"REVA_JWT_SECRET"}, Destination: &cfg.Reva.JWTSecret, }, @@ -92,84 +92,83 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { Name: "network", Value: "tcp", Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_STORAGE_HOME_NETWORK", + EnvVars: []string{"REVA_STORAGE_HOME_NETWORK"}, Destination: &cfg.Reva.StorageHome.Network, }, &cli.StringFlag{ Name: "protocol", Value: "grpc", Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVar: "REVA_STORAGE_HOME_PROTOCOL", + EnvVars: []string{"REVA_STORAGE_HOME_PROTOCOL"}, Destination: &cfg.Reva.StorageHome.Protocol, }, &cli.StringFlag{ Name: "addr", Value: "0.0.0.0:9154", Usage: "Address to bind reva service", - EnvVar: "REVA_STORAGE_HOME_ADDR", + EnvVars: []string{"REVA_STORAGE_HOME_ADDR"}, Destination: &cfg.Reva.StorageHome.Addr, }, &cli.StringFlag{ Name: "url", Value: "localhost:9154", Usage: "URL to use for the reva service", - EnvVar: "REVA_STORAGE_HOME_URL", + EnvVars: []string{"REVA_STORAGE_HOME_URL"}, Destination: &cfg.Reva.StorageHome.URL, }, - &cli.StringFlag{ - Name: "services", - Value: "storageprovider", - Usage: "comma separated list of services to include", - EnvVar: "REVA_STORAGE_HOME_SERVICES", - Destination: &cfg.Reva.StorageHome.Services, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("storageprovider"), + Usage: "--service storageprovider [--service otherservice]", + EnvVars: []string{"REVA_STORAGE_HOME_SERVICES"}, }, &cli.StringFlag{ Name: "driver", Value: "owncloud", Usage: "storage driver, eg. local, eos, owncloud or s3", - EnvVar: "REVA_STORAGE_HOME_DRIVER", + EnvVars: []string{"REVA_STORAGE_HOME_DRIVER"}, Destination: &cfg.Reva.StorageHome.Driver, }, &cli.StringFlag{ Name: "path-wrapper", Value: "context", Usage: "path wrapper", - EnvVar: "REVA_STORAGE_HOME_PATH_WRAPPER", + EnvVars: []string{"REVA_STORAGE_HOME_PATH_WRAPPER"}, Destination: &cfg.Reva.StorageHome.PathWrapper, }, &cli.StringFlag{ Name: "path-wrapper-context-prefix", Value: "", Usage: "path wrapper context prefix", - EnvVar: "REVA_STORAGE_HOME_PATH_WRAPPER_CONTEXT_PREFIX", + EnvVars: []string{"REVA_STORAGE_HOME_PATH_WRAPPER_CONTEXT_PREFIX"}, Destination: &cfg.Reva.StorageHome.PathWrapperContext.Prefix, }, &cli.StringFlag{ Name: "mount-path", Value: "/home", Usage: "mount path", - EnvVar: "REVA_STORAGE_HOME_MOUNT_PATH", + EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_PATH"}, Destination: &cfg.Reva.StorageHome.MountPath, }, &cli.StringFlag{ Name: "mount-id", Value: "123e4567-e89b-12d3-a456-426655440000", Usage: "mount id", - EnvVar: "REVA_STORAGE_HOME_MOUNT_ID", + EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_ID"}, Destination: &cfg.Reva.StorageHome.MountID, }, &cli.BoolFlag{ Name: "expose-data-server", Usage: "exposes a dedicated data server", - EnvVar: "REVA_STORAGE_HOME_EXPOSE_DATA_SERVER", + EnvVars: []string{"REVA_STORAGE_HOME_EXPOSE_DATA_SERVER"}, Destination: &cfg.Reva.StorageHome.ExposeDataServer, }, &cli.StringFlag{ Name: "data-server-url", Value: "http://localhost:9156/data", Usage: "data server url", - EnvVar: "REVA_STORAGE_HOME_DATA_SERVER_URL", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageHome.DataServerURL, }, @@ -181,87 +180,87 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-eos-namespace", Value: "", Usage: "Namespace for metadata operations", - EnvVar: "REVA_STORAGE_EOS_NAMESPACE", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, Destination: &cfg.Reva.Storages.EOS.Namespace, }, &cli.StringFlag{ Name: "storage-eos-binary", Value: "/usr/bin/eos", Usage: "Location of the eos binary", - EnvVar: "REVA_STORAGE_EOS_BINARY", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, Destination: &cfg.Reva.Storages.EOS.EosBinary, }, &cli.StringFlag{ Name: "storage-eos-xrdcopy-binary", Value: "/usr/bin/xrdcopy", Usage: "Location of the xrdcopy binary", - EnvVar: "REVA_STORAGE_EOS_XRDCOPY_BINARY", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, }, &cli.StringFlag{ Name: "storage-eos-master-url", Value: "root://eos-example.org", Usage: "URL of the Master EOS MGM", - EnvVar: "REVA_STORAGE_EOS_MASTER_URL", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, Destination: &cfg.Reva.Storages.EOS.MasterURL, }, &cli.StringFlag{ Name: "storage-eos-slave-url", Value: "root://eos-example.org", Usage: "URL of the Slave EOS MGM", - EnvVar: "REVA_STORAGE_EOS_SLAVE_URL", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, Destination: &cfg.Reva.Storages.EOS.SlaveURL, }, &cli.StringFlag{ Name: "storage-eos-cache-directory", Value: os.TempDir(), Usage: "Location on the local fs where to store reads", - EnvVar: "REVA_STORAGE_EOS_CACHE_DIRECTORY", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, Destination: &cfg.Reva.Storages.EOS.CacheDirectory, }, &cli.BoolFlag{ Name: "storage-eos-enable-logging", Usage: "Enables logging of the commands executed", - EnvVar: "REVA_STORAGE_EOS_ENABLE_LOGGING", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, Destination: &cfg.Reva.Storages.EOS.EnableLogging, }, &cli.BoolFlag{ Name: "storage-eos-show-hidden-sysfiles", Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVar: "REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, }, &cli.BoolFlag{ Name: "storage-eos-force-singleuser-mode", Usage: "force connections to EOS to use SingleUsername", - EnvVar: "REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, }, &cli.BoolFlag{ Name: "storage-eos-use-keytab", Usage: "authenticate requests by using an EOS keytab", - EnvVar: "REVA_STORAGE_EOS_USE_KEYTAB", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.UseKeytab, }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", Value: "", Usage: "the xrootd security protocol to use between the server and EOS", - EnvVar: "REVA_STORAGE_EOS_SEC_PROTOCOL", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, Destination: &cfg.Reva.Storages.EOS.SecProtocol, }, &cli.StringFlag{ Name: "storage-eos-keytab", Value: "", Usage: "the location of the keytab to use to authenticate to EOS", - EnvVar: "REVA_STORAGE_EOS_KEYTAB", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.Keytab, }, &cli.StringFlag{ Name: "storage-eos-single-username", Value: "", Usage: "the username to use when SingleUserMode is enabled", - EnvVar: "REVA_STORAGE_EOS_SINGLE_USERNAME", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, @@ -271,7 +270,7 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-local-root", Value: "/var/tmp/reva/root", Usage: "the path to the local storage root", - EnvVar: "REVA_STORAGE_LOCAL_ROOT", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, Destination: &cfg.Reva.Storages.Local.Root, }, @@ -281,7 +280,7 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-owncloud-datadir", Value: "/var/tmp/reva/data", Usage: "the path to the owncloud data directory", - EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, } diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 569f428be5..1d4d26e2f0 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -3,7 +3,7 @@ package flagset import ( "os" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -14,35 +14,35 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", + EnvVars: []string{"REVA_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: "jaeger", Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", + EnvVars: []string{"REVA_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ Name: "tracing-service", Value: "reva", Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", + EnvVars: []string{"REVA_TRACING_SERVICE"}, Destination: &cfg.Tracing.Service, }, @@ -51,26 +51,26 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9157", Usage: "Address to bind debug server", - EnvVar: "REVA_STORAGE_HOME_DATA_DEBUG_ADDR", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageHomeData.DebugAddr, }, &cli.StringFlag{ Name: "debug-token", Value: "", Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, Destination: &cfg.Debug.Token, }, &cli.BoolFlag{ Name: "debug-pprof", Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", + EnvVars: []string{"REVA_DEBUG_PPROF"}, Destination: &cfg.Debug.Pprof, }, &cli.BoolFlag{ Name: "debug-zpages", Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, Destination: &cfg.Debug.Zpages, }, @@ -80,7 +80,7 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { Name: "jwt-secret", Value: "Pive-Fumkiu4", Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", + EnvVars: []string{"REVA_JWT_SECRET"}, Destination: &cfg.Reva.JWTSecret, }, @@ -92,56 +92,55 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { Name: "network", Value: "tcp", Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_STORAGE_HOME_DATA_NETWORK", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_NETWORK"}, Destination: &cfg.Reva.StorageHomeData.Network, }, &cli.StringFlag{ Name: "protocol", Value: "http", Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVar: "REVA_STORAGE_HOME_DATA_PROTOCOL", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_PROTOCOL"}, Destination: &cfg.Reva.StorageHomeData.Protocol, }, &cli.StringFlag{ Name: "addr", Value: "0.0.0.0:9156", Usage: "Address to bind reva service", - EnvVar: "REVA_STORAGE_HOME_DATA_ADDR", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_ADDR"}, Destination: &cfg.Reva.StorageHomeData.Addr, }, &cli.StringFlag{ Name: "url", Value: "localhost:9156", Usage: "URL to use for the reva service", - EnvVar: "REVA_STORAGE_HOME_DATA_URL", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_URL"}, Destination: &cfg.Reva.StorageHomeData.URL, }, - &cli.StringFlag{ - Name: "services", - Value: "dataprovider", - Usage: "comma separated list of services to include", - EnvVar: "REVA_STORAGE_HOME_DATA_SERVICES", - Destination: &cfg.Reva.StorageHomeData.Services, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("dataprovider"), + Usage: "--service dataprovider [--service otherservice]", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_SERVICES"}, }, &cli.StringFlag{ Name: "driver", Value: "owncloud", Usage: "storage driver, eg. local, eos, owncloud or s3", - EnvVar: "REVA_STORAGE_HOME_DATA_DRIVER", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_DRIVER"}, Destination: &cfg.Reva.StorageHomeData.Driver, }, &cli.StringFlag{ Name: "prefix", Value: "data", Usage: "prefix for the http endpoint, without leading slash", - EnvVar: "REVA_STORAGE_HOME_DATA_PREFIX", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_PREFIX"}, Destination: &cfg.Reva.StorageHomeData.Prefix, }, &cli.StringFlag{ Name: "temp-folder", Value: "/var/tmp/", Usage: "temp folder", - EnvVar: "REVA_STORAGE_HOME_DATA_TEMP_FOLDER", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_TEMP_FOLDER"}, Destination: &cfg.Reva.StorageHomeData.TempFolder, }, @@ -153,87 +152,87 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-eos-namespace", Value: "", Usage: "Namespace for metadata operations", - EnvVar: "REVA_STORAGE_EOS_NAMESPACE", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, Destination: &cfg.Reva.Storages.EOS.Namespace, }, &cli.StringFlag{ Name: "storage-eos-binary", Value: "/usr/bin/eos", Usage: "Location of the eos binary", - EnvVar: "REVA_STORAGE_EOS_BINARY", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, Destination: &cfg.Reva.Storages.EOS.EosBinary, }, &cli.StringFlag{ Name: "storage-eos-xrdcopy-binary", Value: "/usr/bin/xrdcopy", Usage: "Location of the xrdcopy binary", - EnvVar: "REVA_STORAGE_EOS_XRDCOPY_BINARY", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, }, &cli.StringFlag{ Name: "storage-eos-master-url", Value: "root://eos-example.org", Usage: "URL of the Master EOS MGM", - EnvVar: "REVA_STORAGE_EOS_MASTER_URL", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, Destination: &cfg.Reva.Storages.EOS.MasterURL, }, &cli.StringFlag{ Name: "storage-eos-slave-url", Value: "root://eos-example.org", Usage: "URL of the Slave EOS MGM", - EnvVar: "REVA_STORAGE_EOS_SLAVE_URL", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, Destination: &cfg.Reva.Storages.EOS.SlaveURL, }, &cli.StringFlag{ Name: "storage-eos-cache-directory", Value: os.TempDir(), Usage: "Location on the local fs where to store reads", - EnvVar: "REVA_STORAGE_EOS_CACHE_DIRECTORY", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, Destination: &cfg.Reva.Storages.EOS.CacheDirectory, }, &cli.BoolFlag{ Name: "storage-eos-enable-logging", Usage: "Enables logging of the commands executed", - EnvVar: "REVA_STORAGE_EOS_ENABLE_LOGGING", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, Destination: &cfg.Reva.Storages.EOS.EnableLogging, }, &cli.BoolFlag{ Name: "storage-eos-show-hidden-sysfiles", Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVar: "REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, }, &cli.BoolFlag{ Name: "storage-eos-force-singleuser-mode", Usage: "force connections to EOS to use SingleUsername", - EnvVar: "REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, }, &cli.BoolFlag{ Name: "storage-eos-use-keytab", Usage: "authenticate requests by using an EOS keytab", - EnvVar: "REVA_STORAGE_EOS_USE_KEYTAB", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.UseKeytab, }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", Value: "", Usage: "the xrootd security protocol to use between the server and EOS", - EnvVar: "REVA_STORAGE_EOS_SEC_PROTOCOL", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, Destination: &cfg.Reva.Storages.EOS.SecProtocol, }, &cli.StringFlag{ Name: "storage-eos-keytab", Value: "", Usage: "the location of the keytab to use to authenticate to EOS", - EnvVar: "REVA_STORAGE_EOS_KEYTAB", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.Keytab, }, &cli.StringFlag{ Name: "storage-eos-single-username", Value: "", Usage: "the username to use when SingleUserMode is enabled", - EnvVar: "REVA_STORAGE_EOS_SINGLE_USERNAME", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, @@ -243,7 +242,7 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-local-root", Value: "/var/tmp/reva/root", Usage: "the path to the local storage root", - EnvVar: "REVA_STORAGE_LOCAL_ROOT", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, Destination: &cfg.Reva.Storages.Local.Root, }, @@ -253,7 +252,7 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-owncloud-datadir", Value: "/var/tmp/reva/data", Usage: "the path to the owncloud data directory", - EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, @@ -263,7 +262,7 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { Name: "gateway-url", Value: "localhost:9142", Usage: "URL to use for the reva gateway service", - EnvVar: "REVA_GATEWAY_URL", + EnvVars: []string{"REVA_GATEWAY_URL"}, Destination: &cfg.Reva.Gateway.URL, }, } diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 2bf4303dba..5e587cf00f 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -3,7 +3,7 @@ package flagset import ( "os" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -14,35 +14,35 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", + EnvVars: []string{"REVA_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: "jaeger", Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", + EnvVars: []string{"REVA_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ Name: "tracing-service", Value: "reva", Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", + EnvVars: []string{"REVA_TRACING_SERVICE"}, Destination: &cfg.Tracing.Service, }, @@ -51,26 +51,26 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9163", Usage: "Address to bind debug server", - EnvVar: "REVA_STORAGE_OC_DEBUG_ADDR", + EnvVars: []string{"REVA_STORAGE_OC_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageOC.DebugAddr, }, &cli.StringFlag{ Name: "debug-token", Value: "", Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, Destination: &cfg.Debug.Token, }, &cli.BoolFlag{ Name: "debug-pprof", Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", + EnvVars: []string{"REVA_DEBUG_PPROF"}, Destination: &cfg.Debug.Pprof, }, &cli.BoolFlag{ Name: "debug-zpages", Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, Destination: &cfg.Debug.Zpages, }, @@ -80,7 +80,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { Name: "jwt-secret", Value: "Pive-Fumkiu4", Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", + EnvVars: []string{"REVA_JWT_SECRET"}, Destination: &cfg.Reva.JWTSecret, }, @@ -92,84 +92,83 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { Name: "network", Value: "tcp", Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_STORAGE_OC_NETWORK", + EnvVars: []string{"REVA_STORAGE_OC_NETWORK"}, Destination: &cfg.Reva.StorageOC.Network, }, &cli.StringFlag{ Name: "protocol", Value: "grpc", Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVar: "REVA_STORAGE_OC_PROTOCOL", + EnvVars: []string{"REVA_STORAGE_OC_PROTOCOL"}, Destination: &cfg.Reva.StorageOC.Protocol, }, &cli.StringFlag{ Name: "addr", Value: "0.0.0.0:9162", Usage: "Address to bind reva service", - EnvVar: "REVA_STORAGE_OC_ADDR", + EnvVars: []string{"REVA_STORAGE_OC_ADDR"}, Destination: &cfg.Reva.StorageOC.Addr, }, &cli.StringFlag{ Name: "url", Value: "localhost:9162", Usage: "URL to use for the reva service", - EnvVar: "REVA_STORAGE_OC_URL", + EnvVars: []string{"REVA_STORAGE_OC_URL"}, Destination: &cfg.Reva.StorageOC.URL, }, - &cli.StringFlag{ - Name: "services", - Value: "storageprovider", - Usage: "comma separated list of services to include", - EnvVar: "REVA_STORAGE_OC_SERVICES", - Destination: &cfg.Reva.StorageOC.Services, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("storageprovider"), + Usage: "--service storageprovider [--service otherservice]", + EnvVars: []string{"REVA_STORAGE_OC_SERVICES"}, }, &cli.StringFlag{ Name: "driver", Value: "owncloud", Usage: "storage driver, eg. local, eos, owncloud or s3", - EnvVar: "REVA_STORAGE_OC_DRIVER", + EnvVars: []string{"REVA_STORAGE_OC_DRIVER"}, Destination: &cfg.Reva.StorageOC.Driver, }, &cli.StringFlag{ Name: "path-wrapper", Value: "", Usage: "path wrapper", - EnvVar: "REVA_STORAGE_OC_PATH_WRAPPER", + EnvVars: []string{"REVA_STORAGE_OC_PATH_WRAPPER"}, Destination: &cfg.Reva.StorageOC.PathWrapper, }, &cli.StringFlag{ Name: "path-wrapper-context-prefix", Value: "", Usage: "path wrapper context prefix", - EnvVar: "REVA_STORAGE_OC_PATH_WRAPPER_CONTEXT_PREFIX", + EnvVars: []string{"REVA_STORAGE_OC_PATH_WRAPPER_CONTEXT_PREFIX"}, Destination: &cfg.Reva.StorageOC.PathWrapperContext.Prefix, }, &cli.StringFlag{ Name: "mount-path", Value: "/oc", Usage: "mount path", - EnvVar: "REVA_STORAGE_OC_MOUNT_PATH", + EnvVars: []string{"REVA_STORAGE_OC_MOUNT_PATH"}, Destination: &cfg.Reva.StorageOC.MountPath, }, &cli.StringFlag{ Name: "mount-id", Value: "123e4567-e89b-12d3-a456-426655440000", Usage: "mount id", - EnvVar: "REVA_STORAGE_OC_MOUNT_ID", + EnvVars: []string{"REVA_STORAGE_OC_MOUNT_ID"}, Destination: &cfg.Reva.StorageOC.MountID, }, &cli.BoolFlag{ Name: "expose-data-server", Usage: "exposes a dedicated data server", - EnvVar: "REVA_STORAGE_OC_EXPOSE_DATA_SERVER", + EnvVars: []string{"REVA_STORAGE_OC_EXPOSE_DATA_SERVER"}, Destination: &cfg.Reva.StorageOC.ExposeDataServer, }, &cli.StringFlag{ Name: "data-server-url", Value: "http://localhost:9164/data", Usage: "data server url", - EnvVar: "REVA_STORAGE_OC_DATA_SERVER_URL", + EnvVars: []string{"REVA_STORAGE_OC_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageOC.DataServerURL, }, @@ -181,87 +180,87 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-eos-namespace", Value: "", Usage: "Namespace for metadata operations", - EnvVar: "REVA_STORAGE_EOS_NAMESPACE", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, Destination: &cfg.Reva.Storages.EOS.Namespace, }, &cli.StringFlag{ Name: "storage-eos-binary", Value: "/usr/bin/eos", Usage: "Location of the eos binary", - EnvVar: "REVA_STORAGE_EOS_BINARY", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, Destination: &cfg.Reva.Storages.EOS.EosBinary, }, &cli.StringFlag{ Name: "storage-eos-xrdcopy-binary", Value: "/usr/bin/xrdcopy", Usage: "Location of the xrdcopy binary", - EnvVar: "REVA_STORAGE_EOS_XRDCOPY_BINARY", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, }, &cli.StringFlag{ Name: "storage-eos-master-url", Value: "root://eos-example.org", Usage: "URL of the Master EOS MGM", - EnvVar: "REVA_STORAGE_EOS_MASTER_URL", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, Destination: &cfg.Reva.Storages.EOS.MasterURL, }, &cli.StringFlag{ Name: "storage-eos-slave-url", Value: "root://eos-example.org", Usage: "URL of the Slave EOS MGM", - EnvVar: "REVA_STORAGE_EOS_SLAVE_URL", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, Destination: &cfg.Reva.Storages.EOS.SlaveURL, }, &cli.StringFlag{ Name: "storage-eos-cache-directory", Value: os.TempDir(), Usage: "Location on the local fs where to store reads", - EnvVar: "REVA_STORAGE_EOS_CACHE_DIRECTORY", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, Destination: &cfg.Reva.Storages.EOS.CacheDirectory, }, &cli.BoolFlag{ Name: "storage-eos-enable-logging", Usage: "Enables logging of the commands executed", - EnvVar: "REVA_STORAGE_EOS_ENABLE_LOGGING", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, Destination: &cfg.Reva.Storages.EOS.EnableLogging, }, &cli.BoolFlag{ Name: "storage-eos-show-hidden-sysfiles", Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVar: "REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, }, &cli.BoolFlag{ Name: "storage-eos-force-singleuser-mode", Usage: "force connections to EOS to use SingleUsername", - EnvVar: "REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, }, &cli.BoolFlag{ Name: "storage-eos-use-keytab", Usage: "authenticate requests by using an EOS keytab", - EnvVar: "REVA_STORAGE_EOS_USE_KEYTAB", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.UseKeytab, }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", Value: "", Usage: "the xrootd security protocol to use between the server and EOS", - EnvVar: "REVA_STORAGE_EOS_SEC_PROTOCOL", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, Destination: &cfg.Reva.Storages.EOS.SecProtocol, }, &cli.StringFlag{ Name: "storage-eos-keytab", Value: "", Usage: "the location of the keytab to use to authenticate to EOS", - EnvVar: "REVA_STORAGE_EOS_KEYTAB", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.Keytab, }, &cli.StringFlag{ Name: "storage-eos-single-username", Value: "", Usage: "the username to use when SingleUserMode is enabled", - EnvVar: "REVA_STORAGE_EOS_SINGLE_USERNAME", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, @@ -271,7 +270,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-local-root", Value: "/var/tmp/reva/root", Usage: "the path to the local storage root", - EnvVar: "REVA_STORAGE_LOCAL_ROOT", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, Destination: &cfg.Reva.Storages.Local.Root, }, @@ -281,7 +280,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-owncloud-datadir", Value: "/var/tmp/reva/data", Usage: "the path to the owncloud data directory", - EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, } diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index 8d0244d517..9d16511cf4 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -3,7 +3,7 @@ package flagset import ( "os" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -14,35 +14,35 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", + EnvVars: []string{"REVA_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: "jaeger", Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", + EnvVars: []string{"REVA_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ Name: "tracing-service", Value: "reva", Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", + EnvVars: []string{"REVA_TRACING_SERVICE"}, Destination: &cfg.Tracing.Service, }, @@ -51,26 +51,26 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9165", Usage: "Address to bind debug server", - EnvVar: "REVA_STORAGE_OC_DATA_DEBUG_ADDR", + EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageOCData.DebugAddr, }, &cli.StringFlag{ Name: "debug-token", Value: "", Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, Destination: &cfg.Debug.Token, }, &cli.BoolFlag{ Name: "debug-pprof", Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", + EnvVars: []string{"REVA_DEBUG_PPROF"}, Destination: &cfg.Debug.Pprof, }, &cli.BoolFlag{ Name: "debug-zpages", Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, Destination: &cfg.Debug.Zpages, }, @@ -80,7 +80,7 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { Name: "jwt-secret", Value: "Pive-Fumkiu4", Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", + EnvVars: []string{"REVA_JWT_SECRET"}, Destination: &cfg.Reva.JWTSecret, }, @@ -92,56 +92,55 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { Name: "network", Value: "tcp", Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_STORAGE_OC_DATA_NETWORK", + EnvVars: []string{"REVA_STORAGE_OC_DATA_NETWORK"}, Destination: &cfg.Reva.StorageOCData.Network, }, &cli.StringFlag{ Name: "protocol", Value: "http", Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVar: "REVA_STORAGE_OC_DATA_PROTOCOL", + EnvVars: []string{"REVA_STORAGE_OC_DATA_PROTOCOL"}, Destination: &cfg.Reva.StorageOCData.Protocol, }, &cli.StringFlag{ Name: "addr", Value: "0.0.0.0:9164", Usage: "Address to bind reva service", - EnvVar: "REVA_STORAGE_OC_DATA_ADDR", + EnvVars: []string{"REVA_STORAGE_OC_DATA_ADDR"}, Destination: &cfg.Reva.StorageOCData.Addr, }, &cli.StringFlag{ Name: "url", Value: "localhost:9164", Usage: "URL to use for the reva service", - EnvVar: "REVA_STORAGE_OC_DATA_URL", + EnvVars: []string{"REVA_STORAGE_OC_DATA_URL"}, Destination: &cfg.Reva.StorageOCData.URL, }, - &cli.StringFlag{ - Name: "services", - Value: "dataprovider", - Usage: "comma separated list of services to include in the storage-oc data service", - EnvVar: "REVA_STORAGE_OC_DATA_SERVICES", - Destination: &cfg.Reva.StorageOCData.Services, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("dataprovider"), + Usage: "--service dataprovider [--service otherservice]", + EnvVars: []string{"REVA_STORAGE_OC_DATA_SERVICES"}, }, &cli.StringFlag{ Name: "driver", Value: "owncloud", Usage: "storage driver, eg. local, eos, owncloud or s3", - EnvVar: "REVA_STORAGE_OC_DATA_DRIVER", + EnvVars: []string{"REVA_STORAGE_OC_DATA_DRIVER"}, Destination: &cfg.Reva.StorageOCData.Driver, }, &cli.StringFlag{ Name: "prefix", Value: "data", Usage: "prefix for the http endpoint, without leading slash", - EnvVar: "REVA_STORAGE_OC_DATA_PREFIX", + EnvVars: []string{"REVA_STORAGE_OC_DATA_PREFIX"}, Destination: &cfg.Reva.StorageOCData.Prefix, }, &cli.StringFlag{ Name: "temp-folder", Value: "/var/tmp/", Usage: "temp folder", - EnvVar: "REVA_STORAGE_OC_DATA_TEMP_FOLDER", + EnvVars: []string{"REVA_STORAGE_OC_DATA_TEMP_FOLDER"}, Destination: &cfg.Reva.StorageOCData.TempFolder, }, @@ -153,87 +152,87 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-eos-namespace", Value: "", Usage: "Namespace for metadata operations", - EnvVar: "REVA_STORAGE_EOS_NAMESPACE", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, Destination: &cfg.Reva.Storages.EOS.Namespace, }, &cli.StringFlag{ Name: "storage-eos-binary", Value: "/usr/bin/eos", Usage: "Location of the eos binary", - EnvVar: "REVA_STORAGE_EOS_BINARY", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, Destination: &cfg.Reva.Storages.EOS.EosBinary, }, &cli.StringFlag{ Name: "storage-eos-xrdcopy-binary", Value: "/usr/bin/xrdcopy", Usage: "Location of the xrdcopy binary", - EnvVar: "REVA_STORAGE_EOS_XRDCOPY_BINARY", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, }, &cli.StringFlag{ Name: "storage-eos-master-url", Value: "root://eos-example.org", Usage: "URL of the Master EOS MGM", - EnvVar: "REVA_STORAGE_EOS_MASTER_URL", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, Destination: &cfg.Reva.Storages.EOS.MasterURL, }, &cli.StringFlag{ Name: "storage-eos-slave-url", Value: "root://eos-example.org", Usage: "URL of the Slave EOS MGM", - EnvVar: "REVA_STORAGE_EOS_SLAVE_URL", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, Destination: &cfg.Reva.Storages.EOS.SlaveURL, }, &cli.StringFlag{ Name: "storage-eos-cache-directory", Value: os.TempDir(), Usage: "Location on the local fs where to store reads", - EnvVar: "REVA_STORAGE_EOS_CACHE_DIRECTORY", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, Destination: &cfg.Reva.Storages.EOS.CacheDirectory, }, &cli.BoolFlag{ Name: "storage-eos-enable-logging", Usage: "Enables logging of the commands executed", - EnvVar: "REVA_STORAGE_EOS_ENABLE_LOGGING", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, Destination: &cfg.Reva.Storages.EOS.EnableLogging, }, &cli.BoolFlag{ Name: "storage-eos-show-hidden-sysfiles", Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVar: "REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, }, &cli.BoolFlag{ Name: "storage-eos-force-singleuser-mode", Usage: "force connections to EOS to use SingleUsername", - EnvVar: "REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, }, &cli.BoolFlag{ Name: "storage-eos-use-keytab", Usage: "authenticate requests by using an EOS keytab", - EnvVar: "REVA_STORAGE_EOS_USE_KEYTAB", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.UseKeytab, }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", Value: "", Usage: "the xrootd security protocol to use between the server and EOS", - EnvVar: "REVA_STORAGE_EOS_SEC_PROTOCOL", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, Destination: &cfg.Reva.Storages.EOS.SecProtocol, }, &cli.StringFlag{ Name: "storage-eos-keytab", Value: "", Usage: "the location of the keytab to use to authenticate to EOS", - EnvVar: "REVA_STORAGE_EOS_KEYTAB", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.Keytab, }, &cli.StringFlag{ Name: "storage-eos-single-username", Value: "", Usage: "the username to use when SingleUserMode is enabled", - EnvVar: "REVA_STORAGE_EOS_SINGLE_USERNAME", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, @@ -243,7 +242,7 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-local-root", Value: "/var/tmp/reva/root", Usage: "the path to the local storage root", - EnvVar: "REVA_STORAGE_LOCAL_ROOT", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, Destination: &cfg.Reva.Storages.Local.Root, }, @@ -253,7 +252,7 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-owncloud-datadir", Value: "/var/tmp/reva/data", Usage: "the path to the owncloud data directory", - EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, @@ -263,7 +262,7 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { Name: "gateway-url", Value: "localhost:9142", Usage: "URL to use for the reva gateway service", - EnvVar: "REVA_GATEWAY_URL", + EnvVars: []string{"REVA_GATEWAY_URL"}, Destination: &cfg.Reva.Gateway.URL, }, } diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 164522ad92..1dea422790 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -3,7 +3,7 @@ package flagset import ( "os" - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -14,35 +14,35 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", + EnvVars: []string{"REVA_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: "jaeger", Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", + EnvVars: []string{"REVA_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ Name: "tracing-service", Value: "reva", Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", + EnvVars: []string{"REVA_TRACING_SERVICE"}, Destination: &cfg.Tracing.Service, }, @@ -51,26 +51,26 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9153", Usage: "Address to bind debug server", - EnvVar: "REVA_STORAGE_ROOT_DEBUG_ADDR", + EnvVars: []string{"REVA_STORAGE_ROOT_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageRoot.DebugAddr, }, &cli.StringFlag{ Name: "debug-token", Value: "", Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, Destination: &cfg.Debug.Token, }, &cli.BoolFlag{ Name: "debug-pprof", Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", + EnvVars: []string{"REVA_DEBUG_PPROF"}, Destination: &cfg.Debug.Pprof, }, &cli.BoolFlag{ Name: "debug-zpages", Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, Destination: &cfg.Debug.Zpages, }, @@ -80,7 +80,7 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { Name: "jwt-secret", Value: "Pive-Fumkiu4", Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", + EnvVars: []string{"REVA_JWT_SECRET"}, Destination: &cfg.Reva.JWTSecret, }, @@ -92,84 +92,83 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { Name: "network", Value: "tcp", Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_STORAGE_ROOT_NETWORK", + EnvVars: []string{"REVA_STORAGE_ROOT_NETWORK"}, Destination: &cfg.Reva.StorageRoot.Network, }, &cli.StringFlag{ Name: "protocol", Value: "grpc", Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVar: "REVA_STORAGE_ROOT_PROTOCOL", + EnvVars: []string{"REVA_STORAGE_ROOT_PROTOCOL"}, Destination: &cfg.Reva.StorageRoot.Protocol, }, &cli.StringFlag{ Name: "addr", Value: "0.0.0.0:9152", Usage: "Address to bind reva service", - EnvVar: "REVA_STORAGE_ROOT_ADDR", + EnvVars: []string{"REVA_STORAGE_ROOT_ADDR"}, Destination: &cfg.Reva.StorageRoot.Addr, }, &cli.StringFlag{ Name: "url", Value: "localhost:9152", Usage: "URL to use for the reva service", - EnvVar: "REVA_STORAGE_ROOT_URL", + EnvVars: []string{"REVA_STORAGE_ROOT_URL"}, Destination: &cfg.Reva.StorageRoot.URL, }, &cli.StringFlag{ - Name: "services", - Value: "storageprovider", - Usage: "comma separated list of services to include in the storage-root service", - EnvVar: "REVA_STORAGE_ROOT_SERVICES", - Destination: &cfg.Reva.StorageRoot.Services, + Name: "service", + Value: "storageprovider", + Usage: "--service storageprovider [--service otherservice]", + EnvVars: []string{"REVA_STORAGE_ROOT_SERVICES"}, }, &cli.StringFlag{ Name: "driver", Value: "local", Usage: "storage driver, eg. local, eos, owncloud or s3", - EnvVar: "REVA_STORAGE_ROOT_DRIVER", + EnvVars: []string{"REVA_STORAGE_ROOT_DRIVER"}, Destination: &cfg.Reva.StorageRoot.Driver, }, &cli.StringFlag{ Name: "path-wrapper", Value: "", Usage: "path wrapper", - EnvVar: "REVA_STORAGE_ROOT_PATH_WRAPPER", + EnvVars: []string{"REVA_STORAGE_ROOT_PATH_WRAPPER"}, Destination: &cfg.Reva.StorageRoot.PathWrapper, }, &cli.StringFlag{ Name: "path-wrapper-context-prefix", Value: "", Usage: "path wrapper context prefix", - EnvVar: "REVA_STORAGE_ROOT_PATH_WRAPPER_CONTEXT_PREFIX", + EnvVars: []string{"REVA_STORAGE_ROOT_PATH_WRAPPER_CONTEXT_PREFIX"}, Destination: &cfg.Reva.StorageRoot.PathWrapperContext.Prefix, }, &cli.StringFlag{ Name: "mount-path", Value: "/", Usage: "mount path", - EnvVar: "REVA_STORAGE_ROOT_MOUNT_PATH", + EnvVars: []string{"REVA_STORAGE_ROOT_MOUNT_PATH"}, Destination: &cfg.Reva.StorageRoot.MountPath, }, &cli.StringFlag{ Name: "mount-id", Value: "123e4567-e89b-12d3-a456-426655440001", Usage: "mount id", - EnvVar: "REVA_STORAGE_ROOT_MOUNT_ID", + EnvVars: []string{"REVA_STORAGE_ROOT_MOUNT_ID"}, Destination: &cfg.Reva.StorageRoot.MountID, }, &cli.BoolFlag{ Name: "expose-data-server", Usage: "exposes a dedicated data server", - EnvVar: "REVA_STORAGE_ROOT_EXPOSE_DATA_SERVER", + EnvVars: []string{"REVA_STORAGE_ROOT_EXPOSE_DATA_SERVER"}, Destination: &cfg.Reva.StorageRoot.ExposeDataServer, }, &cli.StringFlag{ Name: "data-server-url", Value: "", Usage: "data server url", - EnvVar: "REVA_STORAGE_ROOT_DATA_SERVER_URL", + EnvVars: []string{"REVA_STORAGE_ROOT_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageRoot.DataServerURL, }, @@ -181,87 +180,87 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-eos-namespace", Value: "", Usage: "Namespace for metadata operations", - EnvVar: "REVA_STORAGE_EOS_NAMESPACE", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, Destination: &cfg.Reva.Storages.EOS.Namespace, }, &cli.StringFlag{ Name: "storage-eos-binary", Value: "/usr/bin/eos", Usage: "Location of the eos binary", - EnvVar: "REVA_STORAGE_EOS_BINARY", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, Destination: &cfg.Reva.Storages.EOS.EosBinary, }, &cli.StringFlag{ Name: "storage-eos-xrdcopy-binary", Value: "/usr/bin/xrdcopy", Usage: "Location of the xrdcopy binary", - EnvVar: "REVA_STORAGE_EOS_XRDCOPY_BINARY", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, }, &cli.StringFlag{ Name: "storage-eos-master-url", Value: "root://eos-example.org", Usage: "URL of the Master EOS MGM", - EnvVar: "REVA_STORAGE_EOS_MASTER_URL", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, Destination: &cfg.Reva.Storages.EOS.MasterURL, }, &cli.StringFlag{ Name: "storage-eos-slave-url", Value: "root://eos-example.org", Usage: "URL of the Slave EOS MGM", - EnvVar: "REVA_STORAGE_EOS_SLAVE_URL", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, Destination: &cfg.Reva.Storages.EOS.SlaveURL, }, &cli.StringFlag{ Name: "storage-eos-cache-directory", Value: os.TempDir(), Usage: "Location on the local fs where to store reads", - EnvVar: "REVA_STORAGE_EOS_CACHE_DIRECTORY", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, Destination: &cfg.Reva.Storages.EOS.CacheDirectory, }, &cli.BoolFlag{ Name: "storage-eos-enable-logging", Usage: "Enables logging of the commands executed", - EnvVar: "REVA_STORAGE_EOS_ENABLE_LOGGING", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, Destination: &cfg.Reva.Storages.EOS.EnableLogging, }, &cli.BoolFlag{ Name: "storage-eos-show-hidden-sysfiles", Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVar: "REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, }, &cli.BoolFlag{ Name: "storage-eos-force-singleuser-mode", Usage: "force connections to EOS to use SingleUsername", - EnvVar: "REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, }, &cli.BoolFlag{ Name: "storage-eos-use-keytab", Usage: "authenticate requests by using an EOS keytab", - EnvVar: "REVA_STORAGE_EOS_USE_KEYTAB", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.UseKeytab, }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", Value: "", Usage: "the xrootd security protocol to use between the server and EOS", - EnvVar: "REVA_STORAGE_EOS_SEC_PROTOCOL", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, Destination: &cfg.Reva.Storages.EOS.SecProtocol, }, &cli.StringFlag{ Name: "storage-eos-keytab", Value: "", Usage: "the location of the keytab to use to authenticate to EOS", - EnvVar: "REVA_STORAGE_EOS_KEYTAB", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.Keytab, }, &cli.StringFlag{ Name: "storage-eos-single-username", Value: "", Usage: "the username to use when SingleUserMode is enabled", - EnvVar: "REVA_STORAGE_EOS_SINGLE_USERNAME", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, @@ -271,7 +270,7 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-local-root", Value: "/var/tmp/reva/root", Usage: "the path to the local storage root", - EnvVar: "REVA_STORAGE_LOCAL_ROOT", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, Destination: &cfg.Reva.Storages.Local.Root, }, @@ -281,7 +280,7 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-owncloud-datadir", Value: "/var/tmp/reva/data", Usage: "the path to the owncloud data directory", - EnvVar: "REVA_STORAGE_OWNCLOUD_DATADIR", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, } diff --git a/pkg/flagset/users.go b/pkg/flagset/users.go index 523cd265da..7b1ee79b11 100644 --- a/pkg/flagset/users.go +++ b/pkg/flagset/users.go @@ -1,7 +1,7 @@ package flagset import ( - "github.com/micro/cli" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -12,35 +12,35 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVar: "REVA_TRACING_ENABLED", + EnvVars: []string{"REVA_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: "jaeger", Usage: "Tracing backend type", - EnvVar: "REVA_TRACING_TYPE", + EnvVars: []string{"REVA_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVar: "REVA_TRACING_ENDPOINT", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVar: "REVA_TRACING_COLLECTOR", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ Name: "tracing-service", Value: "reva", Usage: "Service name for tracing", - EnvVar: "REVA_TRACING_SERVICE", + EnvVars: []string{"REVA_TRACING_SERVICE"}, Destination: &cfg.Tracing.Service, }, @@ -49,26 +49,26 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { Name: "debug-addr", Value: "0.0.0.0:9145", Usage: "Address to bind debug server", - EnvVar: "REVA_SHARING_DEBUG_ADDR", + EnvVars: []string{"REVA_SHARING_DEBUG_ADDR"}, Destination: &cfg.Reva.Users.DebugAddr, }, &cli.StringFlag{ Name: "debug-token", Value: "", Usage: "Token to grant metrics access", - EnvVar: "REVA_DEBUG_TOKEN", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, Destination: &cfg.Debug.Token, }, &cli.BoolFlag{ Name: "debug-pprof", Usage: "Enable pprof debugging", - EnvVar: "REVA_DEBUG_PPROF", + EnvVars: []string{"REVA_DEBUG_PPROF"}, Destination: &cfg.Debug.Pprof, }, &cli.BoolFlag{ Name: "debug-zpages", Usage: "Enable zpages debugging", - EnvVar: "REVA_DEBUG_ZPAGES", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, Destination: &cfg.Debug.Zpages, }, @@ -78,7 +78,7 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { Name: "jwt-secret", Value: "Pive-Fumkiu4", Usage: "Shared jwt secret for reva service communication", - EnvVar: "REVA_JWT_SECRET", + EnvVars: []string{"REVA_JWT_SECRET"}, Destination: &cfg.Reva.JWTSecret, }, @@ -88,49 +88,49 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { Name: "ldap-hostname", Value: "localhost", Usage: "LDAP hostname", - EnvVar: "REVA_LDAP_HOSTNAME", + EnvVars: []string{"REVA_LDAP_HOSTNAME"}, Destination: &cfg.Reva.LDAP.Hostname, }, &cli.IntFlag{ Name: "ldap-port", Value: 636, Usage: "LDAP port", - EnvVar: "REVA_LDAP_PORT", + EnvVars: []string{"REVA_LDAP_PORT"}, Destination: &cfg.Reva.LDAP.Port, }, &cli.StringFlag{ Name: "ldap-base-dn", Value: "dc=owncloud,dc=com", Usage: "LDAP basedn", - EnvVar: "REVA_LDAP_BASE_DN", + EnvVars: []string{"REVA_LDAP_BASE_DN"}, Destination: &cfg.Reva.LDAP.BaseDN, }, &cli.StringFlag{ Name: "ldap-userfilter", Value: "(&(objectclass=posixAccount)(cn=%s))", Usage: "LDAP userfilter", - EnvVar: "REVA_LDAP_USERFILTER", + EnvVars: []string{"REVA_LDAP_USERFILTER"}, Destination: &cfg.Reva.LDAP.UserFilter, }, &cli.StringFlag{ Name: "ldap-groupfilter", Value: "(&(objectclass=posixGroup)(cn=%s))", Usage: "LDAP groupfilter", - EnvVar: "REVA_LDAP_GROUPFILTER", + EnvVars: []string{"REVA_LDAP_GROUPFILTER"}, Destination: &cfg.Reva.LDAP.GroupFilter, }, &cli.StringFlag{ Name: "ldap-bind-dn", Value: "cn=admin,dc=owncloud,dc=com", Usage: "LDAP bind dn", - EnvVar: "REVA_LDAP_BIND_DN", + EnvVars: []string{"REVA_LDAP_BIND_DN"}, Destination: &cfg.Reva.LDAP.BindDN, }, &cli.StringFlag{ Name: "ldap-bind-password", Value: "admin", Usage: "LDAP bind password", - EnvVar: "REVA_LDAP_BIND_PASSWORD", + EnvVars: []string{"REVA_LDAP_BIND_PASSWORD"}, Destination: &cfg.Reva.LDAP.BindPassword, }, // ldap dn is always the dn @@ -138,28 +138,28 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { Name: "ldap-schema-uid", Value: "uid", Usage: "LDAP schema uid", - EnvVar: "REVA_LDAP_SCHEMA_UID", + EnvVars: []string{"REVA_LDAP_SCHEMA_UID"}, Destination: &cfg.Reva.LDAP.Schema.UID, }, &cli.StringFlag{ Name: "ldap-schema-mail", Value: "mail", Usage: "LDAP schema mail", - EnvVar: "REVA_LDAP_SCHEMA_MAIL", + EnvVars: []string{"REVA_LDAP_SCHEMA_MAIL"}, Destination: &cfg.Reva.LDAP.Schema.Mail, }, &cli.StringFlag{ Name: "ldap-schema-displayName", Value: "displayName", Usage: "LDAP schema displayName", - EnvVar: "REVA_LDAP_SCHEMA_DISPLAYNAME", + EnvVars: []string{"REVA_LDAP_SCHEMA_DISPLAYNAME"}, Destination: &cfg.Reva.LDAP.Schema.DisplayName, }, &cli.StringFlag{ Name: "ldap-schema-cn", Value: "cn", Usage: "LDAP schema cn", - EnvVar: "REVA_LDAP_SCHEMA_CN", + EnvVars: []string{"REVA_LDAP_SCHEMA_CN"}, Destination: &cfg.Reva.LDAP.Schema.CN, }, @@ -171,50 +171,49 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { Name: "network", Value: "tcp", Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_USERS_NETWORK", + EnvVars: []string{"REVA_USERS_NETWORK"}, Destination: &cfg.Reva.Users.Network, }, &cli.StringFlag{ Name: "protocol", Value: "grpc", Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVar: "REVA_USERS_PROTOCOL", + EnvVars: []string{"REVA_USERS_PROTOCOL"}, Destination: &cfg.Reva.Users.Protocol, }, &cli.StringFlag{ Name: "addr", Value: "0.0.0.0:9144", Usage: "Address to bind reva service", - EnvVar: "REVA_USERS_ADDR", + EnvVars: []string{"REVA_USERS_ADDR"}, Destination: &cfg.Reva.Users.Addr, }, &cli.StringFlag{ Name: "url", Value: "localhost:9144", Usage: "URL to use for the reva service", - EnvVar: "REVA_USERS_URL", + EnvVars: []string{"REVA_USERS_URL"}, Destination: &cfg.Reva.Users.URL, }, &cli.StringFlag{ - Name: "services", - Value: "userprovider", // TODO preferences - Usage: "comma separated list of services to include", - EnvVar: "REVA_USERS_SERVICES", - Destination: &cfg.Reva.Users.Services, + Name: "service", + Value: "userprovider", // TODO preferences + Usage: "--service userprovider [--service otherservice]", + EnvVars: []string{"REVA_USERS_SERVICES"}, }, &cli.StringFlag{ Name: "driver", Value: "demo", Usage: "user driver: 'demo', 'json' or 'ldap'", - EnvVar: "REVA_USERS_DRIVER", + EnvVars: []string{"REVA_USERS_DRIVER"}, Destination: &cfg.Reva.Users.Driver, }, &cli.StringFlag{ Name: "json-config", Value: "", Usage: "Path to users.json file", - EnvVar: "REVA_USERS_JSON", + EnvVars: []string{"REVA_USERS_JSON"}, Destination: &cfg.Reva.Users.JSON, }, } From 906a7a541b9a23f8ae965eac89fb5da3cc02775a Mon Sep 17 00:00:00 2001 From: David Christofas Date: Tue, 28 Jan 2020 14:58:07 +0100 Subject: [PATCH 014/346] add missing type comments --- pkg/config/config.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pkg/config/config.go b/pkg/config/config.go index 50c91f7cdf..ddc3ff423e 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -15,11 +15,13 @@ type Debug struct { Zpages bool } +// Gateway defines the available gateway configuration. type Gateway struct { Port CommitShareToStorageGrant bool } +// Port defines the available port configuration. type Port struct { // MaxCPUs can be a number or a percentage MaxCPUs string @@ -40,14 +42,20 @@ type Port struct { // Services and Protocol will be ignored if this is used Config map[string]interface{} } + +// Users defines the available users configuration. type Users struct { Port Driver string JSON string } + +// PathWrapperContext defines the available PathWrapperContext configuration. type PathWrapperContext struct { Prefix string } + +// StoragePort defines the available storage configuration. type StoragePort struct { Port Driver string @@ -63,6 +71,8 @@ type StoragePort struct { Prefix string TempFolder string } + +// StorageConfig combines all available storage configuration parts. type StorageConfig struct { EOS StorageEOS Local StorageLocal @@ -70,6 +80,8 @@ type StorageConfig struct { S3 StorageS3 // TODO checksums ... figure out what that is supposed to do } + +// StorageEOS defines the available EOS storage configuration. type StorageEOS struct { // Namespace for metadata operations Namespace string @@ -117,12 +129,18 @@ type StorageEOS struct { // SingleUsername is the username to use when SingleUserMode is enabled SingleUsername string } + +// StorageLocal defines the available local storage configuration. type StorageLocal struct { Root string } + +// StorageOwnCloud defines the available ownCloud storage configuration. type StorageOwnCloud struct { Datadirectory string } + +// StorageS3 defines the available S3 storage configuration. type StorageS3 struct { Region string AccessKey string @@ -131,11 +149,15 @@ type StorageS3 struct { Bucket string Prefix string } + +// OIDC defines the available OpenID Connect configuration. type OIDC struct { Issuer string Insecure bool IDClaim string } + +// LDAP defines the available ldap configuration. type LDAP struct { Hostname string Port int @@ -147,6 +169,8 @@ type LDAP struct { IDP string Schema LDAPSchema } + +// LDAPSchema defines the available ldap schema configuration. type LDAPSchema struct { UID string Mail string From d576387efee192ebd291f95008f9fe5852c93b71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 28 Jan 2020 19:30:46 +0000 Subject: [PATCH 015/346] Automated changelog update [skip ci] --- CHANGELOG.md | 13 ++++++++++++- go.sum | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ef6ed2c24..89eb21c3d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,13 +5,24 @@ The following sections list the changes for unreleased. ## Summary * Chg #1: Initial release of basic version + * Chg #6: Start multiple services with dedicated commands ## Details * Change #1: Initial release of basic version - Just prepared an initial basic version to start a reva server and start integrating with the go-micro base dextension framework of ownCloud Infinite Scale. + Just prepared an initial basic version to start a reva server and start integrating with the + go-micro base dextension framework of ownCloud Infinite Scale. https://github.com/owncloud/ocis-reva/issues/1 + * Change #6: Start multiple services with dedicated commands + + The initial version would only allow us to use a set of reva configurations to start multiple + services. We use a more opinionated set of commands to start dedicated services that allows us + to configure them individually. It allowcs us to switch eg. the user backend to LDAP and fully it + on the cli. + + https://github.com/owncloud/ocis-reva/issues/6 + diff --git a/go.sum b/go.sum index ba252d3a77..672bdfe723 100644 --- a/go.sum +++ b/go.sum @@ -637,6 +637,7 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKcyumwBO6qip7RNQ5r77yrssm9bfCowcLEBcU5IA= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/restic/calens v0.1.0 h1:RHGokdZ72dICyIz1EjEsfZwUhvNZz/zy2SawxJktdWA= github.com/restic/calens v0.1.0/go.mod h1:u67f5msOjCTDYNzOf/NoAUSdmXP03YXPCwIQLYADy5M= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= From fbf131c6b276f1b51e759666c450675e33d9e2db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 29 Jan 2020 22:01:40 +0100 Subject: [PATCH 016/346] change default ocdav namespace MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- changelog/unreleased/change-default-namespace.md | 9 +++++++++ pkg/command/frontend.go | 4 ++-- pkg/config/config.go | 6 ++++++ pkg/flagset/frontend.go | 10 ++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) create mode 100755 changelog/unreleased/change-default-namespace.md diff --git a/changelog/unreleased/change-default-namespace.md b/changelog/unreleased/change-default-namespace.md new file mode 100755 index 0000000000..0b31f260dd --- /dev/null +++ b/changelog/unreleased/change-default-namespace.md @@ -0,0 +1,9 @@ +Change: use /home as default namespace + +Currently, cross storage etag propagation is not yet implemented, which prevents the desktop client from detecting changes via the PROPFIND to /. / is managed by the root storage provider which is independend of the home and oc storage providers. If a file changes in /home/foo, the etag change will only be propagated to the root of the home storage provider. + +This change jails users into the `/home` namespace, and allows configuring the namespace to use for the two webdav endpoints using the new environment variable `WEBDAV_NAMESPACE_JAIL` which affects both endpoints `/dav/files` and `/webdav`. + +This will allow us to focus on getting a single storage driver like eos or owncloud tested and better resembles what owncloud 10 does. + +To get back the global namespace, which ultimately is the goal, just set the above environment variable to `/`. \ No newline at end of file diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index fd73589073..51dd56d91f 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -187,8 +187,8 @@ func Frontend(cfg *config.Config) *cli.Command { "prefix": "", "chunk_folder": "/var/tmp/revad/chunks", "gateway": cfg.Reva.Gateway.URL, - "files_namespace": "/", - "webdav_namespace": "/", + "files_namespace": cfg.Reva.OCDav.NamespaceJail, + "webdav_namespace": cfg.Reva.OCDav.NamespaceJail, }, "ocs": map[string]interface{}{ "gateway": cfg.Reva.Gateway.URL, diff --git a/pkg/config/config.go b/pkg/config/config.go index ddc3ff423e..c2f2cc6f5e 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -178,6 +178,11 @@ type LDAPSchema struct { CN string } +// OCDav defines the available ocdav configuration. +type OCDav struct { + NamespaceJail string +} + // Reva defines the available reva configuration. type Reva struct { // JWTSecret used to sign jwt tokens between services @@ -186,6 +191,7 @@ type Reva struct { TransferExpires int OIDC OIDC LDAP LDAP + OCDav OCDav Storages StorageConfig // Ports are used configure which services to start on which port Frontend Port diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index c85208622f..4f55967ef2 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -89,6 +89,16 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.TransferSecret, }, + // OCDav + + &cli.StringFlag{ + Name: "webdav-namespace-jail", + Value: "/home/", + Usage: "Namespace prefix for the webdav endpoints /dav/files and /webdav", + EnvVars: []string{"WEBDAV_NAMESPACE_JAIL"}, + Destination: &cfg.Reva.OCDav.NamespaceJail, + }, + // OIDC &cli.StringFlag{ From 6515f836db6365f85bfa2a3211c4c4b62436ea10 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Wed, 29 Jan 2020 15:32:43 +0545 Subject: [PATCH 017/346] run API tests from oC 10 in CI --- .drone.star | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/.drone.star b/.drone.star index c1bba64194..499162e4a2 100644 --- a/.drone.star +++ b/.drone.star @@ -126,6 +126,80 @@ def testing(ctx): }, }, }, + { + 'name': 'ldap', + 'image': 'osixia/openldap', + 'pull': 'always', + 'detach': True, + 'environment': { + 'LDAP_DOMAIN': 'owncloud.com', + 'LDAP_ORGANISATION': 'owncloud', + 'LDAP_ADMIN_PASSWORD': 'admin', + 'LDAP_TLS_VERIFY_CLIENT': 'never', + 'HOSTNAME': 'ldap' + }, + }, + { + 'name': 'reva-server', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'detach': True, + 'environment' : { + 'REVA_USERS_DRIVER': 'ldap', + 'REVA_STORAGE_HOME_EXPOSE_DATA_SERVER': 1, + 'REVA_STORAGE_OC_EXPOSE_DATA_SERVER': 1, + 'REVA_LDAP_HOSTNAME': 'ldap', + 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_LOCAL_ROOT': '/srv/app/tmp/reva/root', + 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', + 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'WEBDAV_NAMESPACE_JAIL': '/' + }, + 'commands': [ + 'mkdir -p /srv/app/tmp/reva', + 'bin/ocis-reva gateway &', + 'bin/ocis-reva users &', + 'bin/ocis-reva auth-basic &', + 'bin/ocis-reva auth-bearer &', + 'bin/ocis-reva sharing &', + 'bin/ocis-reva storage-root &', + 'bin/ocis-reva storage-home &', + 'bin/ocis-reva storage-home-data &', + 'bin/ocis-reva storage-oc &', + 'bin/ocis-reva storage-oc-data &', + 'bin/ocis-reva frontend' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, + { + 'name': 'acceptance-tests', + 'image': 'owncloudci/php:7.2', + 'pull': 'always', + 'environment' : { + 'TEST_SERVER_URL': 'http://reva-server:9140', + 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend', + 'REVA_LDAP_HOSTNAME':'ldap', + 'TEST_EXTERNAL_USER_BACKENDS':'true', + 'TEST_OCIS':'true', + 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/' + }, + 'commands': [ + 'git clone -b master --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner', + 'cd /srv/app/testrunner', + 'make test-acceptance-api' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, ], 'volumes': [ { From 4f4ab27200b59071d6c1c6d9f8baeb1de7a6ab85 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Thu, 30 Jan 2020 14:37:38 +0100 Subject: [PATCH 018/346] Config for update-docs probot --- .github/config.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/config.yml diff --git a/.github/config.yml b/.github/config.yml new file mode 100644 index 0000000000..5766304785 --- /dev/null +++ b/.github/config.yml @@ -0,0 +1,12 @@ +# Configuration for update-docs - https://github.com/behaviorbot/update-docs + +# Comment to be posted to on PRs that don't update documentation +updateDocsComment: > + Thanks for opening this pull request! The maintainers of this repository would appreciate it if you would create a [changelog](https://github.com/owncloud/ocis-reva/blob/master/changelog/README.md) item based on your changes. +updateDocsWhiteList: + - Tests-only + - tests-only + - Tests-Only + +updateDocsTargetFiles: + - changelog/unreleased/ From 5a87e5df616b26ad541a93104ee192cfddbb72f8 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Mon, 3 Feb 2020 13:41:07 +0545 Subject: [PATCH 019/346] run LDAP as service in CI --- .drone.star | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/.drone.star b/.drone.star index 499162e4a2..de1132338d 100644 --- a/.drone.star +++ b/.drone.star @@ -126,19 +126,6 @@ def testing(ctx): }, }, }, - { - 'name': 'ldap', - 'image': 'osixia/openldap', - 'pull': 'always', - 'detach': True, - 'environment': { - 'LDAP_DOMAIN': 'owncloud.com', - 'LDAP_ORGANISATION': 'owncloud', - 'LDAP_ADMIN_PASSWORD': 'admin', - 'LDAP_TLS_VERIFY_CLIENT': 'never', - 'HOSTNAME': 'ldap' - }, - }, { 'name': 'reva-server', 'image': 'webhippie/golang:1.13', @@ -201,6 +188,20 @@ def testing(ctx): ] }, ], + 'services': [ + { + 'name': 'ldap', + 'image': 'osixia/openldap', + 'pull': 'always', + 'environment': { + 'LDAP_DOMAIN': 'owncloud.com', + 'LDAP_ORGANISATION': 'owncloud', + 'LDAP_ADMIN_PASSWORD': 'admin', + 'LDAP_TLS_VERIFY_CLIENT': 'never', + 'HOSTNAME': 'ldap' + }, + }, + ], 'volumes': [ { 'name': 'gopath', From a3a4232387b62b932fddc20c0f5f89c7c0137e95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 4 Feb 2020 11:43:38 +0100 Subject: [PATCH 020/346] allow different namespaces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .drone.star | 1 - changelog/unreleased/pull-77.md | 16 ++++++++++++++++ pkg/command/frontend.go | 4 ++-- pkg/config/config.go | 3 ++- pkg/flagset/frontend.go | 18 ++++++++++++++---- 5 files changed, 34 insertions(+), 8 deletions(-) create mode 100755 changelog/unreleased/pull-77.md diff --git a/.drone.star b/.drone.star index de1132338d..fc3a1f226a 100644 --- a/.drone.star +++ b/.drone.star @@ -140,7 +140,6 @@ def testing(ctx): 'REVA_STORAGE_LOCAL_ROOT': '/srv/app/tmp/reva/root', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', - 'WEBDAV_NAMESPACE_JAIL': '/' }, 'commands': [ 'mkdir -p /srv/app/tmp/reva', diff --git a/changelog/unreleased/pull-77.md b/changelog/unreleased/pull-77.md new file mode 100755 index 0000000000..fce0b1e652 --- /dev/null +++ b/changelog/unreleased/pull-77.md @@ -0,0 +1,16 @@ +Bugfix: Allow different namespaces for /webdav and /dav/files + +After fbf131c the path for the "new" webdav path does not contain a username `/remote.php/dav/files/textfile0.txt`. It used to be `/remote.php/dav/files/oc/einstein/textfile0.txt` So it lost `oc/einstein`. + +This PR allows setting up different namespaces for `/webav` and `/dav/files`: + +`/webdav` is jailed into `/home` - which uses the home storage driver and uses the logged in user to construct the path +`/dav/files` is jailed into `/oc` - which uses the owncloud storage driver and expects a username as the first path segment + +This mimics oc10 + +The `WEBDAV_NAMESPACE_JAIL` environment variable is split into +- `WEBDAV_NAMESPACE` and +- `DAV_FILES_NAMESPACE` accordingly. + +Related: https://github.com/owncloud/ocis-reva/pull/68 diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index 51dd56d91f..ed08952098 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -187,8 +187,8 @@ func Frontend(cfg *config.Config) *cli.Command { "prefix": "", "chunk_folder": "/var/tmp/revad/chunks", "gateway": cfg.Reva.Gateway.URL, - "files_namespace": cfg.Reva.OCDav.NamespaceJail, - "webdav_namespace": cfg.Reva.OCDav.NamespaceJail, + "files_namespace": cfg.Reva.OCDav.DavFilesNamespace, + "webdav_namespace": cfg.Reva.OCDav.WebdavNamespace, }, "ocs": map[string]interface{}{ "gateway": cfg.Reva.Gateway.URL, diff --git a/pkg/config/config.go b/pkg/config/config.go index c2f2cc6f5e..ff4de607a6 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -180,7 +180,8 @@ type LDAPSchema struct { // OCDav defines the available ocdav configuration. type OCDav struct { - NamespaceJail string + WebdavNamespace string + DavFilesNamespace string } // Reva defines the available reva configuration. diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index 4f55967ef2..33c8668cdd 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -92,11 +92,21 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { // OCDav &cli.StringFlag{ - Name: "webdav-namespace-jail", + Name: "webdav-namespace", Value: "/home/", - Usage: "Namespace prefix for the webdav endpoints /dav/files and /webdav", - EnvVars: []string{"WEBDAV_NAMESPACE_JAIL"}, - Destination: &cfg.Reva.OCDav.NamespaceJail, + Usage: "Namespace prefix for the /webdav endpoint", + EnvVars: []string{"WEBDAV_NAMESPACE"}, + Destination: &cfg.Reva.OCDav.WebdavNamespace, + }, + + // the /dav/files endpoint expects a username as the first path segment + // this can eg. be set to /eos/users + &cli.StringFlag{ + Name: "dav-files-namespace", + Value: "/oc/", + Usage: "Namespace prefix for the webdav /dav/files endpoint", + EnvVars: []string{"DAV_FILES_NAMESPACE"}, + Destination: &cfg.Reva.OCDav.DavFilesNamespace, }, // OIDC From 6ff79110d32c1d89b4bee1b29de7b9f13bd47ff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Mon, 10 Feb 2020 11:39:01 +0100 Subject: [PATCH 021/346] update ocis-pkg to v2.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- go.mod | 11 +- go.sum | 330 +++++++------------------------------ pkg/command/root.go | 2 +- pkg/server/debug/option.go | 2 +- pkg/server/debug/server.go | 2 +- 5 files changed, 61 insertions(+), 286 deletions(-) diff --git a/go.mod b/go.mod index b05de8a700..c03d8cea50 100644 --- a/go.mod +++ b/go.mod @@ -6,25 +6,20 @@ require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e // indirect github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5 - github.com/go-log/log v0.2.0 // indirect github.com/gofrs/uuid v3.2.0+incompatible - github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 // indirect + github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 - github.com/micro/go-micro v1.18.0 // indirect github.com/oklog/run v1.0.0 - github.com/owncloud/ocis-pkg v1.2.1-0.20191217084055-eab942498596 + github.com/owncloud/ocis-pkg/v2 v2.0.1 github.com/pelletier/go-toml v1.6.0 // indirect github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee // indirect github.com/prometheus/procfs v0.0.8 // indirect + github.com/spf13/afero v1.2.2 // indirect github.com/spf13/cast v1.3.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/viper v1.6.1 github.com/uber/jaeger-client-go v2.20.1+incompatible // indirect - golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 // indirect - golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 // indirect golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7 // indirect - google.golang.org/api v0.14.0 // indirect - google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb // indirect gopkg.in/ini.v1 v1.51.1 // indirect gopkg.in/yaml.v2 v2.2.7 // indirect ) diff --git a/go.sum b/go.sum index 672bdfe723..c65fd61313 100644 --- a/go.sum +++ b/go.sum @@ -1,33 +1,23 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= contrib.go.opencensus.io/exporter/jaeger v0.2.0 h1:nhTv/Ry3lGmqbJ/JGvCjWxBl5ozRfqo86Ngz59UAlfk= contrib.go.opencensus.io/exporter/jaeger v0.2.0/go.mod h1:ukdzwIYYHgZ7QYtwVFQUjiT28BJHiMhTERo32s6qVgM= contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= -contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrLVhN+qmP8BTVvdH2YLs7Gl0= contrib.go.opencensus.io/exporter/prometheus v0.1.0 h1:SByaIoWwNgMdPSgl5sMqM2KDE5H/ukPWBRo314xiDvg= contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= -contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= -contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= -contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= -github.com/Azure/azure-amqp-common-go/v2 v2.1.0/go.mod h1:R8rea+gJRuJR6QxTir/XuEd+YuKoUiazDC/N96FiDEU= -github.com/Azure/azure-pipeline-go v0.1.8/go.mod h1:XA1kFWRVhSK+KNFiOhfv83Fv8L9achrP7OxIzeTn1Yg= -github.com/Azure/azure-pipeline-go v0.1.9/go.mod h1:XA1kFWRVhSK+KNFiOhfv83Fv8L9achrP7OxIzeTn1Yg= -github.com/Azure/azure-sdk-for-go v29.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v30.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go v32.4.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-service-bus-go v0.9.1/go.mod h1:yzBx6/BUGfjfeqbRZny9AQIbIe3AcV9WZbAdpkoXOa0= -github.com/Azure/azure-storage-blob-go v0.6.0/go.mod h1:oGfmITT1V6x//CswqY2gtAHND+xIP64/qL7a5QJix0Y= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-autorest v12.0.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.1.0/go.mod h1:AKyIcETwSUFxIcs/Wnq/C+kwCtlEYGUVd7FPNb2slmg= github.com/Azure/go-autorest/autorest v0.5.0/go.mod h1:9HLKlQjVBH6U3oDfsXOeVc56THsLPw1L03yban4xThw= github.com/Azure/go-autorest/autorest/adal v0.1.0/go.mod h1:MeS4XhScH55IST095THyTxElntu7WqB7pNbZo8Q5G3E= @@ -43,23 +33,14 @@ github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvd github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20190605020000-c4ba1fdf4d36/go.mod h1:aJ4qN3TfrelA6NZ6AXsXRfmEVaYin3EDbSPJrKS8OXo= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/Microsoft/hcsshim v0.8.7-0.20191101173118-65519b62243c/go.mod h1:7xhjOwRV2+0HXGmM0jxaEu+ZiXJFoVZOTfL/dmqbrD8= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87/go.mod h1:iGLljf5n9GjT6kc0HBvyI1nOKnGQbNB66VzSNbK5iks= -github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/RoaringBitmap/roaring v0.4.7/go.mod h1:8khRDP4HmeXns4xIj9oGrKSz7XTQiJx2zgh7AcNke4w= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/sarama v1.24.1/go.mod h1:fGP8eQ6PugKEI0iUETYYtnP6d1pH/bdDMTel1X5ajsU= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/abbot/go-http-auth v0.4.1-0.20181019201920-860ed7f246ff/go.mod h1:Cz6ARTIzApMJDzh5bRMSUou6UMSp0IEXg9km/ci7TJM= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/akamai/AkamaiOPEN-edgegrid-golang v0.9.0/go.mod h1:zpDJeKyp9ScW4NNrbdr+Eyxvry3ilGPewKoXw3XGN1k= github.com/alangpierce/go-forceexport v0.0.0-20160317203124-8f1d6941cd75 h1:3ILjVyslFbc4jl1w5TWuvvslFD/nDfR2H8tVaMVLrEY= github.com/alangpierce/go-forceexport v0.0.0-20160317203124-8f1d6941cd75/go.mod h1:uAXEEpARkRhCZfEvy/y0Jcc888f9tHCc1W7/UeEtreE= @@ -70,33 +51,16 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190808125512-07798873deee/go.mod h1:myCDvQSzCW+wB1WAlocEru4wMGJxy+vlxHdhegi1CDQ= github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= -github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= -github.com/anacrolix/envpprof v1.0.0/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= -github.com/anacrolix/missinggo v1.1.2-0.20190815015349-b888af804467/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo= -github.com/anacrolix/missinggo v1.2.1/go.mod h1:J5cMhif8jPmFoC3+Uvob3OXXNIhOUikzMt+uUjeM21Y= -github.com/anacrolix/missinggo/perf v1.0.0/go.mod h1:ljAFWkBuzkO12MQclXzZrosP5urunoLS0Cbvb4V0uMQ= -github.com/anacrolix/sync v0.2.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DCOj/I0g= -github.com/anacrolix/tagflag v0.0.0-20180109131632-2146c8d41bf0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= -github.com/anacrolix/utp v0.0.0-20180219060659-9e0e1d1d0572/go.mod h1:MDwc+vsGEq7RMw6lr2GKOEqjWny5hO5OZXRVNaBJ2Dk= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee h1:3T/l+vMotQ7cDSLWNAn2Vg1SAQ3mdyLgBWWBitSS3uU= github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt4WATGGgae9mURNGQQqxAudPKrxfsbSDSGOso+g= -github.com/asim/go-awsxray v0.0.0-20161209120537-0d8a60b6e205/go.mod h1:frVmN4PtXUuL1EbZn0uL4PHSTKNKFnbMpBIhngqMuNQ= -github.com/asim/go-bson v0.0.0-20160318195205-84522947cabd/go.mod h1:L59ZX7HuzTbNzFBt8g3SJkRraj+GBOgvLAfJYJUcQ5w= -github.com/aws/aws-sdk-go v1.15.27/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= -github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.19.45/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.25.31/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.28.2 h1:j5IXG9CdyLfcVfICqo1PXVv+rua+QQHbkXuvuU/JF+8= github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= @@ -105,18 +69,12 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= -github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= -github.com/bradfitz/iter v0.0.0-20190303215204-33e6a9893b0c/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= -github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/bwmarrin/discordgo v0.20.2/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= @@ -130,11 +88,8 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/cheggaaa/pb v1.0.28/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/cloudflare-go v0.10.2/go.mod h1:qhVI5MKwBGhdNU89ZRz2plgYutcJ5PCekLxXn56w6SY= -github.com/cloudflare/cloudflare-go v0.10.6/go.mod h1:dcRl7AXBH5Bf7QFTBVc3TRzwvotSeO4AlnMhuxORAX8= github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= @@ -151,6 +106,7 @@ github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkE github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.17+incompatible h1:f/Z3EoDSx1yjaIjLQGo1diYUlQYSBrrAQ5vP8NjwXwo= github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.18+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -171,12 +127,10 @@ github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e h1:cPcpOoPLdsIV2 github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5 h1:PkGon9KVtcApu462KRAmFV3iKHOk0S0CRoEzoar4eyE= github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5/go.mod h1:Hk3eCcdhtv4eIhKvRK736fQuOyS1HuHnUcz0Dq6NK1A= -github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= -github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= @@ -188,107 +142,75 @@ github.com/docker/docker v1.4.2-0.20190710153559-aa8249ae1b8b/go.mod h1:eEKB0N0r github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20180421182945-02af3965c54e/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= -github.com/eknkc/basex v1.0.0/go.mod h1:k/F/exNEHFdbs3ZHuasoP2E7zeWwZblG84Y7Z59vQRo= -github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v0.0.0-20181003060214-f58a169a71a5/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/forestgiant/sliceutil v0.0.0-20160425183142-94783f95db6c/go.mod h1:pFdJbAhRf7rh6YYMUdIQGyzne6zYL1tCUW8QV2B3UfY= -github.com/fortytw2/leaktest v1.2.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/frankban/quicktest v1.4.1/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsouza/go-dockerclient v1.4.4/go.mod h1:PrwszSL5fbmsESocROrOGq/NULMXRw+bajY0ltzD6MA= github.com/fsouza/go-dockerclient v1.6.0/go.mod h1:YWwtNPuL4XTX1SKJQk86cWPmmqwx+4np9qfPbb+znGc= -github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= -github.com/glycerine/goconvey v0.0.0-20180728074245-46e3a41ad493/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/go-acme/lego/v3 v3.1.0/go.mod h1:074uqt+JS6plx+c9Xaiz6+L+GBb+7itGtzfcDM2AhEE= +github.com/go-acme/lego/v3 v3.3.0/go.mod h1:iGSY2vQrvQs3WezicSB/oVbO2eCrD88dpWPwb1qLqu0= github.com/go-chi/chi v4.0.2+incompatible h1:maB6vn6FqCxrpz4FqWdh4+lwpyZIQS7YEAUcHlgXVRs= github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-cmd/cmd v1.0.5/go.mod h1:y8q8qlK5wQibcw63djSl/ntiHUHXHGdCkPk0j4QeW4s= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= -github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-ini/ini v1.44.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= github.com/go-log/log v0.1.0 h1:wudGTNsiGzrD5ZjgIkVZ517ugi2XRe9Q/xRCzwEO4/U= github.com/go-log/log v0.1.0/go.mod h1:4mBwpdRMFLiuXZDCwU2lKQFsoSCo72j3HqBK9d81N2M= -github.com/go-log/log v0.2.0 h1:z8i91GBudxD5L3RmF0KVpetCbcGWAV7q1Tw1eRwQM9Q= -github.com/go-log/log v0.2.0/go.mod h1:xzCnwajcues/6w7lne3yK2QU7DBPW7kqbgPGG5AF65U= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v0.1.0 h1:M1Tv3VzNlEHg6uyACnRdtrploV2P7wZqH8BoQMtz0cg= -github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= -github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= -github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= -github.com/go-redsync/redsync v1.3.1/go.mod h1:qxZwM5JOimfq8y98Wk2+c8dKtxJgG5/yIl2ODz2E5Dk= -github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-stomp/stomp v2.0.3+incompatible/go.mod h1:VqCtqNZv1226A1/79yh+rMiFUcfY3R109np+7ke4n0c= github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM= github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I= -github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc h1:55rEp52jU6bkyslZ1+C/7NGfpQsEc6pxGLAGDOctqbw= github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 h1:uHTyIjqVhYRhLbJ8nIiOJHkEZZ+5YoOsAbD3sk82NiE= -github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= -github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -296,27 +218,17 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/go-replayers/grpcreplay v0.1.0/go.mod h1:8Ig2Idjpr6gifRd6pNVggX6TC1Zw6Jx74AKp7QNH2QE= -github.com/google/go-replayers/httpreplay v0.1.0/go.mod h1:YKZViNhiGgqdBlUbI2MwGpq4pXxNmhJLPHQ7cv2b5no= -github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/wire v0.3.0/go.mod h1:i1DMg/Lu8Sz5yYl25iOdmc5CT5qusaa+zmRWs16741s= -github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= github.com/gophercloud/gophercloud v0.3.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= github.com/gopherjs/gopherjs v0.0.0-20181004151105-1babbf986f6f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -339,84 +251,44 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92Bcuy github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI= -github.com/hako/branca v0.0.0-20180808000428-10b799466ada/go.mod h1:tOPn4gvKEUWqIJNE+zpTeTALaRAXnrRqqSnPlO3VpEo= -github.com/hashicorp/consul/api v1.2.0/go.mod h1:1SIkFYi2ZTXUE5Kgt179+4hH33djo11+0Eo2XgTAtkw= -github.com/hashicorp/consul/sdk v0.2.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= -github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= -github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/memberlist v0.1.5/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q= -github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= -github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5/go.mod h1:0YZ2wQSuwviXXXGUiK6zXzskyBLAbLXhamxzcFHSLoM= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= -github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= -github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jcmturner/gofork v0.0.0-20190328161633-dc7c13fece03/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4FwCTKeG3oo7hrHJAoznj9nag= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/joncalhoun/qson v0.0.0-20170526102502-8a9cab3a62b1/go.mod h1:DFXrEwSRX0p/aSvxE21319menCBFeQO0jXpRj7LEZUA= -github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/juju/ratelimit v1.0.1/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/justinas/alice v1.2.0 h1:+MHSA/vccVCF4Uq37S42jwlkvI2Xzl7zTPCN5BnZNVo= github.com/justinas/alice v1.2.0/go.mod h1:fN5HRH/reO/zrUflLfTN43t3vXvKzvZIENsNEe7i7qA= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/kolo/xmlrpc v0.0.0-20190717152603-07c4ee3fd181/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -433,18 +305,17 @@ github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HK github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA= github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= github.com/lucas-clemente/quic-go v0.12.1/go.mod h1:UXJJPE4RfFef/xPO5wQm0tITK8gNfqwTxjbE7s3Vb8s= github.com/lucas-clemente/quic-go v0.13.1 h1:CxtJTXQIh2aboCPk0M6vf530XOov6DZjVBiSE3nSj8s= github.com/lucas-clemente/quic-go v0.13.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= +github.com/lucas-clemente/quic-go v0.14.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180730094502-03f2033d19d5/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/marten-seemann/chacha20 v0.2.0 h1:f40vqzzx+3GdOmzQoItkLX5WLvHgPgyYqFFIO5Gh4hQ= github.com/marten-seemann/chacha20 v0.2.0/go.mod h1:HSdjFau7GzYRj+ahFNwsO3ouVJr1HFkWoEwNDb4TMtE= github.com/marten-seemann/qpack v0.1.0/go.mod h1:LFt1NU/Ptjip0C2CPkhimBz5CGE3WGDAUWqna+CNTrI= @@ -452,12 +323,8 @@ github.com/marten-seemann/qtls v0.3.2/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwm github.com/marten-seemann/qtls v0.4.1 h1:YlT8QP3WCCvvok7MGEZkMldXbyqgr8oFg5/n8Gtbkks= github.com/marten-seemann/qtls v0.4.1/go.mod h1:pxVXcHHw1pNIt8Qo0pwSYQEoZ8yYOOPXTCZLQQunvRc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= @@ -466,47 +333,34 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0j github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mholt/certmagic v0.7.5/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= github.com/mholt/certmagic v0.8.3/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= +github.com/mholt/certmagic v0.9.1/go.mod h1:nu8jbsbtwK4205EDH/ZUMTKsfYpJA1Q7MKXHfgTihNw= github.com/micro/cli v0.2.0 h1:ut3rV5JWqZjsXIa2MvGF+qMUP8DAUTvHX9Br5gO4afA= github.com/micro/cli v0.2.0/go.mod h1:jRT9gmfVKWSS6pkKcXQ8YhUyj6bzwxK8Fp5b0Y7qNnk= github.com/micro/cli/v2 v2.1.1 h1:uFw0SMIKmGuyHIm8lXns/NOn7V62bM5y7DnlxUM+BEQ= github.com/micro/cli/v2 v2.1.1/go.mod h1:EguNh6DAoWKm9nmk+k/Rg0H3lQnDxqzu5x5srOtGtYg= github.com/micro/go-micro v1.16.0/go.mod h1:A0F58bHLh2m0LAI9QyhvmbN8c1cxhAZo3cM6s+iDsrM= -github.com/micro/go-micro v1.17.1/go.mod h1:klwUJL1gkdY1MHFyz+fFJXn52dKcty4hoe95Mp571AA= github.com/micro/go-micro v1.18.0 h1:gP70EZVHpJuUIT0YWth192JmlIci+qMOEByHm83XE9E= github.com/micro/go-micro v1.18.0/go.mod h1:klwUJL1gkdY1MHFyz+fFJXn52dKcty4hoe95Mp571AA= -github.com/micro/go-plugins v1.5.1 h1:swcFD7ynCTUo98APqIEIbPu2XMd6yVGTnI8PqdnCwOQ= -github.com/micro/go-plugins v1.5.1/go.mod h1:jcxejzJCAMH731cQHbS/hncyKe0rxAbzKkibj8glad4= +github.com/micro/go-micro/v2 v2.0.0 h1:bMx549RwJ9Yuiui8cDVlfYhVNP8I8KBJTMyLthEXpRw= +github.com/micro/go-micro/v2 v2.0.0/go.mod h1:v7QP5UhKRt37ixjJe8DouWmg0/eE6dltr5h0idJ9BpE= +github.com/micro/go-plugins/wrapper/trace/opencensus/v2 v2.0.1/go.mod h1:QrkcwcDtIs2hIJpIEhozekyf6Rfz5C36kFI8+zzCpX0= github.com/micro/mdns v0.3.0 h1:bYycYe+98AXR3s8Nq5qvt6C573uFTDPIYzJemWON0QE= github.com/micro/mdns v0.3.0/go.mod h1:KJ0dW7KmicXU2BV++qkLlmHYcVv7/hHnbtguSWt9Aoc= -github.com/micro/micro v1.16.0/go.mod h1:TO5Ng0KidbfRYIxVM4Q3deZ0A+qwRyP9WeXp+k2fWNA= github.com/micro/protoc-gen-micro v1.0.0/go.mod h1:C8ij4DJhapBmypcT00AXdb0cZ675/3PqUO02buWWqbE= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.22 h1:Jm64b3bO9kP43ddLjL2EY3Io6bmy1qGb9Xxz6TqS6rc= github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= -github.com/minio/highwayhash v1.0.0/go.mod h1:xQboMTeM9nY9v/LlAOxFctujiv5+Aq2hR5dxBpaMbdc= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-vnc v0.0.0-20150629162542-723ed9867aed/go.mod h1:3rdaFaCv4AyBgu5ALFM0+tSuHrBh6v692nyQe3ikrq0= -github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/hashstructure v1.0.0 h1:ZkRJX1CyOoTkar7p/mLS5TZU4nJ1Rn/F8u9dGS02Q3Y= github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -514,46 +368,39 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/moul/http2curl v0.0.0-20170919181001-9ac6cf4d929b/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= -github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04/go.mod h1:5sN+Lt1CaY4wsPvgQH/jsuJi4XO2ssZbdsIizr4CVC8= github.com/nats-io/jwt v0.3.0 h1:xdnzwFETV++jNc4W1mw//qFyJGb2ABOombmZJQS4+Qo= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= github.com/nats-io/nats-server/v2 v2.1.0 h1:Yi0+ZhRPtPAGeIxFn5erIeJIV9wXA+JznfSxK621Fbk= github.com/nats-io/nats-server/v2 v2.1.0/go.mod h1:r5y0WgCag0dTj/qiHkHrXAcKQ/f5GMOZaEGdoxxnJ4I= +github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= github.com/nats-io/nats.go v1.9.1 h1:ik3HbLhZ0YABLto7iX80pZLPw/6dx3T+++MZJwLnMrQ= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= github.com/nats-io/nkeys v0.1.0 h1:qMd4+pRHgdr1nAClu+2h/2a5F2TmKcCzjCDazVgRoX4= github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nats-io/stan.go v0.5.0/go.mod h1:dYqB+vMN3C2F9pT1FRQpg9eHbjPj6mP0yYuyBNuXHZE= github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= github.com/nlopes/slack v0.6.0/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk= +github.com/nlopes/slack v0.6.1-0.20191106133607-d06c2a2b3249/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk= github.com/nrdcg/auroradns v1.0.0/go.mod h1:6JPXKzIRzZzMqtTDgueIhTi6rFf1QvYE/HzqidhOhjw= +github.com/nrdcg/dnspod-go v0.3.0/go.mod h1:vZSoFSFeQVm2gWLMkyX61LZ8HI3BaqtHZWgPTGKr6KQ= github.com/nrdcg/goinwx v0.6.1/go.mod h1:XPiut7enlbEdntAqalBIqcYcTEVhpv/dKWgDCX2SwKQ= github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw= -github.com/nsqio/go-nsq v1.0.7/go.mod h1:XP5zaUs3pqf+Q71EqUJs3HYfBIqfK6G83WQMdNN+Ito= github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/oleiade/reflections v1.0.0 h1:0ir4pc6v8/PJ0yw5AEtMddfXpWBXg9cnG7SgSoJuCgY= github.com/oleiade/reflections v1.0.0/go.mod h1:RbATFBbKYkVdqmSFtx13Bb/tVhR0lgOBXunWTZKeL4w= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.1 h1:q/mM8GF/n0shIN8SaAZ0V+jnLPzen6WIVZdiwrRlMlo= -github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= @@ -569,14 +416,11 @@ github.com/ory/fosite v0.30.2/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKG github.com/ory/go-convenience v0.1.0 h1:zouLKfF2GoSGnJwGq+PE/nJAE6dj2Zj5QlTgmMTsTS8= github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= -github.com/owncloud/ocis-pkg v1.2.1-0.20191217084055-eab942498596 h1:3aMNmuDCIdKsaa4YdVTQEBJMjGz8KiuIB/+xlJUCT3k= -github.com/owncloud/ocis-pkg v1.2.1-0.20191217084055-eab942498596/go.mod h1:Wo0QfOmhadh2vNcUoQIsw2yaOT3zeftk+xaOOwP3y88= +github.com/owncloud/ocis-pkg/v2 v2.0.1 h1:3ISEtfjAz4pDFczTggIJwKuft3bVsAp1C7dFY9BBPEs= +github.com/owncloud/ocis-pkg/v2 v2.0.1/go.mod h1:7bVnn3VUaqdmvpMkXF0QVEF1fRugs35hSkuVTAq9yjk= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= @@ -584,9 +428,7 @@ github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181 github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4= github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= -github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4 v2.2.6+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -594,13 +436,10 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/xattr v0.4.1 h1:dhclzL6EqOXNaPDWqoeb9tIxATfBSmjqL0b4DpSjwRw= github.com/pkg/xattr v0.4.1/go.mod h1:W2cGD0TBEus7MkUgv0tNZ9JutLtVO3cXu+IBRuHqnFs= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 h1:J9b7z+QKAmPf4YLrFg6oQUotqHQeUNWwkvo7jZp1GLU= github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= @@ -648,15 +487,8 @@ github.com/rs/zerolog v1.17.2 h1:RMRHFw2+wF7LO0QqtELQwo8hqSmqISyCJeFeAAuWcRo= github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= -github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8= github.com/sacloud/libsacloud v1.26.1/go.mod h1:79ZwATmHLIFZIMd7sxA3LwzVy/B77uj3LDoToVTxDoQ= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -667,15 +499,12 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= -github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= @@ -688,34 +517,28 @@ github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9 github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.1 h1:VPZzIkznI1YhVMRi6vNFLHSwhnhReBfgTxIPccpfdZk= github.com/spf13/viper v1.6.1/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= -github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stvp/tempredis v0.0.0-20181119212430-b82af8480203/go.mod h1:oqN97ltKNihBbwlX8dLpwxCl3+HnXKV/R0e+sRLd9C8= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY= -github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= -github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4o2HM0m3DZYQWsj6/MEowD57VzoH0v3d7igeFY= @@ -728,24 +551,19 @@ github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGr github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA= -github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= -github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= -github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= github.com/xeipuuv/gojsonschema v1.1.0/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.opencensus.io v0.15.0/go.mod h1:UffZAU+4sDEINUGP/B7UfBBkq4fqLu9zXAX7ke6CHW0= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= @@ -762,18 +580,15 @@ go.uber.org/multierr v1.2.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/multierr v1.3.0 h1:sFPn2GLc3poCkfrpIXGhBD2X0CMIo4Q/zSULXrj/+uc= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= -go.uber.org/ratelimit v0.1.0/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.12.0 h1:dySoUQPFBGj6xwjmBzageVL8jGi8uxc6bEmJQjA06bw= go.uber.org/zap v1.12.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -gocloud.dev v0.17.0/go.mod h1:tIHTRdR1V5dlD8sTkzYdTGizBJ314BDykJ8KmadEXwo= -gocloud.dev/pubsub/rabbitpubsub v0.17.0/go.mod h1:7o1XYDiIC+b0mmcwJuofsDg08t0DtU2ubfn7C/Uz7Y0= +go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= golang.org/x/crypto v0.0.0-20180621125126-a49355c7e3f8/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -781,7 +596,6 @@ golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -794,27 +608,34 @@ golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a h1:R/qVym5WAxsZWQqZCwDY/8sdVKV1m1WgU4/S5IRQAzc= golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 h1:sKJQZMuxjOAR/Uo2LBfU90onWEf1dF4C+0hPJCc9Mpc= -golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200117160349-530e935923ad h1:Jh8cai0fqIK+f6nG0UgPW5wFk8wmiMhM3AyciDBdtQg= +golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -829,23 +650,19 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191011234655-491137f69257/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191014212845-da9a3fd4c582/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191027093000-83d349e8ac1a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191109021931-daa7c04131f5/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa h1:F+8P+gmewFQYRk6JoLQLwjBCTu3mcIURZfNkVweuRKA= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -856,23 +673,18 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEha golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181021155630-eda9bb28ed51/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -883,12 +695,10 @@ golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190620070143-6f217b454f45/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190710143415-6ec70d6a5542/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -898,10 +708,8 @@ golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4 h1:Hynbrlo6LbYI3H1IqXpkVDOcX golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7 h1:/W9OPMnnpmFXHYkcp2rQsbFUbRlRzfECQjmAFiOyHE8= golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -911,15 +719,12 @@ golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190422233926-fe54fb35175b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -927,21 +732,24 @@ golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 h1:hKsoRgsbwY1NafxrwTs+k64bikrLBkAgPir1TNCj3Zs= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0 h1:Q3Ui3V3/CVinFWFiW39Iw0kMuVrRzYX0wN6OPFp0lTA= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0 h1:uMf5uLi4eQMRrMKhCplNik4U4H8Z6C1br3zOtAa/aDE= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -957,15 +765,13 @@ google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= -google.golang.org/genproto v0.0.0-20190620144150-6af8c5fc6601/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb h1:ADPHZzpzM4tk4V4S5cnCrr5SwzvlrPRmqqCuJDB8UTs= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba h1:pRj9OXZbwNtbtZtOB4dLwfK4u+EVRMvP+e9zKkg2grM= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -979,43 +785,29 @@ google.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -gopkg.in/DataDog/dd-trace-go.v1 v1.19.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= -gopkg.in/bsm/ratelimit.v1 v1.0.0-20160220154919-db14e161995a/go.mod h1:KF9sEfUPAXdG8Oev9e99iLGnl2uJMjc5B+4y3O7x610= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/validator.v9 v9.30.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= -gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= +gopkg.in/go-playground/validator.v9 v9.31.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/h2non/gock.v1 v1.0.15/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.1 h1:GyboHr4UqMiLUybYjd22ZjQIKEJEpgtLXtuGbR21Oho= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= -gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= -gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= -gopkg.in/jcmturner/gokrb5.v7 v7.2.3/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= -gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU= gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/ldap.v3 v3.1.0/go.mod h1:dQjCc0R0kfyFjIlWNMH1DORwUASZyDxo2Ry1B51dXaQ= gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw= -gopkg.in/olivere/elastic.v5 v5.0.82/go.mod h1:uhHoB4o3bvX5sorxBU29rPcmBQdV2Qfg0FBrx5D6pV0= -gopkg.in/redis.v3 v3.6.4/go.mod h1:6XeGv/CrsUFDU9aVbUdNykN7k1zVmoeg83KC9RbQfiU= gopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.1.9/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= @@ -1044,19 +836,7 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -k8s.io/api v0.0.0-20191109101513-0171b7c15da1/go.mod h1:VJq7+38rpM4TSUbRiZX4P5UVAKK2UQpNQLZClkFQkpE= -k8s.io/apimachinery v0.0.0-20191109100837-dffb012825f2/go.mod h1:+6CX7hP4aLfX2sb91JYDMIp0VqDSog2kZu0BHe+lP+s= -k8s.io/apimachinery v0.0.0-20191111054156-6eb29fdf75dc/go.mod h1:+6CX7hP4aLfX2sb91JYDMIp0VqDSog2kZu0BHe+lP+s= -k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= -k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= -k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= -k8s.io/utils v0.0.0-20191030222137-2b95a09bc58d/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -pack.ag/amqp v0.11.2/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= diff --git a/pkg/command/root.go b/pkg/command/root.go index dc4ed30694..41ee8b799c 100644 --- a/pkg/command/root.go +++ b/pkg/command/root.go @@ -5,7 +5,7 @@ import ( "strings" "github.com/micro/cli/v2" - "github.com/owncloud/ocis-pkg/log" + "github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" "github.com/owncloud/ocis-reva/pkg/version" diff --git a/pkg/server/debug/option.go b/pkg/server/debug/option.go index 347aa4a701..df4218c34f 100644 --- a/pkg/server/debug/option.go +++ b/pkg/server/debug/option.go @@ -3,7 +3,7 @@ package debug import ( "context" - "github.com/owncloud/ocis-pkg/log" + "github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis-reva/pkg/config" ) diff --git a/pkg/server/debug/server.go b/pkg/server/debug/server.go index fb2ab77464..e9c16e65f2 100644 --- a/pkg/server/debug/server.go +++ b/pkg/server/debug/server.go @@ -4,7 +4,7 @@ import ( "io" "net/http" - "github.com/owncloud/ocis-pkg/service/debug" + "github.com/owncloud/ocis-pkg/v2/service/debug" "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/version" ) From ac3381e2775c71a42816f3c2eeb64056455467d0 Mon Sep 17 00:00:00 2001 From: David Christofas Date: Tue, 11 Feb 2020 16:15:16 +0100 Subject: [PATCH 022/346] set correct flag type (#76) merging because the failing tests are unrelated --- changelog/unreleased/76 | 8 ++++++++ pkg/flagset/storageroot.go | 4 ++-- pkg/flagset/users.go | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 changelog/unreleased/76 diff --git a/changelog/unreleased/76 b/changelog/unreleased/76 new file mode 100644 index 0000000000..d32828f762 --- /dev/null +++ b/changelog/unreleased/76 @@ -0,0 +1,8 @@ +Bugfix: set correct flag type in the flagsets + +While upgrading to the micro/cli version 2 there where two instances of `StringFlag` +which had not been changed to `StringSliceFlag`. +This caused `ocis-reva users` and `ocis-reva storage-root` to fail on startup. + +https://github.com/owncloud/ocis-reva/issues/75 +https://github.com/owncloud/ocis-reva/pull/76 diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 1dea422790..8a10ad42e3 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -116,9 +116,9 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_ROOT_URL"}, Destination: &cfg.Reva.StorageRoot.URL, }, - &cli.StringFlag{ + &cli.StringSliceFlag{ Name: "service", - Value: "storageprovider", + Value: cli.NewStringSlice("storageprovider"), Usage: "--service storageprovider [--service otherservice]", EnvVars: []string{"REVA_STORAGE_ROOT_SERVICES"}, }, diff --git a/pkg/flagset/users.go b/pkg/flagset/users.go index 7b1ee79b11..7d5cebbb66 100644 --- a/pkg/flagset/users.go +++ b/pkg/flagset/users.go @@ -195,9 +195,9 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_USERS_URL"}, Destination: &cfg.Reva.Users.URL, }, - &cli.StringFlag{ + &cli.StringSliceFlag{ Name: "service", - Value: "userprovider", // TODO preferences + Value: cli.NewStringSlice("userprovider"), // TODO preferences Usage: "--service userprovider [--service otherservice]", EnvVars: []string{"REVA_USERS_SERVICES"}, }, From 3c387e6e49b96678ac4e0e0b2fd59896604ba296 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Wed, 12 Feb 2020 15:22:29 +0545 Subject: [PATCH 023/346] fix changelog entry (#86) --- changelog/unreleased/{76 => 76.md} | 0 changelog/unreleased/change-default-namespace.md | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) rename changelog/unreleased/{76 => 76.md} (100%) diff --git a/changelog/unreleased/76 b/changelog/unreleased/76.md similarity index 100% rename from changelog/unreleased/76 rename to changelog/unreleased/76.md diff --git a/changelog/unreleased/change-default-namespace.md b/changelog/unreleased/change-default-namespace.md index 0b31f260dd..c8f0625ec9 100755 --- a/changelog/unreleased/change-default-namespace.md +++ b/changelog/unreleased/change-default-namespace.md @@ -6,4 +6,6 @@ This change jails users into the `/home` namespace, and allows configuring the n This will allow us to focus on getting a single storage driver like eos or owncloud tested and better resembles what owncloud 10 does. -To get back the global namespace, which ultimately is the goal, just set the above environment variable to `/`. \ No newline at end of file +To get back the global namespace, which ultimately is the goal, just set the above environment variable to `/`. + +https://github.com/owncloud/ocis-reva/pull/68 From 2dddee76d35fa998bb5dfe3a241ac165d3f4e631 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Wed, 12 Feb 2020 09:46:01 +0000 Subject: [PATCH 024/346] Automated changelog update [skip ci] --- CHANGELOG.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89eb21c3d5..200590f1d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,62 @@ The following sections list the changes for unreleased. ## Summary + * Fix #75: Set correct flag type in the flagsets + * Fix #68: Allow different namespaces for /webdav and /dav/files + * Chg #68: Use /home as default namespace * Chg #1: Initial release of basic version * Chg #6: Start multiple services with dedicated commands ## Details + * Bugfix #75: Set correct flag type in the flagsets + + While upgrading to the micro/cli version 2 there where two instances of `StringFlag` which had + not been changed to `StringSliceFlag`. This caused `ocis-reva users` and `ocis-reva + storage-root` to fail on startup. + + https://github.com/owncloud/ocis-reva/issues/75 + https://github.com/owncloud/ocis-reva/pull/76 + + * Bugfix #68: Allow different namespaces for /webdav and /dav/files + + After fbf131c the path for the "new" webdav path does not contain a username + `/remote.php/dav/files/textfile0.txt`. It used to be + `/remote.php/dav/files/oc/einstein/textfile0.txt` So it lost `oc/einstein`. + + This PR allows setting up different namespaces for `/webav` and `/dav/files`: + + `/webdav` is jailed into `/home` - which uses the home storage driver and uses the logged in user + to construct the path `/dav/files` is jailed into `/oc` - which uses the owncloud storage + driver and expects a username as the first path segment + + This mimics oc10 + + The `WEBDAV_NAMESPACE_JAIL` environment variable is split into - `WEBDAV_NAMESPACE` and - + `DAV_FILES_NAMESPACE` accordingly. + + https://github.com/owncloud/ocis-reva/pull/68 + related: + + * Change #68: Use /home as default namespace + + Currently, cross storage etag propagation is not yet implemented, which prevents the desktop + client from detecting changes via the PROPFIND to /. / is managed by the root storage provider + which is independend of the home and oc storage providers. If a file changes in /home/foo, the + etag change will only be propagated to the root of the home storage provider. + + This change jails users into the `/home` namespace, and allows configuring the namespace to + use for the two webdav endpoints using the new environment variable `WEBDAV_NAMESPACE_JAIL` + which affects both endpoints `/dav/files` and `/webdav`. + + This will allow us to focus on getting a single storage driver like eos or owncloud tested and + better resembles what owncloud 10 does. + + To get back the global namespace, which ultimately is the goal, just set the above environment + variable to `/`. + + https://github.com/owncloud/ocis-reva/pull/68 + * Change #1: Initial release of basic version Just prepared an initial basic version to start a reva server and start integrating with the From 692acaee2ce00181c078b6b14b4bea915c575d90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 12 Feb 2020 11:48:54 +0100 Subject: [PATCH 025/346] expose owncloud storage driver config in flagset (#88) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- changelog/unreleased/issue-87.md | 20 ++++++++++++++++++++ pkg/command/storagehome.go | 3 +++ pkg/command/storagehomedata.go | 3 +++ pkg/command/storageoc.go | 3 +++ pkg/command/storageocdata.go | 3 +++ pkg/command/storageroot.go | 3 +++ pkg/config/config.go | 29 ++++++++++++++++------------- pkg/flagset/storagehome.go | 21 +++++++++++++++++++++ pkg/flagset/storagehomedata.go | 21 +++++++++++++++++++++ pkg/flagset/storageoc.go | 21 +++++++++++++++++++++ pkg/flagset/storageocdata.go | 21 +++++++++++++++++++++ pkg/flagset/storageroot.go | 21 +++++++++++++++++++++ 12 files changed, 156 insertions(+), 13 deletions(-) create mode 100644 changelog/unreleased/issue-87.md diff --git a/changelog/unreleased/issue-87.md b/changelog/unreleased/issue-87.md new file mode 100644 index 0000000000..61d2a5b6f3 --- /dev/null +++ b/changelog/unreleased/issue-87.md @@ -0,0 +1,20 @@ +Enhancement: expose owncloud storage driver config in flagset + +Three new flags are now available: + +- scan files on startup to generate missing fileids + default: `true` + env var: `REVA_STORAGE_OWNCLOUD_SCAN` + cli option: `--storage-owncloud-scan` + +- autocreate home path for new users + default: `true` + env var: `REVA_STORAGE_OWNCLOUD_AUTOCREATE` + cli option: `--storage-owncloud-autocreate` + +- the address of the redis server + default: `:6379` + env var: `REVA_STORAGE_OWNCLOUD_REDIS_ADDR` + cli option: `--storage-owncloud-redis` + +https://github.com/owncloud/ocis-reva/issues/87 \ No newline at end of file diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 1310425d3b..0cc879fd6e 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -113,6 +113,9 @@ func StorageHome(cfg *config.Config) *cli.Command { }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "autocreate": cfg.Reva.Storages.OwnCloud.Autocreate, + "redis": cfg.Reva.Storages.OwnCloud.Redis, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index d4a83a9b35..d4166e096c 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -117,6 +117,9 @@ func StorageHomeData(cfg *config.Config) *cli.Command { }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "autocreate": cfg.Reva.Storages.OwnCloud.Autocreate, + "redis": cfg.Reva.Storages.OwnCloud.Redis, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index acc74c68cd..ceccc52772 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -113,6 +113,9 @@ func StorageOC(cfg *config.Config) *cli.Command { }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "autocreate": cfg.Reva.Storages.OwnCloud.Autocreate, + "redis": cfg.Reva.Storages.OwnCloud.Redis, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 45fbc719ba..15e06fecde 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -117,6 +117,9 @@ func StorageOCData(cfg *config.Config) *cli.Command { }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "autocreate": cfg.Reva.Storages.OwnCloud.Autocreate, + "redis": cfg.Reva.Storages.OwnCloud.Redis, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index 12d99dbcc8..707c90d19b 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -113,6 +113,9 @@ func StorageRoot(cfg *config.Config) *cli.Command { }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "autocreate": cfg.Reva.Storages.OwnCloud.Autocreate, + "redis": cfg.Reva.Storages.OwnCloud.Redis, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/config/config.go b/pkg/config/config.go index ff4de607a6..1bdd621e51 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -72,17 +72,17 @@ type StoragePort struct { TempFolder string } -// StorageConfig combines all available storage configuration parts. +// StorageConfig combines all available storage driver configuration parts. type StorageConfig struct { - EOS StorageEOS - Local StorageLocal - OwnCloud StorageOwnCloud - S3 StorageS3 + EOS DriverEOS + Local DriverLocal + OwnCloud DriverOwnCloud + S3 DriverS3 // TODO checksums ... figure out what that is supposed to do } -// StorageEOS defines the available EOS storage configuration. -type StorageEOS struct { +// DriverEOS defines the available EOS driver configuration. +type DriverEOS struct { // Namespace for metadata operations Namespace string @@ -130,18 +130,21 @@ type StorageEOS struct { SingleUsername string } -// StorageLocal defines the available local storage configuration. -type StorageLocal struct { +// DriverLocal defines the available local storage driver configuration. +type DriverLocal struct { Root string } -// StorageOwnCloud defines the available ownCloud storage configuration. -type StorageOwnCloud struct { +// DriverOwnCloud defines the available ownCloud storage driver configuration. +type DriverOwnCloud struct { Datadirectory string + Scan bool + Autocreate bool + Redis string } -// StorageS3 defines the available S3 storage configuration. -type StorageS3 struct { +// DriverS3 defines the available S3 storage driver configuration. +type DriverS3 struct { Region string AccessKey string SecretKey string diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index 29cf19bb2b..f0d9e7e5f3 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -283,5 +283,26 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-autocreate", + Value: true, + Usage: "autocreate home path for new users", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"}, + Destination: &cfg.Reva.Storages.OwnCloud.Autocreate, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, } } diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 1d4d26e2f0..12ed50a49a 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -255,6 +255,27 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-autocreate", + Value: true, + Usage: "autocreate home path for new users", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"}, + Destination: &cfg.Reva.Storages.OwnCloud.Autocreate, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, // Gateway diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 5e587cf00f..8d324a1e9e 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -283,5 +283,26 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-autocreate", + Value: true, + Usage: "autocreate home path for new users", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"}, + Destination: &cfg.Reva.Storages.OwnCloud.Autocreate, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, } } diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index 9d16511cf4..e3295519da 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -255,6 +255,27 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-autocreate", + Value: true, + Usage: "autocreate home path for new users", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"}, + Destination: &cfg.Reva.Storages.OwnCloud.Autocreate, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, // Gateway diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 8a10ad42e3..197586aca4 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -283,5 +283,26 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-autocreate", + Value: true, + Usage: "autocreate home path for new users", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"}, + Destination: &cfg.Reva.Storages.OwnCloud.Autocreate, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, } } From 55250add45837c68d4392685a498f5838885d8f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 12 Feb 2020 10:57:30 +0000 Subject: [PATCH 026/346] Automated changelog update [skip ci] --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 200590f1d7..16c00b25d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The following sections list the changes for unreleased. * Chg #68: Use /home as default namespace * Chg #1: Initial release of basic version * Chg #6: Start multiple services with dedicated commands + * Enh #87: Expose owncloud storage driver config in flagset ## Details @@ -76,4 +77,19 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/issues/6 + * Enhancement #87: Expose owncloud storage driver config in flagset + + Three new flags are now available: + + - scan files on startup to generate missing fileids default: `true` env var: + `REVA_STORAGE_OWNCLOUD_SCAN` cli option: `--storage-owncloud-scan` + + - autocreate home path for new users default: `true` env var: + `REVA_STORAGE_OWNCLOUD_AUTOCREATE` cli option: `--storage-owncloud-autocreate` + + - the address of the redis server default: `:6379` env var: + `REVA_STORAGE_OWNCLOUD_REDIS_ADDR` cli option: `--storage-owncloud-redis` + + https://github.com/owncloud/ocis-reva/issues/87 + From 0120b8070628338da7a794799796df3bd4824ae8 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Wed, 5 Feb 2020 11:23:29 +0545 Subject: [PATCH 027/346] documentation about running oC10 API tests --- README.md | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/README.md b/README.md index df415e8606..ff6a3153c8 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,61 @@ richard:superfluidity For details on the `json` and `ldap` backends see the [documentation](https://owncloud.github.io/ocis-reva/#users) +## Run oC10 API acceptance tests +1. start an LDAP server e.g. with docker: + ``` + docker run --hostname ldap.my-company.com \ + -e LDAP_TLS_VERIFY_CLIENT=never \ + -e LDAP_DOMAIN=owncloud.com \ + -e LDAP_ORGANISATION=ownCloud \ + -e LDAP_ADMIN_PASSWORD=admin \ + --name docker-slapd \ + -p 127.0.0.1:389:389 \ + -p 636:636 -d osixia/openldap + ``` + +2. clone oC10 code: `git clone https://github.com/owncloud/core.git` + +3. start reva with `REVA_USERS_DRIVER=ldap`: + ``` + bin/ocis-reva gateway & \ + REVA_USERS_DRIVER=ldap bin/ocis-reva users & \ + REVA_USERS_DRIVER=ldap bin/ocis-reva auth-basic & \ + bin/ocis-reva auth-bearer & \ + bin/ocis-reva sharing & \ + bin/ocis-reva storage-root & \ + REVA_STORAGE_HOME_EXPOSE_DATA_SERVER=1 bin/ocis-reva storage-home & \ + bin/ocis-reva storage-home-data & \ + REVA_STORAGE_OC_EXPOSE_DATA_SERVER=1 bin/ocis-reva storage-oc & \ + bin/ocis-reva storage-oc-data & \ + bin/ocis-reva frontend + ``` + +4. from inside the oC10 repo run the tests: + ``` + make test-acceptance-api \ + TEST_SERVER_URL=http://localhost:9140 \ + TEST_EXTERNAL_USER_BACKENDS=true \ + TEST_OCIS=true \ + OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ + BEHAT_FILTER_TAGS='~@skipOnOcis&&@TestAlsoOnExternalUserBackend&&~@skipOnLDAP' + ``` + + Make sure to adjust the settings `TEST_SERVER_URL` and `OCIS_REVA_DATA_ROOT` according to your environment + + This will run all tests that can work with LDAP and are not skipped on OCIS + To run a subset of tests, e.g. a single suite, file or tag have a look at the [acceptance tests documentation](https://doc.owncloud.com/server/10.0/developer_manual/core/acceptance-tests.html#running-acceptance-tests-for-a-suite). + E.g. you can run all tests that are marked with a specific issue: + ``` + make test-acceptance-api \ + TEST_SERVER_URL=http://localhost:9140 \ + TEST_EXTERNAL_USER_BACKENDS=true \ + TEST_OCIS=true \ + OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ + BEHAT_FILTER_TAGS='@TestAlsoOnExternalUserBackend&&~@skipOnLDAP&&@issue-ocis-reva-46' + ``` + + Note that the `~@skipOnOcis` tag is removed here, because to fix an issue you want also to run the tests that are skipped in the CI run ## Security From 8b987e24b656299e69e36b3dbae25b97297e4bfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 12 Feb 2020 21:17:21 +0100 Subject: [PATCH 028/346] storage providers now default to exposing data servers (#90) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .drone.star | 2 -- README.md | 8 ++++---- changelog/unreleased/issue-89.md | 8 ++++++++ pkg/flagset/storagehome.go | 1 + pkg/flagset/storageoc.go | 1 + 5 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 changelog/unreleased/issue-89.md diff --git a/.drone.star b/.drone.star index fc3a1f226a..835cdaf13b 100644 --- a/.drone.star +++ b/.drone.star @@ -133,8 +133,6 @@ def testing(ctx): 'detach': True, 'environment' : { 'REVA_USERS_DRIVER': 'ldap', - 'REVA_STORAGE_HOME_EXPOSE_DATA_SERVER': 1, - 'REVA_STORAGE_OC_EXPOSE_DATA_SERVER': 1, 'REVA_LDAP_HOSTNAME': 'ldap', 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', 'REVA_STORAGE_LOCAL_ROOT': '/srv/app/tmp/reva/root', diff --git a/README.md b/README.md index ff6a3153c8..60433b9ae5 100644 --- a/README.md +++ b/README.md @@ -35,9 +35,9 @@ bin/ocis-reva auth-basic & \ bin/ocis-reva auth-bearer & \ bin/ocis-reva sharing & \ bin/ocis-reva storage-root & \ -REVA_STORAGE_HOME_EXPOSE_DATA_SERVER=1 bin/ocis-reva storage-home & \ +bin/ocis-reva storage-home & \ bin/ocis-reva storage-home-data & \ -REVA_STORAGE_OC_EXPOSE_DATA_SERVER=1 bin/ocis-reva storage-oc & \ +bin/ocis-reva storage-oc & \ bin/ocis-reva storage-oc-data ``` @@ -90,9 +90,9 @@ For details on the `json` and `ldap` backends see the [documentation](https://ow bin/ocis-reva auth-bearer & \ bin/ocis-reva sharing & \ bin/ocis-reva storage-root & \ - REVA_STORAGE_HOME_EXPOSE_DATA_SERVER=1 bin/ocis-reva storage-home & \ + bin/ocis-reva storage-home & \ bin/ocis-reva storage-home-data & \ - REVA_STORAGE_OC_EXPOSE_DATA_SERVER=1 bin/ocis-reva storage-oc & \ + bin/ocis-reva storage-oc & \ bin/ocis-reva storage-oc-data & \ bin/ocis-reva frontend ``` diff --git a/changelog/unreleased/issue-89.md b/changelog/unreleased/issue-89.md new file mode 100644 index 0000000000..7631234735 --- /dev/null +++ b/changelog/unreleased/issue-89.md @@ -0,0 +1,8 @@ +Change: storage providers now default to exposing data servers + +The flags that let reva storage providers announce that they expose a data server now defaults to true: + +`REVA_STORAGE_HOME_EXPOSE_DATA_SERVER=1` +`REVA_STORAGE_OC_EXPOSE_DATA_SERVER=1` + +https://github.com/owncloud/ocis-reva/issues/89 \ No newline at end of file diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index f0d9e7e5f3..d735e27e20 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -160,6 +160,7 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { }, &cli.BoolFlag{ Name: "expose-data-server", + Value: true, Usage: "exposes a dedicated data server", EnvVars: []string{"REVA_STORAGE_HOME_EXPOSE_DATA_SERVER"}, Destination: &cfg.Reva.StorageHome.ExposeDataServer, diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 8d324a1e9e..64308a2581 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -160,6 +160,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { }, &cli.BoolFlag{ Name: "expose-data-server", + Value: true, Usage: "exposes a dedicated data server", EnvVars: []string{"REVA_STORAGE_OC_EXPOSE_DATA_SERVER"}, Destination: &cfg.Reva.StorageOC.ExposeDataServer, From 955da94e4b39bd3f68096c1fad70da4e824d2748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 12 Feb 2020 20:28:21 +0000 Subject: [PATCH 029/346] Automated changelog update [skip ci] --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 16c00b25d8..943dfa3b27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The following sections list the changes for unreleased. * Chg #68: Use /home as default namespace * Chg #1: Initial release of basic version * Chg #6: Start multiple services with dedicated commands + * Chg #89: Storage providers now default to exposing data servers * Enh #87: Expose owncloud storage driver config in flagset ## Details @@ -77,6 +78,15 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/issues/6 + * Change #89: Storage providers now default to exposing data servers + + The flags that let reva storage providers announce that they expose a data server now defaults + to true: + + `REVA_STORAGE_HOME_EXPOSE_DATA_SERVER=1` `REVA_STORAGE_OC_EXPOSE_DATA_SERVER=1` + + https://github.com/owncloud/ocis-reva/issues/89 + * Enhancement #87: Expose owncloud storage driver config in flagset Three new flags are now available: From 1be93190bbdcfac1809bf7efe81a61d9df968a63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 13 Feb 2020 08:57:39 +0100 Subject: [PATCH 030/346] cleanup readme (#93) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 60433b9ae5..612e3785bf 100644 --- a/README.md +++ b/README.md @@ -41,8 +41,6 @@ bin/ocis-reva storage-oc & \ bin/ocis-reva storage-oc-data ``` -The two env vars are needed to tell the reva gateway to use the dedicated data services when uploading files. - The root storage serves the available namespaces from disk using the local storage driver. In order to be able to navigate into the `/home` and `/oc` storage providers you have to create these directories: ``` mkdir /var/tmp/reva/root/home From f1e6fb3c545088a434c8c15f41a8bf9697466de8 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 13 Feb 2020 19:19:11 +0545 Subject: [PATCH 031/346] run redis server for api tests (#96) --- .drone.star | 9 +++++++++ README.md | 10 ++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.drone.star b/.drone.star index 835cdaf13b..3da736be48 100644 --- a/.drone.star +++ b/.drone.star @@ -138,6 +138,7 @@ def testing(ctx): 'REVA_STORAGE_LOCAL_ROOT': '/srv/app/tmp/reva/root', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379' }, 'commands': [ 'mkdir -p /srv/app/tmp/reva', @@ -198,6 +199,14 @@ def testing(ctx): 'HOSTNAME': 'ldap' }, }, + { + 'name': 'redis', + 'image': 'webhippie/redis', + 'pull': 'always', + 'environment': { + 'REDIS_DATABASES': 1 + }, + }, ], 'volumes': [ { diff --git a/README.md b/README.md index 612e3785bf..78993c3c96 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ You can download prebuilt binaries from the GitHub releases or from our [downloa ## Development -Make sure you have a working Go environment, for further reference or a guide take a look at the [install instructions](http://golang.org/doc/install.html). +Make sure you have a working Go environment, for further reference or a guide take a look at the [install instructions](http://golang.org/doc/install.html). ```console git clone https://github.com/owncloud/ocis-reva.git @@ -77,10 +77,12 @@ For details on the `json` and `ldap` backends see the [documentation](https://ow -p 127.0.0.1:389:389 \ -p 636:636 -d osixia/openldap ``` +2. start a Redis server e.g. with docker: + `docker run -e REDIS_DATABASES=1 -p 6379:6379 -d webhippie/redis:latest` -2. clone oC10 code: `git clone https://github.com/owncloud/core.git` +3. clone oC10 code: `git clone https://github.com/owncloud/core.git` -3. start reva with `REVA_USERS_DRIVER=ldap`: +4. start reva with `REVA_USERS_DRIVER=ldap`: ``` bin/ocis-reva gateway & \ REVA_USERS_DRIVER=ldap bin/ocis-reva users & \ @@ -95,7 +97,7 @@ For details on the `json` and `ldap` backends see the [documentation](https://ow bin/ocis-reva frontend ``` -4. from inside the oC10 repo run the tests: +5. from inside the oC10 repo run the tests: ``` make test-acceptance-api \ TEST_SERVER_URL=http://localhost:9140 \ From 584d47daa8bc462e9bc8c0dad0dbc01863f4865b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Thu, 13 Feb 2020 21:25:52 +0100 Subject: [PATCH 032/346] =?UTF-8?q?Do=20not=20start=20openid=20connect=20p?= =?UTF-8?q?rovider=20-=20OCIS=20will=20use=20konnectd=20by=20def=E2=80=A6?= =?UTF-8?q?=20(#61)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Do not start openid connect provider - OCIS will use konnectd by default * default to konnectd as oidc Signed-off-by: Jörn Friedrich Dreyer Co-authored-by: Jörn Friedrich Dreyer --- pkg/command/frontend.go | 45 --------------------------------------- pkg/flagset/authbearer.go | 3 ++- pkg/flagset/frontend.go | 3 ++- 3 files changed, 4 insertions(+), 47 deletions(-) diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index ed08952098..5f237458b5 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -138,51 +138,6 @@ func Frontend(cfg *config.Config) *cli.Command { "gateway": "", // TODO not needed? "transfer_shared_secret": cfg.Reva.TransferSecret, }, - "wellknown": map[string]interface{}{ - "issuer": cfg.Reva.OIDC.Issuer, - "authorization_endpoint": cfg.Reva.OIDC.Issuer + "/oauth2/auth", - "token_endpoint": cfg.Reva.OIDC.Issuer + "/oauth2/token", - "revocation_endpoint": cfg.Reva.OIDC.Issuer + "/oauth2/auth", - "introspection_endpoint": cfg.Reva.OIDC.Issuer + "/oauth2/introspect", - "userinfo_endpoint": cfg.Reva.OIDC.Issuer + "/oauth2/userinfo", - }, - "oidcprovider": map[string]interface{}{ - "prefix": "oauth2", - "gateway": cfg.Reva.Gateway.URL, - "issuer": cfg.Reva.OIDC.Issuer, - "clients": map[string]interface{}{ - // TODO make these configurable - // note: always use authorization code flow, see https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead for details - "phoenix": map[string]interface{}{ - "id": "phoenix", - "redirect_uris": []string{"http://localhost:9100/oidc-callback.html", "http://localhost:9100/"}, - "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, - "response_types": []string{"code"}, - "scopes": []string{"openid", "profile", "email", "offline"}, - "public": true, // force PKCS for public clients - }, - // desktop - "xdXOt13JKxym1B1QcEncf2XDkLAexMBFwiT9j6EfhhHFJhs2KM9jbjTmf8JBXE69": map[string]interface{}{ - "id": "xdXOt13JKxym1B1QcEncf2XDkLAexMBFwiT9j6EfhhHFJhs2KM9jbjTmf8JBXE69", - "client_secret": "$2y$12$pKsCQPp8e/UOL1QDQhT3g.1J.KK8oMJACbEXIqRD0LiOxvgey.TtS", - // preregister localhost ports for the desktop - "redirect_uris": desktopRedirectURIs, - "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, - "response_types": []string{"code"}, - "scopes": []string{"openid", "profile", "email", "offline", "offline_access"}, - }, - // TODO add cli command for token fetching - "cli": map[string]interface{}{ - "id": "cli", - "client_secret": "$2a$10$IxMdI6d.LIRZPpSfEwNoeu4rY3FhDREsxFJXikcgdRRAStxUlsuEO", // = "foobar" - // use hardcoded port credentials for cli - "redirect_uris": []string{"http://localhost:18080/callback"}, - "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, - "response_types": []string{"code"}, - "scopes": []string{"openid", "profile", "email", "offline"}, - }, - }, - }, "ocdav": map[string]interface{}{ "prefix": "", "chunk_folder": "/var/tmp/revad/chunks", diff --git a/pkg/flagset/authbearer.go b/pkg/flagset/authbearer.go index 6da4204876..51180ce983 100644 --- a/pkg/flagset/authbearer.go +++ b/pkg/flagset/authbearer.go @@ -86,13 +86,14 @@ func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "oidc-issuer", - Value: "http://localhost:9140", + Value: "https://localhost:9130", Usage: "OIDC issuer", EnvVars: []string{"REVA_OIDC_ISSUER"}, Destination: &cfg.Reva.OIDC.Issuer, }, &cli.BoolFlag{ Name: "oidc-insecure", + Value: true, Usage: "OIDC allow insecure communication", EnvVars: []string{"REVA_OIDC_INSECURE"}, Destination: &cfg.Reva.OIDC.Insecure, diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index 33c8668cdd..4d4751132d 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -113,13 +113,14 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "oidc-issuer", - Value: "http://localhost:9140", + Value: "https://localhost:9130", Usage: "OIDC issuer", EnvVars: []string{"REVA_OIDC_ISSUER"}, Destination: &cfg.Reva.OIDC.Issuer, }, &cli.BoolFlag{ Name: "oidc-insecure", + Value: true, Usage: "OIDC allow insecure communication", EnvVars: []string{"REVA_OIDC_INSECURE"}, Destination: &cfg.Reva.OIDC.Insecure, From 05bafd2c7e4922cf1ff2e42403ebd24b7b6d1d97 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Mon, 24 Feb 2020 14:49:35 +0545 Subject: [PATCH 033/346] do not run local storage tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 3da736be48..bf1b31e02d 100644 --- a/.drone.star +++ b/.drone.star @@ -167,7 +167,7 @@ def testing(ctx): 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend', + 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'TEST_OCIS':'true', From 2083ea4c32a64a1b4a6e487a6169f0190bee2fa6 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Tue, 25 Feb 2020 13:11:01 +0100 Subject: [PATCH 034/346] align docs, changelog, releases (#104) --- .drone.star | 64 ++++- .gitignore | 1 + Makefile | 20 +- changelog/CHANGELOG.tmpl | 34 ++- docs/.gitignore | 1 - docs/{content/about.md => _index.md} | 4 +- docs/archetypes/default.md | 6 - docs/{content => }/building.md | 0 docs/config.toml | 18 -- docs/{content => }/getting-started.md | 0 docs/layouts/_default/list.html | 0 docs/layouts/_default/single.html | 0 docs/layouts/index.html | 57 ----- docs/layouts/partials/style.html | 2 - docs/{content => }/license.md | 0 docs/static/styles.css | 338 -------------------------- docs/static/syntax.css | 59 ----- docs/{content => }/users.md | 0 go.mod | 1 + go.sum | 17 ++ tools.go | 7 + 21 files changed, 128 insertions(+), 501 deletions(-) delete mode 100644 docs/.gitignore rename docs/{content/about.md => _index.md} (84%) delete mode 100644 docs/archetypes/default.md rename docs/{content => }/building.md (100%) delete mode 100644 docs/config.toml rename docs/{content => }/getting-started.md (100%) delete mode 100644 docs/layouts/_default/list.html delete mode 100644 docs/layouts/_default/single.html delete mode 100644 docs/layouts/index.html delete mode 100644 docs/layouts/partials/style.html rename docs/{content => }/license.md (100%) delete mode 100644 docs/static/styles.css delete mode 100644 docs/static/syntax.css rename docs/{content => }/users.md (100%) create mode 100644 tools.go diff --git a/.drone.star b/.drone.star index bf1b31e02d..91630751c8 100644 --- a/.drone.star +++ b/.drone.star @@ -449,9 +449,10 @@ def binary(ctx, name): 'files': [ 'dist/release/*', ], - 'title': ctx.build.ref.replace("refs/tags/", ""), + 'title': ctx.build.ref.replace("refs/tags/v", ""), 'note': 'dist/CHANGELOG.md', 'overwrite': True, + 'prerelease': len(ctx.build.ref.split("-")) > 1, }, 'when': { 'ref': [ @@ -522,6 +523,7 @@ def manifest(ctx): } def changelog(ctx): + repo_slug = ctx.build.source_repo if ctx.build.source_repo else ctx.repo.slug return { 'kind': 'pipeline', 'type': 'docker', @@ -542,8 +544,8 @@ def changelog(ctx): 'actions': [ 'clone', ], - 'remote': 'https://github.com/%s' % (ctx.repo.slug), - 'branch': ctx.build.branch if ctx.build.event == 'pull_request' else 'master', + 'remote': 'https://github.com/%s' % (repo_slug), + 'branch': ctx.build.source if ctx.build.event == 'pull_request' else 'master', 'path': '/drone/src', 'netrc_machine': 'github.com', 'netrc_username': { @@ -562,6 +564,14 @@ def changelog(ctx): 'make changelog', ], }, + { + 'name': 'diff', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'git diff', + ], + }, { 'name': 'output', 'image': 'webhippie/golang:1.13', @@ -606,7 +616,7 @@ def changelog(ctx): 'trigger': { 'ref': [ 'refs/heads/master', - 'refs/tags/**', + 'refs/pull/**', ], }, } @@ -693,11 +703,25 @@ def website(ctx): }, 'steps': [ { - 'name': 'generate', - 'image': 'webhippie/hugo:latest', - 'pull': 'always', + 'name': 'prepare', + 'image': 'owncloudci/alpine:latest', 'commands': [ - 'make docs', + 'make docs-copy' + ], + }, + { + 'name': 'test', + 'image': 'webhippie/hugo:latest', + 'commands': [ + 'cd hugo', + 'hugo', + ], + }, + { + 'name': 'list', + 'image': 'owncloudci/alpine:latest', + 'commands': [ + 'tree hugo/public', ], }, { @@ -711,8 +735,28 @@ def website(ctx): 'password': { 'from_secret': 'github_token', }, - 'pages_directory': 'docs/public/', - 'temporary_base': 'tmp/', + 'pages_directory': 'docs/', + 'target_branch': 'docs', + }, + 'when': { + 'ref': { + 'exclude': [ + 'refs/pull/**', + ], + }, + }, + }, + { + 'name': 'downstream', + 'image': 'plugins/downstream', + 'settings': { + 'server': 'https://cloud.drone.io/', + 'token': { + 'from_secret': 'drone_token', + }, + 'repositories': [ + 'owncloud/owncloud.github.io@source', + ], }, 'when': { 'ref': { diff --git a/.gitignore b/.gitignore index 94ba5a12be..6067678797 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ coverage.out /bin /dist +/hugo /node_modules /assets diff --git a/Makefile b/Makefile index e5eb471cc1..a8bfd2d573 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,7 @@ NAME := ocis-reva IMPORT := github.com/owncloud/$(NAME) BIN := bin DIST := dist +HUGO := hugo ifeq ($(OS), Windows_NT) EXECUTABLE := $(NAME).exe @@ -130,9 +131,24 @@ release-check: .PHONY: release-finish release-finish: release-copy release-check +.PHONY: docs-copy +docs-copy: + mkdir -p $(HUGO); \ + mkdir -p $(HUGO)/content/extensions; \ + cd $(HUGO); \ + git init; \ + git remote rm origin; \ + git remote add origin https://github.com/owncloud/owncloud.github.io; \ + git fetch; \ + git checkout origin/source -f; \ + rsync --delete -ax ../docs/ content/extensions/$(NAME) + +.PHONY: docs-build +docs-build: + cd $(HUGO); hugo + .PHONY: docs -docs: - cd docs; hugo +docs: docs-copy docs-build .PHONY: watch watch: diff --git a/changelog/CHANGELOG.tmpl b/changelog/CHANGELOG.tmpl index 3fee894812..0c9c645a23 100644 --- a/changelog/CHANGELOG.tmpl +++ b/changelog/CHANGELOG.tmpl @@ -1,18 +1,40 @@ -{{- range $changes := . }}{{ with $changes -}} -# Changelog for {{ .Version }} +{{ $allVersions := . }} +{{- range $index, $changes := . }}{{ with $changes -}} +# Changelog for [{{ .Version }}] ({{ .Date }}) The following sections list the changes for {{ .Version }}. +{{ if gt (len $allVersions) 1 -}} +{{/* creating version compare links */ -}} +{{ $next := add1 $index -}} +{{ if ne (len $allVersions) $next -}} +{{ $previousVersion := (index $allVersions $next).Version -}} +{{ if eq .Version "unreleased" -}} +[{{ .Version }}]: https://github.com/owncloud/ocis-reva/compare/v{{ $previousVersion }}...master + +{{ else -}} +[{{ .Version }}]: https://github.com/owncloud/ocis-reva/compare/v{{ $previousVersion }}...v{{ .Version }} + +{{ end -}} +{{ end -}} + +{{- /* last version managed by calens, end of the loop */ -}} +{{ if eq .Version "0.1.0" -}} +[{{ .Version }}]: https://github.com/owncloud/ocis-reva/compare/6702be7f9045a382d40691a9bcd04f572203e9ed...v{{ .Version }} + +{{ end -}} +{{- end -}} + ## Summary {{ range $entry := .Entries }}{{ with $entry }} - * {{ .TypeShort }} #{{ .PrimaryID }}: {{ .Title }} +* {{ .Type }} #{{ .PrimaryID }}: {{ .Title }} {{- end }}{{ end }} ## Details {{ range $entry := .Entries }}{{ with $entry }} - * {{ .Type }} #{{ .PrimaryID }}: {{ .Title }} +* {{ .Type }} #{{ .PrimaryID }}: {{ .Title }} {{ range $par := .Paragraphs }} - {{ wrap $par 80 3 }} + {{ wrapIndent $par 80 3 }} {{ end -}} {{ range $url := .IssueURLs }} {{ $url -}} @@ -23,6 +45,6 @@ The following sections list the changes for {{ .Version }}. {{ range $url := .OtherURLs }} {{ $url -}} {{ end }} -{{ end }}{{ end }} {{ end }}{{ end -}} +{{ end }}{{ end -}} diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index 364fdec1aa..0000000000 --- a/docs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -public/ diff --git a/docs/content/about.md b/docs/_index.md similarity index 84% rename from docs/content/about.md rename to docs/_index.md index df0238ebf4..0fc8bbb2cc 100644 --- a/docs/content/about.md +++ b/docs/_index.md @@ -1,7 +1,7 @@ --- -title: "About" +title: "Reva" date: 2018-05-02T00:00:00+00:00 -anchor: "about" +anchor: "ocis-reva" weight: 10 --- diff --git a/docs/archetypes/default.md b/docs/archetypes/default.md deleted file mode 100644 index 4e777bee13..0000000000 --- a/docs/archetypes/default.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: "{{ replace .TranslationBaseName "-" " " | title }}" -date: {{ .Date }} -anchor: "{{ replace .TranslationBaseName "-" " " | title | urlize }}" -weight: ---- diff --git a/docs/content/building.md b/docs/building.md similarity index 100% rename from docs/content/building.md rename to docs/building.md diff --git a/docs/config.toml b/docs/config.toml deleted file mode 100644 index f90bc63933..0000000000 --- a/docs/config.toml +++ /dev/null @@ -1,18 +0,0 @@ -baseURL = "https://owncloud.github.io/ocis-reva/" -languageCode = "en-us" -title = "ownCloud Infinite Scale: Reva" -pygmentsUseClasses = true - -disableKinds = ["taxonomy", "taxonomyTerm", "RSS", "sitemap"] - -[blackfriday] - angledQuotes = true - fractions = false - plainIDAnchors = true - smartlists = true - extensions = ["hardLineBreak"] - -[params] - author = "ownCloud GmbH" - description = "Example service for oCIS" - keywords = "reva, ocis" diff --git a/docs/content/getting-started.md b/docs/getting-started.md similarity index 100% rename from docs/content/getting-started.md rename to docs/getting-started.md diff --git a/docs/layouts/_default/list.html b/docs/layouts/_default/list.html deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/layouts/_default/single.html b/docs/layouts/_default/single.html deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/layouts/index.html b/docs/layouts/index.html deleted file mode 100644 index 27db113acd..0000000000 --- a/docs/layouts/index.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - {{ .Site.Title }} - - - - - - {{ partial "style.html" . }} - - - - - - {{ range .Data.Pages.ByWeight }} -
-

- - {{ .Title }} - - - - - Back to Top - - -

- - {{ .Content | markdownify }} -
- {{ end }} - - diff --git a/docs/layouts/partials/style.html b/docs/layouts/partials/style.html deleted file mode 100644 index 1386c59b0d..0000000000 --- a/docs/layouts/partials/style.html +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/docs/content/license.md b/docs/license.md similarity index 100% rename from docs/content/license.md rename to docs/license.md diff --git a/docs/static/styles.css b/docs/static/styles.css deleted file mode 100644 index 61acc8ddb5..0000000000 --- a/docs/static/styles.css +++ /dev/null @@ -1,338 +0,0 @@ -body, -html { - cursor: default; -} - -body, -div, -dl, -dt, -dd, -ul, -ol, -li, -h1, -h2, -h3, -h4, -h5, -h6, -pre, -form, -fieldset, -input, -textarea, -p, -blockquote, -th, -td { - margin: 0; - padding: 0; -} - -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -:before, -:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -img, -object, -embed { - max-width: 100%; - height: auto; -} - -object, -embed { - height: 100%; -} - -img { - margin: 1.25% 0; - -ms-interpolation-mode: bicubic; -} - -html { - background-color: #F0F1F3; - padding: 2%; -} - -body { - font-size: 16px; - line-height: 1.6; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - color: #242424; - max-width: 800px; - margin: 5% auto; -} - -body::after { - clear: both; - content: ""; - display: table; -} - -header { - margin-bottom: 8%; -} - -footer { - text-align: center; -} - -h1, -h2, -h3, -h4, -h5, -h2 a { - color: #263A48; - font-weight: 500; - text-decoration: none; -} - -h1, -h2 { - font-size: 36px; - padding-bottom: 0.3em; - margin-bottom: 0.4em; - border-bottom: 1px solid #eee -} - -h2 { - font-size: 22px; - padding-bottom: 0.6em; - margin-bottom: 0.6em; - margin-top: 2.5em; -} - -h3 { - font-size: 18px; - margin-bottom: 0.3em; -} - -h2 small a { - color: #98999C; - font-size: 15px; - font-weight: normal; - float: right; - position: absolute; - top: 15px; - right: 20px; -} - -section { - background: #fff; - margin-bottom: 1%; - position: relative; - padding: 6% 8%; -} - -blockquote { - border-left: 3px solid #d54e21; - font-size: 16px; - padding: 0 0 0 20px; - color: #d54e21; -} - -blockquote a { - color: #d54e21; - font-weight: 500; -} - -blockquote code { - color: #d54e21; -} - -.highlight pre { - padding: 10px; -} - -.highlight { - margin-bottom: 4%; -} - -a { - color: #1e8cbe; - text-decoration: underline; -} - -a:hover { - color: #d54e21; -} - -ul { - list-style: none; -} - -ol { - list-style: number; -} - -ol li { - color: #98999C; - margin-bottom: 5px; -} - -ol li:last-child { - margin-bottom: 0; -} - -p, -ul, -ol, -blockquote { - margin-bottom: 4%; -} - -ul ul { - padding-top: 0; - margin-bottom: 0; - margin-left: 4%; -} - -ul ul li:before { - content: '-'; - display: inline-block; - padding-right: 2%; -} - -ul.col-2 { - color: #98999C; - -webkit-column-count: 2; - -moz-column-count: 2; - column-count: 2; - -webkit-column-gap: 20px; - -moz-column-gap: 20px; - column-gap: 20px; -} - -dl dt { - font-weight: bold; -} - -dl dd { - padding-left: 10px; -} - -@media screen and (min-width: 500px) { - ul.col-2 { - -webkit-column-count: 3; - -moz-column-count: 3; - column-count: 3; - -webkit-column-gap: 20px; - -moz-column-gap: 20px; - column-gap: 20px; - } -} - -nav { - background: #F0F1F3; - min-width: 215px; - margin-bottom: 5px; - margin-top: 15px; -} - -nav:first-of-type a { - color: #d54e21; - border-radius: 0; -} - -nav:first-of-type a:hover { - color: #d54e21; -} - -nav:first-of-type a:before { - background-color: #d54e21; -} - -nav.affix { - position: fixed; - top: 20px; -} - -nav.affix-bottom { - position: absolute; -} - -nav a { - border-radius: 3px; - font-size: 15px; - display: block; - cursor: pointer; - font-weight: 500; - position: relative; - text-decoration: none; - padding: 10px 12px; - width: 100%; - padding-right: 3px; - border-bottom: 2px solid #fff; -} - -nav a:before { - content: ''; - width: 4px; - display: block; - left: 0; - position: absolute; - height: 100%; - display: none; - background: #1e8cbe; - top: 0; -} - -nav a:hover { - background-color: #E6E8EA; - color: #1e8cbe; - text-decoration: underline; -} - -nav a:hover:before { - display: block; -} - -nav a:last-of-type { - border-bottom: none; -} - -.gist { - margin-top: 5.1%; - margin-bottom: 5%; -} - -@media screen and (max-width: 1050px) { - body { - margin: 0 auto; - } -} - -@media screen and (max-width: 767px) { - header span { - display: none; - } - - h1 { - font-size: 26px; - } - - h2 { - font-size: 20px; - } -} - -@media screen and (max-width: 514px) { - p, - ul, - ol, - blockquote { - margin-bottom: 8%; - } -} diff --git a/docs/static/syntax.css b/docs/static/syntax.css deleted file mode 100644 index 681758d068..0000000000 --- a/docs/static/syntax.css +++ /dev/null @@ -1,59 +0,0 @@ -/* Background */ .chroma { color: #f8f8f2; background-color: #272822 } -/* Error */ .chroma .err { color: #960050; background-color: #1e0010 } -/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } -/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } -/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc } -/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } -/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } -/* Keyword */ .chroma .k { color: #66d9ef } -/* KeywordConstant */ .chroma .kc { color: #66d9ef } -/* KeywordDeclaration */ .chroma .kd { color: #66d9ef } -/* KeywordNamespace */ .chroma .kn { color: #f92672 } -/* KeywordPseudo */ .chroma .kp { color: #66d9ef } -/* KeywordReserved */ .chroma .kr { color: #66d9ef } -/* KeywordType */ .chroma .kt { color: #66d9ef } -/* NameAttribute */ .chroma .na { color: #a6e22e } -/* NameClass */ .chroma .nc { color: #a6e22e } -/* NameConstant */ .chroma .no { color: #66d9ef } -/* NameDecorator */ .chroma .nd { color: #a6e22e } -/* NameException */ .chroma .ne { color: #a6e22e } -/* NameFunction */ .chroma .nf { color: #a6e22e } -/* NameOther */ .chroma .nx { color: #a6e22e } -/* NameTag */ .chroma .nt { color: #f92672 } -/* Literal */ .chroma .l { color: #ae81ff } -/* LiteralDate */ .chroma .ld { color: #e6db74 } -/* LiteralString */ .chroma .s { color: #e6db74 } -/* LiteralStringAffix */ .chroma .sa { color: #e6db74 } -/* LiteralStringBacktick */ .chroma .sb { color: #e6db74 } -/* LiteralStringChar */ .chroma .sc { color: #e6db74 } -/* LiteralStringDelimiter */ .chroma .dl { color: #e6db74 } -/* LiteralStringDoc */ .chroma .sd { color: #e6db74 } -/* LiteralStringDouble */ .chroma .s2 { color: #e6db74 } -/* LiteralStringEscape */ .chroma .se { color: #ae81ff } -/* LiteralStringHeredoc */ .chroma .sh { color: #e6db74 } -/* LiteralStringInterpol */ .chroma .si { color: #e6db74 } -/* LiteralStringOther */ .chroma .sx { color: #e6db74 } -/* LiteralStringRegex */ .chroma .sr { color: #e6db74 } -/* LiteralStringSingle */ .chroma .s1 { color: #e6db74 } -/* LiteralStringSymbol */ .chroma .ss { color: #e6db74 } -/* LiteralNumber */ .chroma .m { color: #ae81ff } -/* LiteralNumberBin */ .chroma .mb { color: #ae81ff } -/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff } -/* LiteralNumberHex */ .chroma .mh { color: #ae81ff } -/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff } -/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff } -/* LiteralNumberOct */ .chroma .mo { color: #ae81ff } -/* Operator */ .chroma .o { color: #f92672 } -/* OperatorWord */ .chroma .ow { color: #f92672 } -/* Comment */ .chroma .c { color: #75715e } -/* CommentHashbang */ .chroma .ch { color: #75715e } -/* CommentMultiline */ .chroma .cm { color: #75715e } -/* CommentSingle */ .chroma .c1 { color: #75715e } -/* CommentSpecial */ .chroma .cs { color: #75715e } -/* CommentPreproc */ .chroma .cp { color: #75715e } -/* CommentPreprocFile */ .chroma .cpf { color: #75715e } -/* GenericDeleted */ .chroma .gd { color: #f92672 } -/* GenericEmph */ .chroma .ge { font-style: italic } -/* GenericInserted */ .chroma .gi { color: #a6e22e } -/* GenericStrong */ .chroma .gs { font-weight: bold } -/* GenericSubheading */ .chroma .gu { color: #75715e } diff --git a/docs/content/users.md b/docs/users.md similarity index 100% rename from docs/content/users.md rename to docs/users.md diff --git a/go.mod b/go.mod index c03d8cea50..19c09e8383 100644 --- a/go.mod +++ b/go.mod @@ -14,6 +14,7 @@ require ( github.com/pelletier/go-toml v1.6.0 // indirect github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee // indirect github.com/prometheus/procfs v0.0.8 // indirect + github.com/restic/calens v0.2.0 // indirect github.com/spf13/afero v1.2.2 // indirect github.com/spf13/cast v1.3.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/go.sum b/go.sum index c65fd61313..5b68fcdd26 100644 --- a/go.sum +++ b/go.sum @@ -33,6 +33,12 @@ github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvd github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= +github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/semver/v3 v3.0.2 h1:tRi7ENs+AaOUCH+j6qwNQgPYfV26dX3JNonq+V4mhqc= +github.com/Masterminds/semver/v3 v3.0.2/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/Masterminds/sprig/v3 v3.0.1 h1:RuaOafp+8qOLUPX1lInLfUrLc1MEVbnz7a40RLoixKY= +github.com/Masterminds/sprig/v3 v3.0.1/go.mod h1:Cp7HwZjmqKrC+Y7XqSJOU2yRvAJRGLiohfgz5ZJj8+4= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= @@ -183,6 +189,7 @@ github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEK github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM= +github.com/go-test/deep v1.0.1 h1:UQhStjbkDClarlmv0am7OXXO4/GaPdCGiUiMTvi28sg= github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= @@ -262,8 +269,12 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5/go.mod h1:0YZ2wQSuwviXXXGUiK6zXzskyBLAbLXhamxzcFHSLoM= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/xstrings v1.2.0 h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0= +github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= +github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4FwCTKeG3oo7hrHJAoznj9nag= @@ -352,12 +363,16 @@ github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3N github.com/miekg/dns v1.1.22 h1:Jm64b3bO9kP43ddLjL2EY3Io6bmy1qGb9Xxz6TqS6rc= github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= +github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-vnc v0.0.0-20150629162542-723ed9867aed/go.mod h1:3rdaFaCv4AyBgu5ALFM0+tSuHrBh6v692nyQe3ikrq0= github.com/mitchellh/hashstructure v1.0.0 h1:ZkRJX1CyOoTkar7p/mLS5TZU4nJ1Rn/F8u9dGS02Q3Y= github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= +github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -478,6 +493,8 @@ github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKc github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/restic/calens v0.1.0 h1:RHGokdZ72dICyIz1EjEsfZwUhvNZz/zy2SawxJktdWA= github.com/restic/calens v0.1.0/go.mod h1:u67f5msOjCTDYNzOf/NoAUSdmXP03YXPCwIQLYADy5M= +github.com/restic/calens v0.2.0 h1:LVNAtmFc+Pb4ODX66qdX1T3Di1P0OTLyUsVyvM/xD7E= +github.com/restic/calens v0.2.0/go.mod h1:UXwyAKS4wsgUZGEc7NrzzygJbLsQZIo3wl+62Q1wvmU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= diff --git a/tools.go b/tools.go new file mode 100644 index 0000000000..f1911ffdcb --- /dev/null +++ b/tools.go @@ -0,0 +1,7 @@ +// +build tools + +package main + +import ( + _ "github.com/restic/calens" +) From b1da8f1b9651129c68fa0a876f8207f1ad09d132 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Tue, 25 Feb 2020 12:44:43 +0000 Subject: [PATCH 035/346] Automated changelog update [skip ci] --- CHANGELOG.md | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 943dfa3b27..efed8975a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,20 +1,20 @@ -# Changelog for unreleased +# Changelog for [unreleased] (UNRELEASED) The following sections list the changes for unreleased. ## Summary - * Fix #75: Set correct flag type in the flagsets - * Fix #68: Allow different namespaces for /webdav and /dav/files - * Chg #68: Use /home as default namespace - * Chg #1: Initial release of basic version - * Chg #6: Start multiple services with dedicated commands - * Chg #89: Storage providers now default to exposing data servers - * Enh #87: Expose owncloud storage driver config in flagset +* Bugfix #75: Set correct flag type in the flagsets +* Bugfix #68: Allow different namespaces for /webdav and /dav/files +* Change #68: Use /home as default namespace +* Change #1: Initial release of basic version +* Change #6: Start multiple services with dedicated commands +* Change #89: Storage providers now default to exposing data servers +* Enhancement #87: Expose owncloud storage driver config in flagset ## Details - * Bugfix #75: Set correct flag type in the flagsets +* Bugfix #75: Set correct flag type in the flagsets While upgrading to the micro/cli version 2 there where two instances of `StringFlag` which had not been changed to `StringSliceFlag`. This caused `ocis-reva users` and `ocis-reva @@ -23,7 +23,8 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/issues/75 https://github.com/owncloud/ocis-reva/pull/76 - * Bugfix #68: Allow different namespaces for /webdav and /dav/files + +* Bugfix #68: Allow different namespaces for /webdav and /dav/files After fbf131c the path for the "new" webdav path does not contain a username `/remote.php/dav/files/textfile0.txt`. It used to be @@ -43,7 +44,8 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/pull/68 related: - * Change #68: Use /home as default namespace + +* Change #68: Use /home as default namespace Currently, cross storage etag propagation is not yet implemented, which prevents the desktop client from detecting changes via the PROPFIND to /. / is managed by the root storage provider @@ -62,14 +64,16 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/pull/68 - * Change #1: Initial release of basic version + +* Change #1: Initial release of basic version Just prepared an initial basic version to start a reva server and start integrating with the go-micro base dextension framework of ownCloud Infinite Scale. https://github.com/owncloud/ocis-reva/issues/1 - * Change #6: Start multiple services with dedicated commands + +* Change #6: Start multiple services with dedicated commands The initial version would only allow us to use a set of reva configurations to start multiple services. We use a more opinionated set of commands to start dedicated services that allows us @@ -78,7 +82,8 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/issues/6 - * Change #89: Storage providers now default to exposing data servers + +* Change #89: Storage providers now default to exposing data servers The flags that let reva storage providers announce that they expose a data server now defaults to true: @@ -87,7 +92,8 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/issues/89 - * Enhancement #87: Expose owncloud storage driver config in flagset + +* Enhancement #87: Expose owncloud storage driver config in flagset Three new flags are now available: @@ -102,4 +108,3 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/issues/87 - From fb2e6528b35d09c5a778c055233f2703576fc272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 26 Feb 2020 14:16:24 +0100 Subject: [PATCH 036/346] add edit link MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit as per https://github.com/owncloud/owncloud.github.io/issues/2#issuecomment-590949444 Signed-off-by: Jörn Friedrich Dreyer --- docs/_index.md | 4 +++- docs/building.md | 4 +++- docs/getting-started.md | 4 +++- docs/license.md | 4 +++- docs/users.md | 4 +++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/docs/_index.md b/docs/_index.md index 0fc8bbb2cc..757f7f6f50 100644 --- a/docs/_index.md +++ b/docs/_index.md @@ -1,8 +1,10 @@ --- title: "Reva" date: 2018-05-02T00:00:00+00:00 -anchor: "ocis-reva" weight: 10 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: _index.md --- This service provides an ocis extension that wraps [reva](https://github.com/cs3org/reva/) and adds an opinionated configuration to it. diff --git a/docs/building.md b/docs/building.md index 4525f16fbe..cebab803f2 100644 --- a/docs/building.md +++ b/docs/building.md @@ -1,8 +1,10 @@ --- title: "Building" date: 2018-05-02T00:00:00+00:00 -anchor: "building" weight: 30 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: building.md --- As this project is built with Go, so you need to install that first. The installation of Go is out of the scope of this document, please follow the official documentation for [Go](https://golang.org/doc/install).To build this project you have to install Go >= v1.13. After the installation of the required tools you need to get the sources: diff --git a/docs/getting-started.md b/docs/getting-started.md index 79abfb090c..6c29217fe0 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -1,8 +1,10 @@ --- title: "Getting Started" date: 2018-05-02T00:00:00+00:00 -anchor: "getting-started" weight: 20 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: getting-started.md --- ### Installation diff --git a/docs/license.md b/docs/license.md index e6e6dcc7a8..682453354c 100644 --- a/docs/license.md +++ b/docs/license.md @@ -1,8 +1,10 @@ --- title: "License" date: 2018-05-02T00:00:00+00:00 -anchor: "license" weight: 40 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: license.md --- This project is licensed under the [Apache 2.0](https://github.com/owncloud/ocis-reva/blob/master/LICENSE) license. For the license of the used libraries you have to check the respective sources. diff --git a/docs/users.md b/docs/users.md index 02593e085b..ef5be45b68 100644 --- a/docs/users.md +++ b/docs/users.md @@ -1,8 +1,10 @@ --- title: "Users" date: 2020-01-16T00:00:00+00:00 -anchor: "users" weight: 35 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: users.md --- ### Demo driver From 4ae4099c80d5445b684740ecee931f3d700afe0c Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Mon, 2 Mar 2020 22:05:37 +0100 Subject: [PATCH 037/346] Fix Changelog template --- .drone.star | 4 ++-- Makefile | 2 +- changelog/CHANGELOG.tmpl | 13 ++++++++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.drone.star b/.drone.star index 91630751c8..559fb550fa 100644 --- a/.drone.star +++ b/.drone.star @@ -566,7 +566,7 @@ def changelog(ctx): }, { 'name': 'diff', - 'image': 'webhippie/golang:1.13', + 'image': 'owncloud/alpine:latest', 'pull': 'always', 'commands': [ 'git diff', @@ -574,7 +574,7 @@ def changelog(ctx): }, { 'name': 'output', - 'image': 'webhippie/golang:1.13', + 'image': 'owncloud/alpine:latest', 'pull': 'always', 'commands': [ 'cat CHANGELOG.md', diff --git a/Makefile b/Makefile index a8bfd2d573..fd1487c88b 100644 --- a/Makefile +++ b/Makefile @@ -58,7 +58,7 @@ sync: .PHONY: clean clean: go clean -i ./... - rm -rf $(BIN) $(DIST) + rm -rf $(BIN) $(DIST) $(HUGO) .PHONY: fmt fmt: diff --git a/changelog/CHANGELOG.tmpl b/changelog/CHANGELOG.tmpl index 0c9c645a23..0d11d225ca 100644 --- a/changelog/CHANGELOG.tmpl +++ b/changelog/CHANGELOG.tmpl @@ -1,10 +1,10 @@ {{ $allVersions := . }} {{- range $index, $changes := . }}{{ with $changes -}} +{{ if gt (len $allVersions) 1 -}} # Changelog for [{{ .Version }}] ({{ .Date }}) -The following sections list the changes for {{ .Version }}. +The following sections list the changes in ocis-reva {{ .Version }}. -{{ if gt (len $allVersions) 1 -}} {{/* creating version compare links */ -}} {{ $next := add1 $index -}} {{ if ne (len $allVersions) $next -}} @@ -23,16 +23,19 @@ The following sections list the changes for {{ .Version }}. [{{ .Version }}]: https://github.com/owncloud/ocis-reva/compare/6702be7f9045a382d40691a9bcd04f572203e9ed...v{{ .Version }} {{ end -}} -{{- end -}} +{{ else -}} +# Changes in {{ .Version }} + +{{ end -}} ## Summary {{ range $entry := .Entries }}{{ with $entry }} -* {{ .Type }} #{{ .PrimaryID }}: {{ .Title }} +* {{ .Type }} - {{ .Title }}: [#{{ .PrimaryID }}]({{ .PrimaryURL }}) {{- end }}{{ end }} ## Details {{ range $entry := .Entries }}{{ with $entry }} -* {{ .Type }} #{{ .PrimaryID }}: {{ .Title }} +* {{ .Type }} - {{ .Title }}: [#{{ .PrimaryID }}]({{ .PrimaryURL }}) {{ range $par := .Paragraphs }} {{ wrapIndent $par 80 3 }} {{ end -}} From 0b574786e182a323606fbaf45df00bed54930680 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Tue, 3 Mar 2020 12:29:07 +0000 Subject: [PATCH 038/346] Automated changelog update [skip ci] --- CHANGELOG.md | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efed8975a4..b3c45b11ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,20 +1,18 @@ -# Changelog for [unreleased] (UNRELEASED) - -The following sections list the changes for unreleased. +# Changes in unreleased ## Summary -* Bugfix #75: Set correct flag type in the flagsets -* Bugfix #68: Allow different namespaces for /webdav and /dav/files -* Change #68: Use /home as default namespace -* Change #1: Initial release of basic version -* Change #6: Start multiple services with dedicated commands -* Change #89: Storage providers now default to exposing data servers -* Enhancement #87: Expose owncloud storage driver config in flagset +* Bugfix - Set correct flag type in the flagsets: [#75](https://github.com/owncloud/ocis-reva/issues/75) +* Bugfix - Allow different namespaces for /webdav and /dav/files: [#68](https://github.com/owncloud/ocis-reva/pull/68) +* Change - Use /home as default namespace: [#68](https://github.com/owncloud/ocis-reva/pull/68) +* Change - Initial release of basic version: [#1](https://github.com/owncloud/ocis-reva/issues/1) +* Change - Start multiple services with dedicated commands: [#6](https://github.com/owncloud/ocis-reva/issues/6) +* Change - Storage providers now default to exposing data servers: [#89](https://github.com/owncloud/ocis-reva/issues/89) +* Enhancement - Expose owncloud storage driver config in flagset: [#87](https://github.com/owncloud/ocis-reva/issues/87) ## Details -* Bugfix #75: Set correct flag type in the flagsets +* Bugfix - Set correct flag type in the flagsets: [#75](https://github.com/owncloud/ocis-reva/issues/75) While upgrading to the micro/cli version 2 there where two instances of `StringFlag` which had not been changed to `StringSliceFlag`. This caused `ocis-reva users` and `ocis-reva @@ -24,7 +22,7 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/pull/76 -* Bugfix #68: Allow different namespaces for /webdav and /dav/files +* Bugfix - Allow different namespaces for /webdav and /dav/files: [#68](https://github.com/owncloud/ocis-reva/pull/68) After fbf131c the path for the "new" webdav path does not contain a username `/remote.php/dav/files/textfile0.txt`. It used to be @@ -45,7 +43,7 @@ The following sections list the changes for unreleased. related: -* Change #68: Use /home as default namespace +* Change - Use /home as default namespace: [#68](https://github.com/owncloud/ocis-reva/pull/68) Currently, cross storage etag propagation is not yet implemented, which prevents the desktop client from detecting changes via the PROPFIND to /. / is managed by the root storage provider @@ -65,7 +63,7 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/pull/68 -* Change #1: Initial release of basic version +* Change - Initial release of basic version: [#1](https://github.com/owncloud/ocis-reva/issues/1) Just prepared an initial basic version to start a reva server and start integrating with the go-micro base dextension framework of ownCloud Infinite Scale. @@ -73,7 +71,7 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/issues/1 -* Change #6: Start multiple services with dedicated commands +* Change - Start multiple services with dedicated commands: [#6](https://github.com/owncloud/ocis-reva/issues/6) The initial version would only allow us to use a set of reva configurations to start multiple services. We use a more opinionated set of commands to start dedicated services that allows us @@ -83,7 +81,7 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/issues/6 -* Change #89: Storage providers now default to exposing data servers +* Change - Storage providers now default to exposing data servers: [#89](https://github.com/owncloud/ocis-reva/issues/89) The flags that let reva storage providers announce that they expose a data server now defaults to true: @@ -93,7 +91,7 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis-reva/issues/89 -* Enhancement #87: Expose owncloud storage driver config in flagset +* Enhancement - Expose owncloud storage driver config in flagset: [#87](https://github.com/owncloud/ocis-reva/issues/87) Three new flags are now available: From e70e0c9176fb621fd295d636f3ed7f76019127e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 6 Mar 2020 12:17:28 +0100 Subject: [PATCH 039/346] update reva to v0.0.2-0.20200212114015-0dbce24f7e8b (#91) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- changelog/unreleased/pull-91.md | 9 + go.mod | 5 +- go.sum | 23 +- pkg/command/authbasic.go | 14 +- pkg/command/authbearer.go | 14 +- pkg/command/frontend.go | 53 +--- pkg/command/gateway.go | 31 +- pkg/command/sharing.go | 14 +- pkg/command/storagehome.go | 30 +- pkg/command/storagehomedata.go | 18 +- pkg/command/storageoc.go | 31 +- pkg/command/storageocdata.go | 18 +- pkg/command/storageroot.go | 30 +- pkg/command/users.go | 14 +- pkg/config/config.go | 15 +- pkg/flagset/gateway.go | 27 +- pkg/flagset/server.go | 507 -------------------------------- pkg/flagset/storagehome.go | 34 ++- pkg/flagset/storagehomedata.go | 27 +- pkg/flagset/storageoc.go | 34 ++- pkg/flagset/storageocdata.go | 27 +- pkg/flagset/storageroot.go | 33 ++- 22 files changed, 244 insertions(+), 764 deletions(-) create mode 100755 changelog/unreleased/pull-91.md delete mode 100644 pkg/flagset/server.go diff --git a/changelog/unreleased/pull-91.md b/changelog/unreleased/pull-91.md new file mode 100755 index 0000000000..62cf7f720f --- /dev/null +++ b/changelog/unreleased/pull-91.md @@ -0,0 +1,9 @@ +Enhancement: update reva to v0.0.2-0.20200212114015-0dbce24f7e8b + +Reva has seen a lot of changes that allow us to +- reduce the configuration overhead +- use the autocreato home folder option +- use the home folder path layout option +- no longer start the root storage + +Related: https://github.com/owncloud/ocis-reva/pull/91 diff --git a/go.mod b/go.mod index 19c09e8383..6450ad3b74 100644 --- a/go.mod +++ b/go.mod @@ -4,8 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e // indirect - github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5 + github.com/cs3org/reva v0.0.2-0.20200212114015-0dbce24f7e8b github.com/gofrs/uuid v3.2.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 @@ -14,7 +13,7 @@ require ( github.com/pelletier/go-toml v1.6.0 // indirect github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee // indirect github.com/prometheus/procfs v0.0.8 // indirect - github.com/restic/calens v0.2.0 // indirect + github.com/restic/calens v0.2.0 github.com/spf13/afero v1.2.2 // indirect github.com/spf13/cast v1.3.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/go.sum b/go.sum index 5b68fcdd26..ad34f753cc 100644 --- a/go.sum +++ b/go.sum @@ -67,8 +67,8 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee h1:3T/l+vMotQ7cDSLWNAn2Vg1SAQ3mdyLgBWWBitSS3uU= github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt4WATGGgae9mURNGQQqxAudPKrxfsbSDSGOso+g= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.28.2 h1:j5IXG9CdyLfcVfICqo1PXVv+rua+QQHbkXuvuU/JF+8= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.28.13 h1:JyCQQ86yil3hg7MtWdNH8Pbcgx92qlUV2v22Km63Mf4= +github.com/aws/aws-sdk-go v1.28.13/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -115,6 +115,8 @@ github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/etcd v3.3.18+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk= +github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -127,12 +129,10 @@ github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMEl github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83 h1:9bcp1jc6+36XUfuOae/w0BVrbzeVKBp/OqhTfCal40U= -github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83/go.mod h1:IsVGyZrOLUQD48JIhlM/xb3Vz6He5o2+W0ZTfUGY+IU= -github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e h1:cPcpOoPLdsIV2Bw1xMJCIw4ZAejtQqA6J0U56YHOJeQ= -github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5 h1:PkGon9KVtcApu462KRAmFV3iKHOk0S0CRoEzoar4eyE= -github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5/go.mod h1:Hk3eCcdhtv4eIhKvRK736fQuOyS1HuHnUcz0Dq6NK1A= +github.com/cs3org/go-cs3apis v0.0.0-20200115100126-824a5f718250 h1:N/WWs9OegcgFlsUo7/iahxq+e3luhZKu0B8wLrWBsTQ= +github.com/cs3org/go-cs3apis v0.0.0-20200115100126-824a5f718250/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/reva v0.0.2-0.20200212114015-0dbce24f7e8b h1:8kfSFbzmolP/ZAm455PsAjD5qSqpESryEjpK0ceAWS0= +github.com/cs3org/reva v0.0.2-0.20200212114015-0dbce24f7e8b/go.mod h1:/Sg6MOumvaYkxRJJNZ0c8AvDJe+sn7MJnnxJfwY2MhE= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -215,6 +215,8 @@ github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= @@ -585,9 +587,10 @@ go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2 h1:75k/FF0Q2YM8QYo07VPddOLBslDt1MZOdEslOHvmzAs= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0 h1:OI5t8sDa1Or+q8AeE+yKeB/SDYioSHAgcVljj9JIETY= @@ -802,6 +805,8 @@ google.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= diff --git a/pkg/command/authbasic.go b/pkg/command/authbasic.go index f68478db49..04d8dff3fa 100644 --- a/pkg/command/authbasic.go +++ b/pkg/command/authbasic.go @@ -75,20 +75,12 @@ func AuthBasic(cfg *config.Config) *cli.Command { "core": map[string]interface{}{ "max_cpus": cfg.Reva.AuthBasic.MaxCPUs, }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, "grpc": map[string]interface{}{ "network": cfg.Reva.AuthBasic.Network, "address": cfg.Reva.AuthBasic.Addr, - // TODO extract interceptor config, which is the same for all grpc services - "interceptors": map[string]interface{}{ - "auth": map[string]interface{}{ - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - }, // TODO build services dynamically "services": map[string]interface{}{ "authprovider": map[string]interface{}{ diff --git a/pkg/command/authbearer.go b/pkg/command/authbearer.go index 299afb4c36..06c8f4a828 100644 --- a/pkg/command/authbearer.go +++ b/pkg/command/authbearer.go @@ -75,20 +75,12 @@ func AuthBearer(cfg *config.Config) *cli.Command { "core": map[string]interface{}{ "max_cpus": cfg.Reva.AuthBearer.MaxCPUs, }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, "grpc": map[string]interface{}{ "network": cfg.Reva.AuthBearer.Network, "address": cfg.Reva.AuthBearer.Addr, - // TODO extract interceptor config, which is the same for all grpc services - "interceptors": map[string]interface{}{ - "auth": map[string]interface{}{ - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - }, // TODO build services dynamically "services": map[string]interface{}{ "authprovider": map[string]interface{}{ diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index 5f237458b5..4d4572ad19 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -82,71 +82,30 @@ func Frontend(cfg *config.Config) *cli.Command { "core": map[string]interface{}{ "max_cpus": cfg.Reva.Frontend.MaxCPUs, }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + "gatewaysvc": cfg.Reva.Gateway.URL, // Todo or address? + }, "http": map[string]interface{}{ "network": cfg.Reva.Frontend.Network, "address": cfg.Reva.Frontend.Addr, "middlewares": map[string]interface{}{ - "auth": map[string]interface{}{ - "gateway": cfg.Reva.Gateway.URL, - "credential_chain": []string{"basic", "bearer"}, - "token_strategy": "header", - "token_writer": "header", - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, "cors": map[string]interface{}{ - "allowed_origins": []string{"*"}, - "allowed_methods": []string{ - "OPTIONS", - "GET", - "PUT", - "POST", - "DELETE", - "MKCOL", - "PROPFIND", - "PROPPATCH", - "MOVE", - "COPY", - "REPORT", - "SEARCH", - }, - "allowed_headers": []string{ - "Origin", - "Accept", - "Depth", - "Content-Type", - "X-Requested-With", - "Authorization", - "Ocs-Apirequest", - "If-Match", - "If-None-Match", - "Destination", - "Overwrite", - }, - "allow_credentials": true, - "options_passthrough": false, + "allow_credentials": true, }, }, // TODO build services dynamically "services": map[string]interface{}{ "datagateway": map[string]interface{}{ - "prefix": "data", - "gateway": "", // TODO not needed? "transfer_shared_secret": cfg.Reva.TransferSecret, }, "ocdav": map[string]interface{}{ "prefix": "", - "chunk_folder": "/var/tmp/revad/chunks", - "gateway": cfg.Reva.Gateway.URL, + "chunk_folder": "/var/tmp/reva/chunks", "files_namespace": cfg.Reva.OCDav.DavFilesNamespace, "webdav_namespace": cfg.Reva.OCDav.WebdavNamespace, }, "ocs": map[string]interface{}{ - "gateway": cfg.Reva.Gateway.URL, "config": map[string]interface{}{ "version": "1.8", "website": "reva", diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index 9019597dd3..4425e3217e 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -75,20 +75,13 @@ func Gateway(cfg *config.Config) *cli.Command { "core": map[string]interface{}{ "max_cpus": cfg.Reva.Gateway.MaxCPUs, }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + "gatewaysvc": cfg.Reva.Gateway.URL, // Todo or address? + }, "grpc": map[string]interface{}{ "network": cfg.Reva.Gateway.Network, "address": cfg.Reva.Gateway.Addr, - // TODO extract interceptor config, which is the same for all grpc services - "interceptors": map[string]interface{}{ - "auth": map[string]interface{}{ - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - }, // TODO build services dynamically "services": map[string]interface{}{ "gateway": map[string]interface{}{ @@ -104,16 +97,13 @@ func Gateway(cfg *config.Config) *cli.Command { "publicshareprovidersvc": cfg.Reva.Sharing.URL, "ocmshareprovidersvc": cfg.Reva.Sharing.URL, "commit_share_to_storage_grant": cfg.Reva.Gateway.CommitShareToStorageGrant, + "commit_share_to_storage_ref": cfg.Reva.Gateway.CommitShareToStorageRef, + "share_folder": cfg.Reva.Gateway.ShareFolder, // ShareFolder is the location where to create shares in the recipient's storage provider. // other - "datagateway": cfg.Reva.Frontend.URL, - "transfer_shared_secret": cfg.Reva.TransferSecret, - "transfer_expires": cfg.Reva.TransferExpires, - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, + "disable_home_creation_on_login": cfg.Reva.Gateway.DisableHomeCreationOnLogin, + "datagateway": cfg.Reva.Frontend.URL, + "transfer_shared_secret": cfg.Reva.TransferSecret, + "transfer_expires": cfg.Reva.TransferExpires, }, "authregistry": map[string]interface{}{ "driver": "static", @@ -130,6 +120,7 @@ func Gateway(cfg *config.Config) *cli.Command { "driver": "static", "drivers": map[string]interface{}{ "static": map[string]interface{}{ + "home_provider": cfg.Reva.StorageHome.MountPath, "rules": map[string]interface{}{ cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL, cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, diff --git a/pkg/command/sharing.go b/pkg/command/sharing.go index 123f830d91..c40e494303 100644 --- a/pkg/command/sharing.go +++ b/pkg/command/sharing.go @@ -75,20 +75,12 @@ func Sharing(cfg *config.Config) *cli.Command { "core": map[string]interface{}{ "max_cpus": cfg.Reva.Sharing.MaxCPUs, }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, "grpc": map[string]interface{}{ "network": cfg.Reva.Sharing.Network, "address": cfg.Reva.Sharing.Addr, - // TODO extract interceptor config, which is the same for all grpc services - "interceptors": map[string]interface{}{ - "auth": map[string]interface{}{ - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - }, // TODO build services dynamically "services": map[string]interface{}{ "usershareprovider": map[string]interface{}{ diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 0cc879fd6e..3a09488578 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -74,20 +74,12 @@ func StorageHome(cfg *config.Config) *cli.Command { "core": map[string]interface{}{ "max_cpus": cfg.Reva.StorageHome.MaxCPUs, }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, "grpc": map[string]interface{}{ "network": cfg.Reva.StorageHome.Network, "address": cfg.Reva.StorageHome.Addr, - // TODO extract interceptor config, which is the same for all grpc services - "interceptors": map[string]interface{}{ - "auth": map[string]interface{}{ - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - }, // TODO build services dynamically "services": map[string]interface{}{ "storageprovider": map[string]interface{}{ @@ -114,7 +106,6 @@ func StorageHome(cfg *config.Config) *cli.Command { "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, - "autocreate": cfg.Reva.Storages.OwnCloud.Autocreate, "redis": cfg.Reva.Storages.OwnCloud.Redis, }, "s3": map[string]interface{}{ @@ -126,21 +117,18 @@ func StorageHome(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.Storages.S3.Prefix, }, }, - "path_wrapper": cfg.Reva.StorageHome.PathWrapper, + "mount_path": cfg.Reva.StorageHome.MountPath, + "mount_id": cfg.Reva.StorageHome.MountID, + "expose_data_server": cfg.Reva.StorageHome.ExposeDataServer, + "path_wrapper": cfg.Reva.StorageHome.PathWrapper, "path_wrappers": map[string]interface{}{ "context": map[string]interface{}{ "prefix": cfg.Reva.StorageHome.PathWrapperContext.Prefix, }, }, - "mount_path": cfg.Reva.StorageHome.MountPath, - "mount_id": cfg.Reva.StorageHome.MountID, - "expose_data_server": cfg.Reva.StorageHome.ExposeDataServer, // TODO use cfg.Reva.StorageHomeData.URL, ? - "data_server_url": cfg.Reva.StorageHome.DataServerURL, - "available_checksums": map[string]interface{}{ - "md5": 100, - "unset": 1000, - }, + "data_server_url": cfg.Reva.StorageHome.DataServerURL, + "enable_home_creation": cfg.Reva.StorageHome.EnableHomeCreation, }, }, }, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index d4166e096c..68f2772df8 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -74,23 +74,12 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "core": map[string]interface{}{ "max_cpus": cfg.Reva.StorageHomeData.MaxCPUs, }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, "http": map[string]interface{}{ "network": cfg.Reva.StorageHomeData.Network, "address": cfg.Reva.StorageHomeData.Addr, - "middlewares": map[string]interface{}{ - "auth": map[string]interface{}{ - "gateway": cfg.Reva.Gateway.URL, - "credential_chain": []string{"basic", "bearer"}, - "token_strategy": "header", - "token_writer": "header", - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - }, // TODO build services dynamically "services": map[string]interface{}{ "dataprovider": map[string]interface{}{ @@ -118,7 +107,6 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, - "autocreate": cfg.Reva.Storages.OwnCloud.Autocreate, "redis": cfg.Reva.Storages.OwnCloud.Redis, }, "s3": map[string]interface{}{ diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index ceccc52772..266a68c86e 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -74,20 +74,12 @@ func StorageOC(cfg *config.Config) *cli.Command { "core": map[string]interface{}{ "max_cpus": cfg.Reva.StorageOC.MaxCPUs, }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, "grpc": map[string]interface{}{ "network": cfg.Reva.StorageOC.Network, "address": cfg.Reva.StorageOC.Addr, - // TODO extract interceptor config, which is the same for all grpc services - "interceptors": map[string]interface{}{ - "auth": map[string]interface{}{ - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - }, // TODO build services dynamically "services": map[string]interface{}{ "storageprovider": map[string]interface{}{ @@ -114,8 +106,8 @@ func StorageOC(cfg *config.Config) *cli.Command { "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, - "autocreate": cfg.Reva.Storages.OwnCloud.Autocreate, "redis": cfg.Reva.Storages.OwnCloud.Redis, + "layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, @@ -126,21 +118,18 @@ func StorageOC(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.Storages.S3.Prefix, }, }, - "path_wrapper": cfg.Reva.StorageOC.PathWrapper, + "mount_path": cfg.Reva.StorageOC.MountPath, + "mount_id": cfg.Reva.StorageOC.MountID, + "expose_data_server": cfg.Reva.StorageOC.ExposeDataServer, + "path_wrapper": cfg.Reva.StorageOC.PathWrapper, "path_wrappers": map[string]interface{}{ "context": map[string]interface{}{ "prefix": cfg.Reva.StorageOC.PathWrapperContext.Prefix, }, }, - "mount_path": cfg.Reva.StorageOC.MountPath, - "mount_id": cfg.Reva.StorageOC.MountID, - "expose_data_server": cfg.Reva.StorageOC.ExposeDataServer, // TODO use cfg.Reva.SStorageOCData.URL, ? - "data_server_url": cfg.Reva.StorageOC.DataServerURL, - "available_checksums": map[string]interface{}{ - "md5": 100, - "unset": 1000, - }, + "data_server_url": cfg.Reva.StorageOC.DataServerURL, + "enable_home_creation": cfg.Reva.StorageOC.EnableHomeCreation, }, }, }, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 15e06fecde..994d51d736 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -74,23 +74,12 @@ func StorageOCData(cfg *config.Config) *cli.Command { "core": map[string]interface{}{ "max_cpus": cfg.Reva.StorageOCData.MaxCPUs, }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, "http": map[string]interface{}{ "network": cfg.Reva.StorageOCData.Network, "address": cfg.Reva.StorageOCData.Addr, - "middlewares": map[string]interface{}{ - "auth": map[string]interface{}{ - "gateway": cfg.Reva.Gateway.URL, - "credential_chain": []string{"basic", "bearer"}, - "token_strategy": "header", - "token_writer": "header", - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - }, // TODO build services dynamically "services": map[string]interface{}{ "dataprovider": map[string]interface{}{ @@ -118,7 +107,6 @@ func StorageOCData(cfg *config.Config) *cli.Command { "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, - "autocreate": cfg.Reva.Storages.OwnCloud.Autocreate, "redis": cfg.Reva.Storages.OwnCloud.Redis, }, "s3": map[string]interface{}{ diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index 707c90d19b..8b20019a53 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -74,20 +74,12 @@ func StorageRoot(cfg *config.Config) *cli.Command { "core": map[string]interface{}{ "max_cpus": cfg.Reva.StorageRoot.MaxCPUs, }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, "grpc": map[string]interface{}{ "network": cfg.Reva.StorageRoot.Network, "address": cfg.Reva.StorageRoot.Addr, - // TODO extract interceptor config, which is the same for all grpc services - "interceptors": map[string]interface{}{ - "auth": map[string]interface{}{ - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - }, // TODO build services dynamically "services": map[string]interface{}{ "storageprovider": map[string]interface{}{ @@ -114,7 +106,6 @@ func StorageRoot(cfg *config.Config) *cli.Command { "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, - "autocreate": cfg.Reva.Storages.OwnCloud.Autocreate, "redis": cfg.Reva.Storages.OwnCloud.Redis, }, "s3": map[string]interface{}{ @@ -126,20 +117,17 @@ func StorageRoot(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.Storages.S3.Prefix, }, }, - "path_wrapper": cfg.Reva.StorageRoot.PathWrapper, + "mount_path": cfg.Reva.StorageRoot.MountPath, + "mount_id": cfg.Reva.StorageRoot.MountID, + "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, + "path_wrapper": cfg.Reva.StorageRoot.PathWrapper, "path_wrappers": map[string]interface{}{ "context": map[string]interface{}{ "prefix": cfg.Reva.StorageRoot.PathWrapperContext.Prefix, }, }, - "mount_path": cfg.Reva.StorageRoot.MountPath, - "mount_id": cfg.Reva.StorageRoot.MountID, - "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, - "data_server_url": cfg.Reva.StorageRoot.DataServerURL, - "available_checksums": map[string]interface{}{ - "md5": 100, - "unset": 1000, - }, + "data_server_url": cfg.Reva.StorageRoot.DataServerURL, + "enable_home_creation": cfg.Reva.StorageRoot.EnableHomeCreation, }, }, }, diff --git a/pkg/command/users.go b/pkg/command/users.go index 18682258f0..cfc2bc2926 100644 --- a/pkg/command/users.go +++ b/pkg/command/users.go @@ -74,20 +74,12 @@ func Users(cfg *config.Config) *cli.Command { "core": map[string]interface{}{ "max_cpus": cfg.Reva.Users.MaxCPUs, }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, "grpc": map[string]interface{}{ "network": cfg.Reva.Users.Network, "address": cfg.Reva.Users.Addr, - // TODO extract interceptor config, which is the same for all grpc services - "interceptors": map[string]interface{}{ - "auth": map[string]interface{}{ - "token_manager": "jwt", - "token_managers": map[string]interface{}{ - "jwt": map[string]interface{}{ - "secret": cfg.Reva.JWTSecret, - }, - }, - }, - }, // TODO build services dynamically "services": map[string]interface{}{ "userprovider": map[string]interface{}{ diff --git a/pkg/config/config.go b/pkg/config/config.go index 1bdd621e51..d65d55cdf1 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -18,7 +18,10 @@ type Debug struct { // Gateway defines the available gateway configuration. type Gateway struct { Port - CommitShareToStorageGrant bool + CommitShareToStorageGrant bool + CommitShareToStorageRef bool + ShareFolder string + DisableHomeCreationOnLogin bool } // Port defines the available port configuration. @@ -65,7 +68,7 @@ type StoragePort struct { MountID string ExposeDataServer bool DataServerURL string - // TODO checksums ... figure out what that is supposed to do + EnableHomeCreation bool // for HTTP ports with only one http service Prefix string @@ -120,6 +123,9 @@ type DriverEOS struct { // UseKeyTabAuth changes will authenticate requests by using an EOS keytab. UseKeytab bool + // EnableHome enables the creation of home directories. + EnableHome bool + // SecProtocol specifies the xrootd security protocol to use between the server and EOS. SecProtocol string @@ -128,6 +134,9 @@ type DriverEOS struct { // SingleUsername is the username to use when SingleUserMode is enabled SingleUsername string + + // Layout of the users home dir path + Layout string } // DriverLocal defines the available local storage driver configuration. @@ -139,8 +148,8 @@ type DriverLocal struct { type DriverOwnCloud struct { Datadirectory string Scan bool - Autocreate bool Redis string + Layout string } // DriverS3 defines the available S3 storage driver configuration. diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index 38bc3e036d..0640c2e01e 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -136,13 +136,34 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Usage: "--service gateway [--service authregistry]", EnvVars: []string{"REVA_GATEWAY_SERVICES"}, }, - // TODO should defaults to true. reverse logic to 'disable-share-commit'? &cli.BoolFlag{ Name: "commit-share-to-storage-grant", - Usage: "Commit shares to the share manager as well as as a grant to the storage", - EnvVars: []string{"REVA_GATEWAY_COMMIT_SHARE_TO_STRORAGE_GRANT"}, + Value: true, + Usage: "Commit shares to the share manager", + EnvVars: []string{"REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_GRANT"}, Destination: &cfg.Reva.Gateway.CommitShareToStorageGrant, }, + &cli.BoolFlag{ + Name: "commit-share-to-storage-ref", + Value: true, + // TODO clarify + Usage: "Commit shares to the storage", + EnvVars: []string{"REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_REF"}, + Destination: &cfg.Reva.Gateway.CommitShareToStorageRef, + }, + &cli.StringFlag{ + Name: "share-folder", + Value: "/", + Usage: "mount shares in this folder of the home storage provider", + EnvVars: []string{"REVA_GATEWAY_SHARE_FOLDER"}, + Destination: &cfg.Reva.Gateway.ShareFolder, + }, + &cli.BoolFlag{ + Name: "disable-home-creation-on-login", + Usage: "Disable creation of home folder on login", + EnvVars: []string{"REVA_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN"}, + Destination: &cfg.Reva.Gateway.DisableHomeCreationOnLogin, + }, // other services diff --git a/pkg/flagset/server.go b/pkg/flagset/server.go deleted file mode 100644 index db476b5911..0000000000 --- a/pkg/flagset/server.go +++ /dev/null @@ -1,507 +0,0 @@ -package flagset - -/* TODO move this into dedicated flagsets, along with storage commands - -import ( - "github.com/micro/cli" - "github.com/owncloud/ocis-reva/pkg/config" -) - -// ServerWithConfig applies cfg to the root flagset -func ServerWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - // debug ports are the odd ports - &cli.StringFlag{ - Name: "storage-eos-debug-addr", - Value: "0.0.0.0:9159", - Usage: "Address to bind storage eos debug server", - EnvVar: "REVA_STORAGE_EOS_DEBUG_ADDR", - Destination: &cfg.Reva.StorageEOS.DebugAddr, - }, - &cli.StringFlag{ - Name: "storage-eos-data-debug-addr", - Value: "0.0.0.0:9161", - Usage: "Address to bind storage eos data debug server", - EnvVar: "REVA_STORAGE_HOME_DATA_DEBUG_ADDR", - Destination: &cfg.Reva.StorageEOSData.DebugAddr, - }, - &cli.StringFlag{ - Name: "storage-s3-debug-addr", - Value: "0.0.0.0:9167", - Usage: "Address to bind storage s3 debug server", - EnvVar: "REVA_STORAGE_S3_DEBUG_ADDR", - Destination: &cfg.Reva.StorageS3.DebugAddr, - }, - &cli.StringFlag{ - Name: "storage-s3-data-debug-addr", - Value: "0.0.0.0:9169", - Usage: "Address to bind storage s3 data debug server", - EnvVar: "REVA_STORAGE_S3_DATA_DEBUG_ADDR", - Destination: &cfg.Reva.StorageS3Data.DebugAddr, - }, - &cli.StringFlag{ - Name: "storage-custom-debug-addr", - Value: "0.0.0.0:9171", - Usage: "Address to bind storage custom debug server", - EnvVar: "REVA_STORAGE_CUSTOM_DEBUG_ADDR", - Destination: &cfg.Reva.StorageCustom.DebugAddr, - }, - &cli.StringFlag{ - Name: "storage-custom-data-debug-addr", - Value: "0.0.0.0:9173", - Usage: "Address to bind storage custom data debug server", - EnvVar: "REVA_STORAGE_CUSTOM_DATA_DEBUG_ADDR", - Destination: &cfg.Reva.StorageCustomData.DebugAddr, - }, - - // Services - - // Storage eos - - &cli.StringFlag{ - Name: "storage-eos-network", - Value: "tcp", - Usage: "Network to use for the reva storage-eos service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_STORAGE_EOS_NETWORK", - Destination: &cfg.Reva.StorageEOS.Network, - }, - &cli.StringFlag{ - Name: "storage-eos-protocol", - Value: "grpc", - Usage: "protocol for reva storage-eos service, can be 'http' or 'grpc'", - EnvVar: "REVA_STORAGE_EOS_PROTOCOL", - Destination: &cfg.Reva.StorageEOS.Protocol, - }, - &cli.StringFlag{ - Name: "storage-eos-addr", - Value: "0.0.0.0:9158", - Usage: "Address to bind reva storage-eos service", - EnvVar: "REVA_STORAGE_EOS_ADDR", - Destination: &cfg.Reva.StorageEOS.Addr, - }, - &cli.StringFlag{ - Name: "storage-eos-url", - Value: "localhost:9158", - Usage: "URL to use for the reva storage-eos service", - EnvVar: "REVA_STORAGE_EOS_URL", - Destination: &cfg.Reva.StorageEOS.URL, - }, - &cli.StringFlag{ - Name: "storage-eos-services", - Value: "storageprovider", - Usage: "comma separated list of services to include in the storage-eos service", - EnvVar: "REVA_STORAGE_EOS_SERVICES", - Destination: &cfg.Reva.StorageEOS.Services, - }, - - &cli.StringFlag{ - Name: "storage-eos-driver", - Value: "local", - Usage: "eos storage driver", - EnvVar: "REVA_STORAGE_EOS_DRIVER", - Destination: &cfg.Reva.StorageEOS.Driver, - }, - &cli.StringFlag{ - Name: "storage-eos-path-wrapper", - Value: "", - Usage: "eos storage path wrapper", - EnvVar: "REVA_STORAGE_EOS_PATH_WRAPPER", - Destination: &cfg.Reva.StorageEOS.PathWrapper, - }, - &cli.StringFlag{ - Name: "storage-eos-path-wrapper-context-prefix", - Value: "", - Usage: "eos storage path wrapper context prefix", - EnvVar: "REVA_STORAGE_EOS_PATH_WRAPPER_CONTEXT_PREFIX", - Destination: &cfg.Reva.StorageEOS.PathWrapperContext.Prefix, - }, - &cli.StringFlag{ - Name: "storage-eos-mount-path", - Value: "/eos", - Usage: "eos storage mount path", - EnvVar: "REVA_STORAGE_EOS_MOUNT_PATH", - Destination: &cfg.Reva.StorageEOS.MountPath, - }, - &cli.StringFlag{ - Name: "storage-eos-mount-id", - Value: "", - Usage: "eos storage mount id", - EnvVar: "REVA_STORAGE_EOS_MOUNT_ID", - Destination: &cfg.Reva.StorageEOS.MountID, - }, - &cli.BoolFlag{ - Name: "storage-eos-expose-data-server", - Usage: "eos storage exposes a dedicated data server", - EnvVar: "REVA_STORAGE_EOS_EXPOSE_DATA_SERVER", - Destination: &cfg.Reva.StorageEOS.ExposeDataServer, - }, - &cli.StringFlag{ - Name: "storage-eos-data-server-url", - Value: "", - Usage: "eos storage data server url", - EnvVar: "REVA_STORAGE_EOS_DATA_SERVER_URL", - Destination: &cfg.Reva.StorageEOS.DataServerURL, - }, - - // Storage eos data - - &cli.StringFlag{ - Name: "storage-eos-data-network", - Value: "tcp", - Usage: "Network to use for the reva storage-eos data service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_STORAGE_EOS_DATA_NETWORK", - Destination: &cfg.Reva.StorageEOSData.Network, - }, - &cli.StringFlag{ - Name: "storage-eos-data-protocol", - Value: "http", - Usage: "protocol for reva storage-eos data service, can be 'http' or 'grpc'", - EnvVar: "REVA_STORAGE_EOS_DATA_PROTOCOL", - Destination: &cfg.Reva.StorageEOSData.Protocol, - }, - &cli.StringFlag{ - Name: "storage-eos-data-addr", - Value: "0.0.0.0:9160", - Usage: "Address to bind reva storage-eos data service", - EnvVar: "REVA_STORAGE_EOS_DATA_ADDR", - Destination: &cfg.Reva.StorageEOSData.Addr, - }, - &cli.StringFlag{ - Name: "storage-eos-data-url", - Value: "localhost:9160", - Usage: "URL to use for the reva storage-eos data service", - EnvVar: "REVA_STORAGE_EOS_DATA_URL", - Destination: &cfg.Reva.StorageEOSData.URL, - }, - &cli.StringFlag{ - Name: "storage-eos-data-services", - Value: "dataprovider", - Usage: "comma separated list of services to include in the storage-eos data service", - EnvVar: "REVA_STORAGE_EOS_DATA_SERVICES", - Destination: &cfg.Reva.StorageEOSData.Services, - }, - &cli.StringFlag{ - Name: "storage-eos-data-driver", - Value: "eos", - Usage: "eos data storage driver", - EnvVar: "REVA_STORAGE_EOS_DATA_DRIVER", - Destination: &cfg.Reva.StorageEOSData.Driver, - }, - &cli.StringFlag{ - Name: "storage-eos-data-prefix", - Value: "data", - Usage: "prefix for the http endpoint, without leading slash", - EnvVar: "REVA_STORAGE_EOS_DATA_PREFIX", - Destination: &cfg.Reva.StorageEOSData.Prefix, - }, - &cli.StringFlag{ - Name: "storage-eos-data-temp-folder", - Value: "/var/tmp/", - Usage: "storage eos data temp folder", - EnvVar: "REVA_STORAGE_HOME_DATA_TEMP_FOLDER", - Destination: &cfg.Reva.StorageEOSData.TempFolder, - }, - - // Storage s3 - - &cli.StringFlag{ - Name: "storage-s3-network", - Value: "tcp", - Usage: "Network to use for the reva storage-oc service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_STORAGE_S3_NETWORK", - Destination: &cfg.Reva.StorageS3.Network, - }, - &cli.StringFlag{ - Name: "storage-s3-protocol", - Value: "grpc", - Usage: "protocol for reva storage-s3 service, can be 'http' or 'grpc'", - EnvVar: "REVA_STORAGE_S3_PROTOCOL", - Destination: &cfg.Reva.StorageS3.Protocol, - }, - &cli.StringFlag{ - Name: "storage-s3-addr", - Value: "0.0.0.0:9166", - Usage: "Address to bind reva storage-s3 service", - EnvVar: "REVA_STORAGE_S3_ADDR", - Destination: &cfg.Reva.StorageS3.Addr, - }, - &cli.StringFlag{ - Name: "storage-s3-url", - Value: "localhost:9166", - Usage: "URL to use for the reva storage-s3 service", - EnvVar: "REVA_STORAGE_S3_URL", - Destination: &cfg.Reva.StorageS3.URL, - }, - &cli.StringFlag{ - Name: "storage-s3-services", - Value: "storageprovider", - Usage: "comma separated list of services to include in the storage-s3 service", - EnvVar: "REVA_STORAGE_S3_SERVICES", - Destination: &cfg.Reva.StorageS3.Services, - }, - - &cli.StringFlag{ - Name: "storage-s3-driver", - Value: "local", - Usage: "s3 storage driver", - EnvVar: "REVA_STORAGE_S3_DRIVER", - Destination: &cfg.Reva.StorageS3.Driver, - }, - &cli.StringFlag{ - Name: "storage-s3-path-wrapper", - Value: "", - Usage: "s3 storage path wrapper", - EnvVar: "REVA_STORAGE_S3_PATH_WRAPPER", - Destination: &cfg.Reva.StorageS3.PathWrapper, - }, - &cli.StringFlag{ - Name: "storage-s3-path-wrapper-context-prefix", - Value: "", - Usage: "s3 storage path wrapper context prefix", - EnvVar: "REVA_STORAGE_S3_PATH_WRAPPER_CONTEXT_PREFIX", - Destination: &cfg.Reva.StorageS3.PathWrapperContext.Prefix, - }, - &cli.StringFlag{ - Name: "storage-s3-mount-path", - Value: "", - Usage: "s3 storage mount path", - EnvVar: "REVA_STORAGE_S3_MOUNT_PATH", - Destination: &cfg.Reva.StorageS3.MountPath, - }, - &cli.StringFlag{ - Name: "storage-s3-mount-id", - Value: "", - Usage: "s3 storage mount id", - EnvVar: "REVA_STORAGE_S3_MOUNT_ID", - Destination: &cfg.Reva.StorageS3.MountID, - }, - &cli.BoolFlag{ - Name: "storage-s3-expose-data-server", - Usage: "s3 storage exposes a dedicated data server", - EnvVar: "REVA_STORAGE_S3_EXPOSE_DATA_SERVER", - Destination: &cfg.Reva.StorageS3.ExposeDataServer, - }, - &cli.StringFlag{ - Name: "storage-s3-data-server-url", - Value: "", - Usage: "s3 storage data server url", - EnvVar: "REVA_STORAGE_S3_DATA_SERVER_URL", - Destination: &cfg.Reva.StorageS3.DataServerURL, - }, - - // Storage s3 data - - &cli.StringFlag{ - Name: "storage-s3-data-network", - Value: "tcp", - Usage: "Network to use for the reva storage-s3 data service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_STORAGE_S3_DATA_NETWORK", - Destination: &cfg.Reva.StorageS3Data.Network, - }, - &cli.StringFlag{ - Name: "storage-s3-data-protocol", - Value: "http", - Usage: "protocol for reva storage-s3 data service, can be 'http' or 'grpc'", - EnvVar: "REVA_STORAGE_S3_DATA_PROTOCOL", - Destination: &cfg.Reva.StorageS3Data.Protocol, - }, - &cli.StringFlag{ - Name: "storage-s3-data-addr", - Value: "0.0.0.0:9168", - Usage: "Address to bind reva storage-s3 data service", - EnvVar: "REVA_STORAGE_S3_DATA_ADDR", - Destination: &cfg.Reva.StorageS3Data.Addr, - }, - &cli.StringFlag{ - Name: "storage-s3-data-url", - Value: "localhost:9168", - Usage: "URL to use for the reva storage-s3 data service", - EnvVar: "REVA_STORAGE_S3_DATA_URL", - Destination: &cfg.Reva.StorageS3Data.URL, - }, - &cli.StringFlag{ - Name: "storage-s3-data-services", - Value: "dataprovider", - Usage: "comma separated list of services to include in the storage-s3 data service", - EnvVar: "REVA_STORAGE_S3_DATA_SERVICES", - Destination: &cfg.Reva.StorageS3Data.Services, - }, - &cli.StringFlag{ - Name: "storage-s3-data-driver", - Value: "s3", - Usage: "s3 data storage driver", - EnvVar: "REVA_STORAGE_S3_DATA_DRIVER", - Destination: &cfg.Reva.StorageS3Data.Driver, - }, - &cli.StringFlag{ - Name: "storage-s3-data-prefix", - Value: "data", - Usage: "prefix for the http endpoint, without leading slash", - EnvVar: "REVA_STORAGE_S3_DATA_PREFIX", - Destination: &cfg.Reva.StorageS3Data.Prefix, - }, - &cli.StringFlag{ - Name: "storage-s3-data-temp-folder", - Value: "/var/tmp/", - Usage: "storage s3 data temp folder", - EnvVar: "REVA_STORAGE_S3_DATA_TEMP_FOLDER", - Destination: &cfg.Reva.StorageS3Data.TempFolder, - }, - - // Storage custom - - &cli.StringFlag{ - Name: "storage-custom-network", - Value: "tcp", - Usage: "Network to use for the reva storage-custom service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_STORAGE_CUSTOM_NETWORK", - Destination: &cfg.Reva.StorageCustom.Network, - }, - &cli.StringFlag{ - Name: "storage-custom-protocol", - Value: "grpc", - Usage: "protocol for reva storage-custom service, can be 'http' or 'grpc'", - EnvVar: "REVA_STORAGE_CUSTOM_PROTOCOL", - Destination: &cfg.Reva.StorageCustom.Protocol, - }, - &cli.StringFlag{ - Name: "storage-custom-addr", - Value: "0.0.0.0:9170", - Usage: "Address to bind reva storage-custom service", - EnvVar: "REVA_STORAGE_CUSTOM_ADDR", - Destination: &cfg.Reva.StorageCustom.Addr, - }, - &cli.StringFlag{ - Name: "storage-custom-url", - Value: "localhost:9170", - Usage: "URL to use for the reva storage-custom service", - EnvVar: "REVA_STORAGE_CUSTOM_URL", - Destination: &cfg.Reva.StorageCustom.URL, - }, - &cli.StringFlag{ - Name: "storage-custom-services", - Value: "storageprovider", - Usage: "comma separated list of services to include in the storage-custom service", - EnvVar: "REVA_STORAGE_CUSTOM_SERVICES", - Destination: &cfg.Reva.StorageCustom.Services, - }, - - &cli.StringFlag{ - Name: "storage-custom-driver", - Value: "local", - Usage: "custom storage driver", - EnvVar: "REVA_STORAGE_CUSTOM_DRIVER", - Destination: &cfg.Reva.StorageCustom.Driver, - }, - &cli.StringFlag{ - Name: "storage-custom-path-wrapper", - Value: "", - Usage: "custom storage path wrapper", - EnvVar: "REVA_STORAGE_CUSTOM_PATH_WRAPPER", - Destination: &cfg.Reva.StorageCustom.PathWrapper, - }, - &cli.StringFlag{ - Name: "storage-custom-path-wrapper-context-prefix", - Value: "", - Usage: "custom storage path wrapper context prefix", - EnvVar: "REVA_STORAGE_CUSTOM_PATH_WRAPPER_CONTEXT_PREFIX", - Destination: &cfg.Reva.StorageCustom.PathWrapperContext.Prefix, - }, - &cli.StringFlag{ - Name: "storage-custom-mount-path", - Value: "", - Usage: "custom storage mount path", - EnvVar: "REVA_STORAGE_CUSTOM_MOUNT_PATH", - Destination: &cfg.Reva.StorageCustom.MountPath, - }, - &cli.StringFlag{ - Name: "storage-custom-mount-id", - Value: "", - Usage: "custom storage mount id", - EnvVar: "REVA_STORAGE_CUSTOM_MOUNT_ID", - Destination: &cfg.Reva.StorageCustom.MountID, - }, - &cli.BoolFlag{ - Name: "storage-custom-expose-data-server", - Usage: "custom storage exposes a dedicated data server", - EnvVar: "REVA_STORAGE_CUSTOM_EXPOSE_DATA_SERVER", - Destination: &cfg.Reva.StorageCustom.ExposeDataServer, - }, - &cli.StringFlag{ - Name: "storage-custom-data-server-url", - Value: "", - Usage: "custom storage data server url", - EnvVar: "REVA_STORAGE_CUSTOM_DATA_SERVER_URL", - Destination: &cfg.Reva.StorageCustom.DataServerURL, - }, - - // Storage custom data - - &cli.StringFlag{ - Name: "storage-custom-data-network", - Value: "tcp", - Usage: "Network to use for the reva storage-custom data service, can be 'tcp', 'udp' or 'unix'", - EnvVar: "REVA_STORAGE_CUSTOM_DATA_NETWORK", - Destination: &cfg.Reva.StorageCustomData.Network, - }, - &cli.StringFlag{ - Name: "storage-custom-data-protocol", - Value: "http", - Usage: "protocol for reva storage-custom data service, can be 'http' or 'grpc'", - EnvVar: "REVA_STORAGE_CUSTOM_DATA_PROTOCOL", - Destination: &cfg.Reva.StorageCustomData.Protocol, - }, - &cli.StringFlag{ - Name: "storage-custom-data-addr", - Value: "0.0.0.0:9172", - Usage: "Address to bind reva storage-custom data service", - EnvVar: "REVA_STORAGE_CUSTOM_DATA_ADDR", - Destination: &cfg.Reva.StorageCustomData.Addr, - }, - &cli.StringFlag{ - Name: "storage-custom-data-url", - Value: "localhost:9172", - Usage: "URL to use for the reva storage-custom data service", - EnvVar: "REVA_STORAGE_CUSTOM_DATA_URL", - Destination: &cfg.Reva.StorageCustomData.URL, - }, - &cli.StringFlag{ - Name: "storage-custom-data-services", - Value: "dataprovider", - Usage: "comma separated list of services to include in the storage-custom data service", - EnvVar: "REVA_STORAGE_CUSTOM_DATA_SERVICES", - Destination: &cfg.Reva.StorageCustomData.Services, - }, - &cli.StringFlag{ - Name: "storage-custom-data-driver", - Value: "", - Usage: "custom data storage driver", - EnvVar: "REVA_STORAGE_CUSTOM_DATA_DRIVER", - Destination: &cfg.Reva.StorageCustomData.Driver, - }, - &cli.StringFlag{ - Name: "storage-custom-data-prefix", - Value: "data", - Usage: "prefix for the http endpoint, without leading slash", - EnvVar: "REVA_STORAGE_S3_DATA_PREFIX", - Destination: &cfg.Reva.StorageCustomData.Prefix, - }, - &cli.StringFlag{ - Name: "storage-custom-data-temp-folder", - Value: "/var/tmp/", - Usage: "storage custom data temp folder", - EnvVar: "REVA_STORAGE_CUSTOM_DATA_TEMP_FOLDER", - Destination: &cfg.Reva.StorageCustomData.TempFolder, - }, - - &cli.StringFlag{ - Name: "asset-path", - Value: "", - Usage: "Path to custom assets", - EnvVar: "REVA_ASSET_PATH", - Destination: &cfg.Asset.Path, - }, - } -} -*/ diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index d735e27e20..0c40ba94c0 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -172,6 +172,13 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageHome.DataServerURL, }, + &cli.BoolFlag{ + Name: "enable-home-creation", + Value: true, + Usage: "if enabled home dirs will be automatically created", + EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"}, + Destination: &cfg.Reva.StorageHome.EnableHomeCreation, + }, // Storage drivers @@ -243,6 +250,12 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.UseKeytab, }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", Value: "", @@ -264,6 +277,13 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, // local @@ -291,13 +311,6 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, Destination: &cfg.Reva.Storages.OwnCloud.Scan, }, - &cli.BoolFlag{ - Name: "storage-owncloud-autocreate", - Value: true, - Usage: "autocreate home path for new users", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"}, - Destination: &cfg.Reva.Storages.OwnCloud.Autocreate, - }, &cli.StringFlag{ Name: "storage-owncloud-redis", Value: ":6379", @@ -305,5 +318,12 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, Destination: &cfg.Reva.Storages.OwnCloud.Redis, }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, } } diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 12ed50a49a..6a7ed7028c 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -214,6 +214,12 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.UseKeytab, }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", Value: "", @@ -235,6 +241,13 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, // local @@ -262,13 +275,6 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, Destination: &cfg.Reva.Storages.OwnCloud.Scan, }, - &cli.BoolFlag{ - Name: "storage-owncloud-autocreate", - Value: true, - Usage: "autocreate home path for new users", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"}, - Destination: &cfg.Reva.Storages.OwnCloud.Autocreate, - }, &cli.StringFlag{ Name: "storage-owncloud-redis", Value: ":6379", @@ -276,6 +282,13 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, Destination: &cfg.Reva.Storages.OwnCloud.Redis, }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, // Gateway diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 64308a2581..95d5f875d2 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -172,6 +172,13 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageOC.DataServerURL, }, + &cli.BoolFlag{ + Name: "enable-home-creation", + // Value: true, // TODO jfd we may need to default to true here so the new webdav endpoint will autocreate user homes as well + Usage: "if enabled home dirs will be automatically created", + EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"}, + Destination: &cfg.Reva.StorageHome.EnableHomeCreation, + }, // Storage drivers @@ -243,6 +250,12 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.UseKeytab, }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", Value: "", @@ -264,6 +277,13 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, // local @@ -291,13 +311,6 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, Destination: &cfg.Reva.Storages.OwnCloud.Scan, }, - &cli.BoolFlag{ - Name: "storage-owncloud-autocreate", - Value: true, - Usage: "autocreate home path for new users", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"}, - Destination: &cfg.Reva.Storages.OwnCloud.Autocreate, - }, &cli.StringFlag{ Name: "storage-owncloud-redis", Value: ":6379", @@ -305,5 +318,12 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, Destination: &cfg.Reva.Storages.OwnCloud.Redis, }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, } } diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index e3295519da..57bea0a147 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -214,6 +214,12 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.UseKeytab, }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", Value: "", @@ -235,6 +241,13 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, // local @@ -262,13 +275,6 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, Destination: &cfg.Reva.Storages.OwnCloud.Scan, }, - &cli.BoolFlag{ - Name: "storage-owncloud-autocreate", - Value: true, - Usage: "autocreate home path for new users", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"}, - Destination: &cfg.Reva.Storages.OwnCloud.Autocreate, - }, &cli.StringFlag{ Name: "storage-owncloud-redis", Value: ":6379", @@ -276,6 +282,13 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, Destination: &cfg.Reva.Storages.OwnCloud.Redis, }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, // Gateway diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 197586aca4..27bd19a5be 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -171,6 +171,12 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_ROOT_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageRoot.DataServerURL, }, + &cli.BoolFlag{ + Name: "enable-home-creation", + Usage: "if enabled home dirs will be automatically created", + EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"}, + Destination: &cfg.Reva.StorageHome.EnableHomeCreation, + }, // Storage drivers @@ -242,6 +248,12 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.UseKeytab, }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", Value: "", @@ -263,6 +275,13 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, // local @@ -290,13 +309,6 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, Destination: &cfg.Reva.Storages.OwnCloud.Scan, }, - &cli.BoolFlag{ - Name: "storage-owncloud-autocreate", - Value: true, - Usage: "autocreate home path for new users", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"}, - Destination: &cfg.Reva.Storages.OwnCloud.Autocreate, - }, &cli.StringFlag{ Name: "storage-owncloud-redis", Value: ":6379", @@ -304,5 +316,12 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, Destination: &cfg.Reva.Storages.OwnCloud.Redis, }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, } } From 37972e9a5fce1f3beca42e17a19d27040b7ab3bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 6 Mar 2020 11:28:25 +0000 Subject: [PATCH 040/346] Automated changelog update [skip ci] --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3c45b11ba..6d96055428 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ * Change - Start multiple services with dedicated commands: [#6](https://github.com/owncloud/ocis-reva/issues/6) * Change - Storage providers now default to exposing data servers: [#89](https://github.com/owncloud/ocis-reva/issues/89) * Enhancement - Expose owncloud storage driver config in flagset: [#87](https://github.com/owncloud/ocis-reva/issues/87) +* Enhancement - Update reva to v0.0.2-0.20200212114015-0dbce24f7e8b: [#91](https://github.com/owncloud/ocis-reva/pull/91) ## Details @@ -106,3 +107,13 @@ https://github.com/owncloud/ocis-reva/issues/87 + +* Enhancement - Update reva to v0.0.2-0.20200212114015-0dbce24f7e8b: [#91](https://github.com/owncloud/ocis-reva/pull/91) + + Reva has seen a lot of changes that allow us to - reduce the configuration overhead - use the + autocreato home folder option - use the home folder path layout option - no longer start the root + storage + + https://github.com/owncloud/ocis-reva/pull/91 + related: + From 7ae8fc22f5fe7b2a1f9df818a0bdb051587d4672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Sun, 22 Mar 2020 09:56:13 +0100 Subject: [PATCH 041/346] update reva (#113) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * new ocis config Signed-off-by: Jörn Friedrich Dreyer * Change default settings to be able to run ocis server without any configuration - Konnectd uses no TLS as it is behind the proxy. - Glauth generates dev-certificates for ldap on startup if none is provided. - Glauth can launch unencrypted (9125) and encrypted (9126) port in parallel Signed-off-by: Jörn Friedrich Dreyer * allow configuring user sharing driver, default to json Signed-off-by: Jörn Friedrich Dreyer * update reva Signed-off-by: Jörn Friedrich Dreyer * switch to preferred_username as opaqueid Signed-off-by: Jörn Friedrich Dreyer * update drone config to override new defaults to match test environment Signed-off-by: Jörn Friedrich Dreyer * use latest reva Signed-off-by: Jörn Friedrich Dreyer * typo * use updatet api tests Signed-off-by: Jörn Friedrich Dreyer * core tests got merged already Signed-off-by: Jörn Friedrich Dreyer * fix changelog Signed-off-by: Jörn Friedrich Dreyer --- .drone.star | 6 +- changelog/unreleased/fix-typos.md | 5 ++ changelog/unreleased/issue-6.md | 2 +- changelog/unreleased/new-ocis-config.md | 11 +++ .../unreleased/user-sharing-driver-json.md | 5 ++ docs/testing.md | 85 +++++++++++++++++++ go.mod | 2 +- go.sum | 40 ++++++--- pkg/command/gateway.go | 2 +- pkg/command/sharing.go | 4 +- pkg/command/storagehome.go | 8 +- pkg/command/storagehomedata.go | 2 + pkg/command/storageoc.go | 9 +- pkg/command/storageocdata.go | 2 + pkg/command/storageroot.go | 14 ++- pkg/config/config.go | 24 +++--- pkg/flagset/authbasic.go | 14 +-- pkg/flagset/authbearer.go | 12 ++- pkg/flagset/frontend.go | 30 +------ pkg/flagset/gateway.go | 8 ++ pkg/flagset/sharing.go | 14 +++ pkg/flagset/storagehome.go | 21 ++--- pkg/flagset/storagehomedata.go | 7 ++ pkg/flagset/storageoc.go | 29 +++---- pkg/flagset/storageocdata.go | 7 ++ pkg/flagset/storageroot.go | 21 ++--- pkg/flagset/users.go | 16 ++-- 27 files changed, 258 insertions(+), 142 deletions(-) create mode 100644 changelog/unreleased/fix-typos.md create mode 100644 changelog/unreleased/new-ocis-config.md create mode 100644 changelog/unreleased/user-sharing-driver-json.md create mode 100644 docs/testing.md diff --git a/.drone.star b/.drone.star index 559fb550fa..4027b21f5e 100644 --- a/.drone.star +++ b/.drone.star @@ -132,8 +132,11 @@ def testing(ctx): 'pull': 'always', 'detach': True, 'environment' : { - 'REVA_USERS_DRIVER': 'ldap', 'REVA_LDAP_HOSTNAME': 'ldap', + 'REVA_LDAP_PORT': 636, + 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', + 'REVA_LDAP_BIND_PASSWORD': 'admin', + 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', 'REVA_STORAGE_LOCAL_ROOT': '/srv/app/tmp/reva/root', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', @@ -147,7 +150,6 @@ def testing(ctx): 'bin/ocis-reva auth-basic &', 'bin/ocis-reva auth-bearer &', 'bin/ocis-reva sharing &', - 'bin/ocis-reva storage-root &', 'bin/ocis-reva storage-home &', 'bin/ocis-reva storage-home-data &', 'bin/ocis-reva storage-oc &', diff --git a/changelog/unreleased/fix-typos.md b/changelog/unreleased/fix-typos.md new file mode 100644 index 0000000000..c971099dd1 --- /dev/null +++ b/changelog/unreleased/fix-typos.md @@ -0,0 +1,5 @@ +Bugfix: we fixed a typo in the `REVA_LDAP_SCHEMA_MAIL` environment variable + +It was misspelled as `REVA_LDAP_SCHEMA_Mail`. + +https://github.com/owncloud/ocis-reva/pull/113 \ No newline at end of file diff --git a/changelog/unreleased/issue-6.md b/changelog/unreleased/issue-6.md index 99aff1aa36..567c4b3c96 100644 --- a/changelog/unreleased/issue-6.md +++ b/changelog/unreleased/issue-6.md @@ -2,6 +2,6 @@ Change: start multiple services with dedicated commands The initial version would only allow us to use a set of reva configurations to start multiple services. We use a more opinionated set of commands to start dedicated services that allows us to configure them individually. -It allowcs us to switch eg. the user backend to LDAP and fully it on the cli. +It allows us to switch eg. the user backend to LDAP and fully use it on the cli. https://github.com/owncloud/ocis-reva/issues/6 \ No newline at end of file diff --git a/changelog/unreleased/new-ocis-config.md b/changelog/unreleased/new-ocis-config.md new file mode 100644 index 0000000000..f703146a82 --- /dev/null +++ b/changelog/unreleased/new-ocis-config.md @@ -0,0 +1,11 @@ +Change: default to running behind ocis-proxy + +We changed the default configuration to integrate better with ocis. + +- We use ocis-glauth as the default ldap server on port 9125 with base `dc=example,dc=org`. +- We use a dedicated technical `reva` user to make ldap binds +- Clients are supposed to use the ocis-proxy endpoint `https://localhost:9200` +- We removed unneeded ocis configuration from the frontend which no longer serves an oidc provider. +- We changed the default user OpaqueID attribute from `sub` to `preferred_username`. The latter is a claim populated by konnectd that can also be used by the reva ldap user manager to look up users by their OpaqueId + +https://github.com/owncloud/ocis-reva/pull/113 diff --git a/changelog/unreleased/user-sharing-driver-json.md b/changelog/unreleased/user-sharing-driver-json.md new file mode 100644 index 0000000000..b278da6939 --- /dev/null +++ b/changelog/unreleased/user-sharing-driver-json.md @@ -0,0 +1,5 @@ +Enhancement: Allow configuring user sharing driver + +We now default to `json` which persists shares in the sharing manager in a json file instead of an in memory db. + +https://github.com/owncloud/ocis-reva/pull/115 diff --git a/docs/testing.md b/docs/testing.md new file mode 100644 index 0000000000..aacd1f41bd --- /dev/null +++ b/docs/testing.md @@ -0,0 +1,85 @@ +--- +title: "Testing" +date: 2018-05-02T00:00:00+00:00 +weight: 37 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: testing.md +--- + + +## Acceptance tests + +We are using the ownCloud 10 acceptance testsuite against ocis. To set this up you need the owncloud 10 core repo, an ldap server that the acceptance tests can use to manage users and the ocis-reva code. + +### Getting the tests + +All you need to do to get the acceptance tests is check out the core repo: +``` +git clone https://github.com/owncloud/core.git +``` + +### Run an ldap server in a docker container + +The ownCloud 10 acceptance tests will need write permission. You can start a suitable ldap server in a docker container with: + +``` +docker run --hostname ldap.my-company.com \ + -e LDAP_TLS_VERIFY_CLIENT=never \ + -e LDAP_DOMAIN=owncloud.com \ + -e LDAP_ORGANISATION=ownCloud \ + -e LDAP_ADMIN_PASSWORD=admin \ + --name docker-slapd \ + -p 127.0.0.1:389:389 \ + -p 636:636 -d osixia/openldap +``` + +### Run ocis-reva with that ldap server + +`ocis-reva` provides multiple subcommands. To configure them all via env vars you can export these environment variables. + +``` +export REVA_USERS_DRIVER=ldap +export REVA_LDAP_HOSTNAME=localhost +export REVA_LDAP_PORT=636 +export REVA_LDAP_BASE_DN='dc=owncloud,dc=com' +export REVA_LDAP_USERFILTER='(&(objectclass=posixAccount)(cn=%s))' +export REVA_LDAP_GROUPFILTER='(&(objectclass=posixGroup)(cn=%s))' +export REVA_LDAP_BIND_DN='cn=admin,dc=owncloud,dc=com' +export REVA_LDAP_BIND_PASSWORD=admin +export REVA_LDAP_SCHEMA_UID=uid +export REVA_LDAP_SCHEMA_MAIL=mail +export REVA_LDAP_SCHEMA_DISPLAYNAME=displayName +export REVA_LDAP_SCHEMA_CN=cn +``` + +Then you need to start the ocis-reva services +``` +bin/ocis-reva frontend & \ +bin/ocis-reva gateway & \ +bin/ocis-reva auth-basic & \ +bin/ocis-reva auth-bearer & \ +bin/ocis-reva sharing & \ +bin/ocis-reva storage-home & \ +bin/ocis-reva storage-home-data & \ +bin/ocis-reva storage-oc & \ +bin/ocis-reva storage-oc-data & \ +bin/ocis-reva users & +``` + +### Run the acceptance tests + +In the ownCloud 10 core repo run + +``` +make test-acceptance-api \ +TEST_SERVER_URL=http://localhost:9140 \ +TEST_EXTERNAL_USER_BACKENDS=true \ +TEST_OCIS=true \ +OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ +BEHAT_FILTER_TAGS='~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage' +``` + +### Notes +- rerunning the tests requires wiping the users in the ldap server, otherwise the tests will fail when trying to populate the users +- users are created with usernames like `user0`, the default password is `123456` \ No newline at end of file diff --git a/go.mod b/go.mod index 6450ad3b74..c54622476f 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.0.2-0.20200212114015-0dbce24f7e8b + github.com/cs3org/reva v0.1.1-0.20200320145721-40c4334849c3 github.com/gofrs/uuid v3.2.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 diff --git a/go.sum b/go.sum index ad34f753cc..c1b3828789 100644 --- a/go.sum +++ b/go.sum @@ -35,8 +35,12 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver/v3 v3.0.2 h1:tRi7ENs+AaOUCH+j6qwNQgPYfV26dX3JNonq+V4mhqc= github.com/Masterminds/semver/v3 v3.0.2/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= +github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Masterminds/sprig/v3 v3.0.1 h1:RuaOafp+8qOLUPX1lInLfUrLc1MEVbnz7a40RLoixKY= github.com/Masterminds/sprig/v3 v3.0.1/go.mod h1:Cp7HwZjmqKrC+Y7XqSJOU2yRvAJRGLiohfgz5ZJj8+4= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= @@ -67,8 +71,8 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee h1:3T/l+vMotQ7cDSLWNAn2Vg1SAQ3mdyLgBWWBitSS3uU= github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt4WATGGgae9mURNGQQqxAudPKrxfsbSDSGOso+g= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.28.13 h1:JyCQQ86yil3hg7MtWdNH8Pbcgx92qlUV2v22Km63Mf4= -github.com/aws/aws-sdk-go v1.28.13/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.29.28 h1:4eKUDBN+v1yxpGDxxPY+FG2Abc6yJB6vvkEDRJ9jIW0= +github.com/aws/aws-sdk-go v1.29.28/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -96,6 +100,7 @@ github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wX github.com/cheggaaa/pb v1.0.28/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/cloudflare-go v0.10.2/go.mod h1:qhVI5MKwBGhdNU89ZRz2plgYutcJ5PCekLxXn56w6SY= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= @@ -129,10 +134,10 @@ github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMEl github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cs3org/go-cs3apis v0.0.0-20200115100126-824a5f718250 h1:N/WWs9OegcgFlsUo7/iahxq+e3luhZKu0B8wLrWBsTQ= -github.com/cs3org/go-cs3apis v0.0.0-20200115100126-824a5f718250/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v0.0.2-0.20200212114015-0dbce24f7e8b h1:8kfSFbzmolP/ZAm455PsAjD5qSqpESryEjpK0ceAWS0= -github.com/cs3org/reva v0.0.2-0.20200212114015-0dbce24f7e8b/go.mod h1:/Sg6MOumvaYkxRJJNZ0c8AvDJe+sn7MJnnxJfwY2MhE= +github.com/cs3org/go-cs3apis v0.0.0-20200306065539-29abc33f5be0 h1:jTKILSBtDm0GEw3FtXPxc5wxGpaw2pxzREg1GBV9LIQ= +github.com/cs3org/go-cs3apis v0.0.0-20200306065539-29abc33f5be0/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/reva v0.1.1-0.20200320145721-40c4334849c3 h1:7BfCqdqybadKHM54yat8xvmjVdZhbRpHsEkv5705ASU= +github.com/cs3org/reva v0.1.1-0.20200320145721-40c4334849c3/go.mod h1:Gbm21YRiquCdR34ATmcp6HF0IGSr/EyhSIm/jHh0ZCc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -155,6 +160,7 @@ github.com/elazarl/goproxy v0.0.0-20181003060214-f58a169a71a5/go.mod h1:/Zj4wYkg github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -187,6 +193,7 @@ github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3yg github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM= github.com/go-test/deep v1.0.1 h1:UQhStjbkDClarlmv0am7OXXO4/GaPdCGiUiMTvi28sg= @@ -217,6 +224,8 @@ github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= @@ -273,6 +282,8 @@ github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.2.0 h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= +github.com/huandu/xstrings v1.3.0 h1:gvV6jG9dTgFEncxo+AF7PH6MZXi/vZl25owA/8Dg8Wo= +github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -373,6 +384,8 @@ github.com/mitchellh/hashstructure v1.0.0 h1:ZkRJX1CyOoTkar7p/mLS5TZU4nJ1Rn/F8u9 github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.2.1 h1:pSevhhKCEjOuZHQWDBYAHxcimg60m1fGFj6atY7zAdE= +github.com/mitchellh/mapstructure v1.2.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -428,8 +441,8 @@ github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mo github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= -github.com/ory/fosite v0.30.2 h1:1HQZPXQ+PdeIe27H9Fjfvxem5uxVc/diIwUDk5XTEM4= -github.com/ory/fosite v0.30.2/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKGbN8= +github.com/ory/fosite v0.30.4 h1:2cd8qlIad58Lgz3MrVtpaaEQKDXLphYvCEClJTYPUJE= +github.com/ory/fosite v0.30.4/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKGbN8= github.com/ory/go-convenience v0.1.0 h1:zouLKfF2GoSGnJwGq+PE/nJAE6dj2Zj5QlTgmMTsTS8= github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= @@ -504,6 +517,8 @@ github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.17.2 h1:RMRHFw2+wF7LO0QqtELQwo8hqSmqISyCJeFeAAuWcRo= github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= +github.com/rs/zerolog v1.18.0 h1:CbAm3kP2Tptby1i9sYy2MGRg0uxIN9cyDb59Ys7W8z8= +github.com/rs/zerolog v1.18.0/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sacloud/libsacloud v1.26.1/go.mod h1:79ZwATmHLIFZIMd7sxA3LwzVy/B77uj3LDoToVTxDoQ= @@ -645,6 +660,7 @@ golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f h1:J5lckAjkw6qYlOZNj90mLYNTEKDvWeuc1yieZ8qUzUE= golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= @@ -672,7 +688,6 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191011234655-491137f69257/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -680,6 +695,8 @@ golang.org/x/net v0.0.0-20191027093000-83d349e8ac1a/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191109021931-daa7c04131f5/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa h1:F+8P+gmewFQYRk6JoLQLwjBCTu3mcIURZfNkVweuRKA= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -762,6 +779,7 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 h1:hKsoRgsbwY1NafxrwTs+k64 golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361 h1:RIIXAeV6GvDBuADKumTODatUqANFZ+5BPMnzsy4hulY= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -805,8 +823,8 @@ google.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0 h1:bO/TA4OxCOummhSf10siHuG7vJOiwh7SpRpFZDkOgl4= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index 4425e3217e..223114edb1 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -120,7 +120,7 @@ func Gateway(cfg *config.Config) *cli.Command { "driver": "static", "drivers": map[string]interface{}{ "static": map[string]interface{}{ - "home_provider": cfg.Reva.StorageHome.MountPath, + "home_provider": cfg.Reva.Gateway.HomeProvider, "rules": map[string]interface{}{ cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL, cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, diff --git a/pkg/command/sharing.go b/pkg/command/sharing.go index c40e494303..aa248f2426 100644 --- a/pkg/command/sharing.go +++ b/pkg/command/sharing.go @@ -84,10 +84,10 @@ func Sharing(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "usershareprovider": map[string]interface{}{ - "driver": "memory", + "driver": cfg.Reva.Sharing.UserDriver, }, "publicshareprovider": map[string]interface{}{ - "driver": "memory", + "driver": cfg.Reva.Sharing.PublicDriver, }, }, }, diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 3a09488578..5bcb098def 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -107,6 +107,8 @@ func StorageHome(cfg *config.Config) *cli.Command { "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": true, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, @@ -120,12 +122,6 @@ func StorageHome(cfg *config.Config) *cli.Command { "mount_path": cfg.Reva.StorageHome.MountPath, "mount_id": cfg.Reva.StorageHome.MountID, "expose_data_server": cfg.Reva.StorageHome.ExposeDataServer, - "path_wrapper": cfg.Reva.StorageHome.PathWrapper, - "path_wrappers": map[string]interface{}{ - "context": map[string]interface{}{ - "prefix": cfg.Reva.StorageHome.PathWrapperContext.Prefix, - }, - }, // TODO use cfg.Reva.StorageHomeData.URL, ? "data_server_url": cfg.Reva.StorageHome.DataServerURL, "enable_home_creation": cfg.Reva.StorageHome.EnableHomeCreation, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 68f2772df8..8004d05f34 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -108,6 +108,8 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index 266a68c86e..7c5c84790e 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -107,7 +107,8 @@ func StorageOC(cfg *config.Config) *cli.Command { "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, - "layout": cfg.Reva.Storages.OwnCloud.Layout, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, @@ -121,12 +122,6 @@ func StorageOC(cfg *config.Config) *cli.Command { "mount_path": cfg.Reva.StorageOC.MountPath, "mount_id": cfg.Reva.StorageOC.MountID, "expose_data_server": cfg.Reva.StorageOC.ExposeDataServer, - "path_wrapper": cfg.Reva.StorageOC.PathWrapper, - "path_wrappers": map[string]interface{}{ - "context": map[string]interface{}{ - "prefix": cfg.Reva.StorageOC.PathWrapperContext.Prefix, - }, - }, // TODO use cfg.Reva.SStorageOCData.URL, ? "data_server_url": cfg.Reva.StorageOC.DataServerURL, "enable_home_creation": cfg.Reva.StorageOC.EnableHomeCreation, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 994d51d736..e1e124e231 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -108,6 +108,8 @@ func StorageOCData(cfg *config.Config) *cli.Command { "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index 8b20019a53..23f00625f4 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -107,6 +107,8 @@ func StorageRoot(cfg *config.Config) *cli.Command { "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, @@ -117,15 +119,9 @@ func StorageRoot(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.Storages.S3.Prefix, }, }, - "mount_path": cfg.Reva.StorageRoot.MountPath, - "mount_id": cfg.Reva.StorageRoot.MountID, - "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, - "path_wrapper": cfg.Reva.StorageRoot.PathWrapper, - "path_wrappers": map[string]interface{}{ - "context": map[string]interface{}{ - "prefix": cfg.Reva.StorageRoot.PathWrapperContext.Prefix, - }, - }, + "mount_path": cfg.Reva.StorageRoot.MountPath, + "mount_id": cfg.Reva.StorageRoot.MountID, + "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, "data_server_url": cfg.Reva.StorageRoot.DataServerURL, "enable_home_creation": cfg.Reva.StorageRoot.EnableHomeCreation, }, diff --git a/pkg/config/config.go b/pkg/config/config.go index d65d55cdf1..35a1075170 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -22,6 +22,16 @@ type Gateway struct { CommitShareToStorageRef bool ShareFolder string DisableHomeCreationOnLogin bool + // include the home folder config for the storage registry + // HomeProvider is the path in the global namespace that the static storage registry uses to determine the home storage + HomeProvider string +} + +// Sharing defines the available sharing configuration. +type Sharing struct { + Port + UserDriver string + PublicDriver string } // Port defines the available port configuration. @@ -53,17 +63,10 @@ type Users struct { JSON string } -// PathWrapperContext defines the available PathWrapperContext configuration. -type PathWrapperContext struct { - Prefix string -} - // StoragePort defines the available storage configuration. type StoragePort struct { Port Driver string - PathWrapper string - PathWrapperContext PathWrapperContext MountPath string MountID string ExposeDataServer bool @@ -147,9 +150,10 @@ type DriverLocal struct { // DriverOwnCloud defines the available ownCloud storage driver configuration. type DriverOwnCloud struct { Datadirectory string - Scan bool - Redis string Layout string + Redis string + Scan bool + EnableHome bool } // DriverS3 defines the available S3 storage driver configuration. @@ -212,7 +216,7 @@ type Reva struct { Users Users AuthBasic Port AuthBearer Port - Sharing Port + Sharing Sharing StorageRoot StoragePort StorageHome StoragePort StorageHomeData StoragePort diff --git a/pkg/flagset/authbasic.go b/pkg/flagset/authbasic.go index 8d43865617..59cb01e5f3 100644 --- a/pkg/flagset/authbasic.go +++ b/pkg/flagset/authbasic.go @@ -86,7 +86,7 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "users-driver", - Value: "demo", + Value: "ldap", Usage: "user driver: 'demo', 'json' or 'ldap'", EnvVars: []string{"REVA_USERS_DRIVER"}, Destination: &cfg.Reva.Users.Driver, @@ -110,14 +110,14 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { }, &cli.IntFlag{ Name: "ldap-port", - Value: 636, + Value: 9126, Usage: "LDAP port", EnvVars: []string{"REVA_LDAP_PORT"}, Destination: &cfg.Reva.LDAP.Port, }, &cli.StringFlag{ Name: "ldap-base-dn", - Value: "dc=owncloud,dc=com", + Value: "dc=example,dc=org", Usage: "LDAP basedn", EnvVars: []string{"REVA_LDAP_BASE_DN"}, Destination: &cfg.Reva.LDAP.BaseDN, @@ -138,14 +138,14 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "ldap-bind-dn", - Value: "cn=admin,dc=owncloud,dc=com", + Value: "cn=reva,ou=sysusers,dc=example,dc=org", Usage: "LDAP bind dn", EnvVars: []string{"REVA_LDAP_BIND_DN"}, Destination: &cfg.Reva.LDAP.BindDN, }, &cli.StringFlag{ Name: "ldap-bind-password", - Value: "admin", + Value: "reva", Usage: "LDAP bind password", EnvVars: []string{"REVA_LDAP_BIND_PASSWORD"}, Destination: &cfg.Reva.LDAP.BindPassword, @@ -162,12 +162,12 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { Name: "ldap-schema-mail", Value: "mail", Usage: "LDAP schema mail", - EnvVars: []string{"REVA_LDAP_SCHEMA_Mail"}, + EnvVars: []string{"REVA_LDAP_SCHEMA_MAIL"}, Destination: &cfg.Reva.LDAP.Schema.Mail, }, &cli.StringFlag{ Name: "ldap-schema-displayName", - Value: "displayName", + Value: "sn", Usage: "LDAP schema displayName", EnvVars: []string{"REVA_LDAP_SCHEMA_DISPLAYNAME"}, Destination: &cfg.Reva.LDAP.Schema.DisplayName, diff --git a/pkg/flagset/authbearer.go b/pkg/flagset/authbearer.go index 51180ce983..c01dcbc0f0 100644 --- a/pkg/flagset/authbearer.go +++ b/pkg/flagset/authbearer.go @@ -86,7 +86,7 @@ func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "oidc-issuer", - Value: "https://localhost:9130", + Value: "https://localhost:9200", Usage: "OIDC issuer", EnvVars: []string{"REVA_OIDC_ISSUER"}, Destination: &cfg.Reva.OIDC.Issuer, @@ -99,8 +99,14 @@ func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.OIDC.Insecure, }, &cli.StringFlag{ - Name: "oidc-id-claim", - Value: "sub", // sub is stable and defined as unique. the user manager needs to take care of the sub to user metadata lookup + Name: "oidc-id-claim", + // preferred_username is a workaround + // the user manager needs to take care of the sub to user metadata lookup, which ldap cannot do + // TODO sub is stable and defined as unique. + // AFAICT we want to use the account id from ocis-accounts + // TODO add an ocis middleware to reva that changes the users opaqueid? + // TODO add an ocis-accounts backed user manager + Value: "preferred_username", Usage: "OIDC id claim", EnvVars: []string{"REVA_OIDC_ID_CLAIM"}, Destination: &cfg.Reva.OIDC.IDClaim, diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index 4d4751132d..ac660f3383 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -109,32 +109,6 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.OCDav.DavFilesNamespace, }, - // OIDC - - &cli.StringFlag{ - Name: "oidc-issuer", - Value: "https://localhost:9130", - Usage: "OIDC issuer", - EnvVars: []string{"REVA_OIDC_ISSUER"}, - Destination: &cfg.Reva.OIDC.Issuer, - }, - &cli.BoolFlag{ - Name: "oidc-insecure", - Value: true, - Usage: "OIDC allow insecure communication", - EnvVars: []string{"REVA_OIDC_INSECURE"}, - Destination: &cfg.Reva.OIDC.Insecure, - }, - &cli.StringFlag{ - Name: "oidc-id-claim", - Value: "sub", // sub is stable and defined as unique. the user manager needs to take care of the sub to user metadata lookup - Usage: "OIDC id claim", - EnvVars: []string{"REVA_OIDC_ID_CLAIM"}, - Destination: &cfg.Reva.OIDC.IDClaim, - }, - - // TODO allow configuring clients - // Services // Frontend @@ -169,8 +143,8 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringSliceFlag{ Name: "service", - Value: cli.NewStringSlice("datagateway", "wellknown", "oidcprovider", "ocdav", "ocs"), - Usage: "--service datagateway [--service wellknown]", + Value: cli.NewStringSlice("datagateway", "ocdav", "ocs"), + Usage: "--service ocdav [--service ocs]", EnvVars: []string{"REVA_FRONTEND_SERVICES"}, }, diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index 0640c2e01e..acbe80718b 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -169,6 +169,14 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { // storage registry + &cli.StringFlag{ + Name: "storage-home-provider", + Value: "/home", + Usage: "mount point of the storage provider for user homes in the global namespace", + EnvVars: []string{"REVA_STORAGE_HOME_PROVIDER"}, + Destination: &cfg.Reva.Gateway.HomeProvider, + }, + &cli.StringFlag{ Name: "frontend-url", Value: "localhost:9140", diff --git a/pkg/flagset/sharing.go b/pkg/flagset/sharing.go index 97003f0b99..f9babdc144 100644 --- a/pkg/flagset/sharing.go +++ b/pkg/flagset/sharing.go @@ -120,5 +120,19 @@ func SharingWithConfig(cfg *config.Config) []cli.Flag { Usage: "--service usershareprovider [--service publicshareprovider]", EnvVars: []string{"REVA_SHARING_SERVICES"}, }, + &cli.StringFlag{ + Name: "user-driver", + Value: "json", + Usage: "driver to use for the UserShareProvider", + EnvVars: []string{"REVA_SHARING_USER_DRIVER"}, + Destination: &cfg.Reva.Sharing.UserDriver, + }, + &cli.StringFlag{ + Name: "public-driver", + Value: "memory", + Usage: "driver to use for the PublicShareProvider", + EnvVars: []string{"REVA_SHARING_PUBLIC_DRIVER"}, + Destination: &cfg.Reva.Sharing.PublicDriver, + }, } } diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index 0c40ba94c0..0719cbc8e1 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -130,20 +130,6 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DRIVER"}, Destination: &cfg.Reva.StorageHome.Driver, }, - &cli.StringFlag{ - Name: "path-wrapper", - Value: "context", - Usage: "path wrapper", - EnvVars: []string{"REVA_STORAGE_HOME_PATH_WRAPPER"}, - Destination: &cfg.Reva.StorageHome.PathWrapper, - }, - &cli.StringFlag{ - Name: "path-wrapper-context-prefix", - Value: "", - Usage: "path wrapper context prefix", - EnvVars: []string{"REVA_STORAGE_HOME_PATH_WRAPPER_CONTEXT_PREFIX"}, - Destination: &cfg.Reva.StorageHome.PathWrapperContext.Prefix, - }, &cli.StringFlag{ Name: "mount-path", Value: "/home", @@ -318,6 +304,13 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, Destination: &cfg.Reva.Storages.OwnCloud.Redis, }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: true, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, &cli.StringFlag{ Name: "storage-owncloud-layout", Value: "{{.Username}}", diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 6a7ed7028c..610d73db3d 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -282,6 +282,13 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, Destination: &cfg.Reva.Storages.OwnCloud.Redis, }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: true, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, &cli.StringFlag{ Name: "storage-owncloud-layout", Value: "{{.Username}}", diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 95d5f875d2..6845365b74 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -130,20 +130,6 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DRIVER"}, Destination: &cfg.Reva.StorageOC.Driver, }, - &cli.StringFlag{ - Name: "path-wrapper", - Value: "", - Usage: "path wrapper", - EnvVars: []string{"REVA_STORAGE_OC_PATH_WRAPPER"}, - Destination: &cfg.Reva.StorageOC.PathWrapper, - }, - &cli.StringFlag{ - Name: "path-wrapper-context-prefix", - Value: "", - Usage: "path wrapper context prefix", - EnvVars: []string{"REVA_STORAGE_OC_PATH_WRAPPER_CONTEXT_PREFIX"}, - Destination: &cfg.Reva.StorageOC.PathWrapperContext.Prefix, - }, &cli.StringFlag{ Name: "mount-path", Value: "/oc", @@ -173,11 +159,11 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.StorageOC.DataServerURL, }, &cli.BoolFlag{ - Name: "enable-home-creation", - // Value: true, // TODO jfd we may need to default to true here so the new webdav endpoint will autocreate user homes as well + Name: "enable-home-creation", + Value: false, Usage: "if enabled home dirs will be automatically created", - EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"}, - Destination: &cfg.Reva.StorageHome.EnableHomeCreation, + EnvVars: []string{"REVA_STORAGE_OC_ENABLE_HOME_CREATION"}, + Destination: &cfg.Reva.StorageOC.EnableHomeCreation, }, // Storage drivers @@ -318,6 +304,13 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, Destination: &cfg.Reva.Storages.OwnCloud.Redis, }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: false, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, &cli.StringFlag{ Name: "storage-owncloud-layout", Value: "{{.Username}}", diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index 57bea0a147..e811a326d2 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -282,6 +282,13 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, Destination: &cfg.Reva.Storages.OwnCloud.Redis, }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: false, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, &cli.StringFlag{ Name: "storage-owncloud-layout", Value: "{{.Username}}", diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 27bd19a5be..5b81de4839 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -130,20 +130,6 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_ROOT_DRIVER"}, Destination: &cfg.Reva.StorageRoot.Driver, }, - &cli.StringFlag{ - Name: "path-wrapper", - Value: "", - Usage: "path wrapper", - EnvVars: []string{"REVA_STORAGE_ROOT_PATH_WRAPPER"}, - Destination: &cfg.Reva.StorageRoot.PathWrapper, - }, - &cli.StringFlag{ - Name: "path-wrapper-context-prefix", - Value: "", - Usage: "path wrapper context prefix", - EnvVars: []string{"REVA_STORAGE_ROOT_PATH_WRAPPER_CONTEXT_PREFIX"}, - Destination: &cfg.Reva.StorageRoot.PathWrapperContext.Prefix, - }, &cli.StringFlag{ Name: "mount-path", Value: "/", @@ -316,6 +302,13 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, Destination: &cfg.Reva.Storages.OwnCloud.Redis, }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: false, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, &cli.StringFlag{ Name: "storage-owncloud-layout", Value: "{{.Username}}", diff --git a/pkg/flagset/users.go b/pkg/flagset/users.go index 7d5cebbb66..2c935fdd3b 100644 --- a/pkg/flagset/users.go +++ b/pkg/flagset/users.go @@ -93,42 +93,42 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { }, &cli.IntFlag{ Name: "ldap-port", - Value: 636, + Value: 9126, Usage: "LDAP port", EnvVars: []string{"REVA_LDAP_PORT"}, Destination: &cfg.Reva.LDAP.Port, }, &cli.StringFlag{ Name: "ldap-base-dn", - Value: "dc=owncloud,dc=com", + Value: "dc=example,dc=org", Usage: "LDAP basedn", EnvVars: []string{"REVA_LDAP_BASE_DN"}, Destination: &cfg.Reva.LDAP.BaseDN, }, &cli.StringFlag{ Name: "ldap-userfilter", - Value: "(&(objectclass=posixAccount)(cn=%s))", + Value: "(&(objectclass=posixAccount)(cn=%s*))", Usage: "LDAP userfilter", EnvVars: []string{"REVA_LDAP_USERFILTER"}, Destination: &cfg.Reva.LDAP.UserFilter, }, &cli.StringFlag{ Name: "ldap-groupfilter", - Value: "(&(objectclass=posixGroup)(cn=%s))", + Value: "(&(objectclass=posixGroup)(cn=%s*))", Usage: "LDAP groupfilter", EnvVars: []string{"REVA_LDAP_GROUPFILTER"}, Destination: &cfg.Reva.LDAP.GroupFilter, }, &cli.StringFlag{ Name: "ldap-bind-dn", - Value: "cn=admin,dc=owncloud,dc=com", + Value: "cn=reva,ou=sysusers,dc=example,dc=org", Usage: "LDAP bind dn", EnvVars: []string{"REVA_LDAP_BIND_DN"}, Destination: &cfg.Reva.LDAP.BindDN, }, &cli.StringFlag{ Name: "ldap-bind-password", - Value: "admin", + Value: "reva", Usage: "LDAP bind password", EnvVars: []string{"REVA_LDAP_BIND_PASSWORD"}, Destination: &cfg.Reva.LDAP.BindPassword, @@ -150,7 +150,7 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "ldap-schema-displayName", - Value: "displayName", + Value: "sn", Usage: "LDAP schema displayName", EnvVars: []string{"REVA_LDAP_SCHEMA_DISPLAYNAME"}, Destination: &cfg.Reva.LDAP.Schema.DisplayName, @@ -204,7 +204,7 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "driver", - Value: "demo", + Value: "ldap", Usage: "user driver: 'demo', 'json' or 'ldap'", EnvVars: []string{"REVA_USERS_DRIVER"}, Destination: &cfg.Reva.Users.Driver, From 7aecc110148fb739addaf2ca0322a10f4e86bb8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Sun, 22 Mar 2020 09:07:08 +0000 Subject: [PATCH 042/346] Automated changelog update [skip ci] --- CHANGELOG.md | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d96055428..8911b5a23c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,13 +3,16 @@ ## Summary * Bugfix - Set correct flag type in the flagsets: [#75](https://github.com/owncloud/ocis-reva/issues/75) +* Bugfix - We fixed a typo in the `REVA_LDAP_SCHEMA_MAIL` environment variable: [#113](https://github.com/owncloud/ocis-reva/pull/113) * Bugfix - Allow different namespaces for /webdav and /dav/files: [#68](https://github.com/owncloud/ocis-reva/pull/68) * Change - Use /home as default namespace: [#68](https://github.com/owncloud/ocis-reva/pull/68) * Change - Initial release of basic version: [#1](https://github.com/owncloud/ocis-reva/issues/1) * Change - Start multiple services with dedicated commands: [#6](https://github.com/owncloud/ocis-reva/issues/6) * Change - Storage providers now default to exposing data servers: [#89](https://github.com/owncloud/ocis-reva/issues/89) +* Change - Default to running behind ocis-proxy: [#113](https://github.com/owncloud/ocis-reva/pull/113) * Enhancement - Expose owncloud storage driver config in flagset: [#87](https://github.com/owncloud/ocis-reva/issues/87) * Enhancement - Update reva to v0.0.2-0.20200212114015-0dbce24f7e8b: [#91](https://github.com/owncloud/ocis-reva/pull/91) +* Enhancement - Allow configuring user sharing driver: [#115](https://github.com/owncloud/ocis-reva/pull/115) ## Details @@ -23,6 +26,13 @@ https://github.com/owncloud/ocis-reva/pull/76 +* Bugfix - We fixed a typo in the `REVA_LDAP_SCHEMA_MAIL` environment variable: [#113](https://github.com/owncloud/ocis-reva/pull/113) + + It was misspelled as `REVA_LDAP_SCHEMA_Mail`. + + https://github.com/owncloud/ocis-reva/pull/113 + + * Bugfix - Allow different namespaces for /webdav and /dav/files: [#68](https://github.com/owncloud/ocis-reva/pull/68) After fbf131c the path for the "new" webdav path does not contain a username @@ -76,8 +86,8 @@ The initial version would only allow us to use a set of reva configurations to start multiple services. We use a more opinionated set of commands to start dedicated services that allows us - to configure them individually. It allowcs us to switch eg. the user backend to LDAP and fully it - on the cli. + to configure them individually. It allows us to switch eg. the user backend to LDAP and fully use + it on the cli. https://github.com/owncloud/ocis-reva/issues/6 @@ -92,6 +102,20 @@ https://github.com/owncloud/ocis-reva/issues/89 +* Change - Default to running behind ocis-proxy: [#113](https://github.com/owncloud/ocis-reva/pull/113) + + We changed the default configuration to integrate better with ocis. + + - We use ocis-glauth as the default ldap server on port 9125 with base `dc=example,dc=org`. - We + use a dedicated technical `reva` user to make ldap binds - Clients are supposed to use the + ocis-proxy endpoint `https://localhost:9200` - We removed unneeded ocis configuration + from the frontend which no longer serves an oidc provider. - We changed the default user + OpaqueID attribute from `sub` to `preferred_username`. The latter is a claim populated by + konnectd that can also be used by the reva ldap user manager to look up users by their OpaqueId + + https://github.com/owncloud/ocis-reva/pull/113 + + * Enhancement - Expose owncloud storage driver config in flagset: [#87](https://github.com/owncloud/ocis-reva/issues/87) Three new flags are now available: @@ -117,3 +141,11 @@ https://github.com/owncloud/ocis-reva/pull/91 related: + +* Enhancement - Allow configuring user sharing driver: [#115](https://github.com/owncloud/ocis-reva/pull/115) + + We now default to `json` which persists shares in the sharing manager in a json file instead of an + in memory db. + + https://github.com/owncloud/ocis-reva/pull/115 + From bf3de8a4dc4d9564bd7f0b06c74b0ccc1fca585a Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Mon, 23 Mar 2020 08:26:41 +0100 Subject: [PATCH 043/346] Release 0.1.0 --- changelog/{unreleased => 0.1.0_2020-03-23}/76.md | 0 .../{unreleased => 0.1.0_2020-03-23}/change-default-namespace.md | 0 changelog/{unreleased => 0.1.0_2020-03-23}/fix-typos.md | 0 changelog/{unreleased => 0.1.0_2020-03-23}/initial-release.md | 0 changelog/{unreleased => 0.1.0_2020-03-23}/issue-6.md | 0 changelog/{unreleased => 0.1.0_2020-03-23}/issue-87.md | 0 changelog/{unreleased => 0.1.0_2020-03-23}/issue-89.md | 0 changelog/{unreleased => 0.1.0_2020-03-23}/new-ocis-config.md | 0 changelog/{unreleased => 0.1.0_2020-03-23}/pull-77.md | 0 changelog/{unreleased => 0.1.0_2020-03-23}/pull-91.md | 0 .../{unreleased => 0.1.0_2020-03-23}/user-sharing-driver-json.md | 0 11 files changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.1.0_2020-03-23}/76.md (100%) rename changelog/{unreleased => 0.1.0_2020-03-23}/change-default-namespace.md (100%) rename changelog/{unreleased => 0.1.0_2020-03-23}/fix-typos.md (100%) rename changelog/{unreleased => 0.1.0_2020-03-23}/initial-release.md (100%) rename changelog/{unreleased => 0.1.0_2020-03-23}/issue-6.md (100%) rename changelog/{unreleased => 0.1.0_2020-03-23}/issue-87.md (100%) rename changelog/{unreleased => 0.1.0_2020-03-23}/issue-89.md (100%) rename changelog/{unreleased => 0.1.0_2020-03-23}/new-ocis-config.md (100%) rename changelog/{unreleased => 0.1.0_2020-03-23}/pull-77.md (100%) rename changelog/{unreleased => 0.1.0_2020-03-23}/pull-91.md (100%) rename changelog/{unreleased => 0.1.0_2020-03-23}/user-sharing-driver-json.md (100%) diff --git a/changelog/unreleased/76.md b/changelog/0.1.0_2020-03-23/76.md similarity index 100% rename from changelog/unreleased/76.md rename to changelog/0.1.0_2020-03-23/76.md diff --git a/changelog/unreleased/change-default-namespace.md b/changelog/0.1.0_2020-03-23/change-default-namespace.md similarity index 100% rename from changelog/unreleased/change-default-namespace.md rename to changelog/0.1.0_2020-03-23/change-default-namespace.md diff --git a/changelog/unreleased/fix-typos.md b/changelog/0.1.0_2020-03-23/fix-typos.md similarity index 100% rename from changelog/unreleased/fix-typos.md rename to changelog/0.1.0_2020-03-23/fix-typos.md diff --git a/changelog/unreleased/initial-release.md b/changelog/0.1.0_2020-03-23/initial-release.md similarity index 100% rename from changelog/unreleased/initial-release.md rename to changelog/0.1.0_2020-03-23/initial-release.md diff --git a/changelog/unreleased/issue-6.md b/changelog/0.1.0_2020-03-23/issue-6.md similarity index 100% rename from changelog/unreleased/issue-6.md rename to changelog/0.1.0_2020-03-23/issue-6.md diff --git a/changelog/unreleased/issue-87.md b/changelog/0.1.0_2020-03-23/issue-87.md similarity index 100% rename from changelog/unreleased/issue-87.md rename to changelog/0.1.0_2020-03-23/issue-87.md diff --git a/changelog/unreleased/issue-89.md b/changelog/0.1.0_2020-03-23/issue-89.md similarity index 100% rename from changelog/unreleased/issue-89.md rename to changelog/0.1.0_2020-03-23/issue-89.md diff --git a/changelog/unreleased/new-ocis-config.md b/changelog/0.1.0_2020-03-23/new-ocis-config.md similarity index 100% rename from changelog/unreleased/new-ocis-config.md rename to changelog/0.1.0_2020-03-23/new-ocis-config.md diff --git a/changelog/unreleased/pull-77.md b/changelog/0.1.0_2020-03-23/pull-77.md similarity index 100% rename from changelog/unreleased/pull-77.md rename to changelog/0.1.0_2020-03-23/pull-77.md diff --git a/changelog/unreleased/pull-91.md b/changelog/0.1.0_2020-03-23/pull-91.md similarity index 100% rename from changelog/unreleased/pull-91.md rename to changelog/0.1.0_2020-03-23/pull-91.md diff --git a/changelog/unreleased/user-sharing-driver-json.md b/changelog/0.1.0_2020-03-23/user-sharing-driver-json.md similarity index 100% rename from changelog/unreleased/user-sharing-driver-json.md rename to changelog/0.1.0_2020-03-23/user-sharing-driver-json.md From 98612fc6112d97394e50f4838309c52e871bbe92 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Mon, 23 Mar 2020 07:38:59 +0000 Subject: [PATCH 044/346] Automated changelog update [skip ci] --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8911b5a23c..dd95fc38fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Changes in unreleased +# Changes in 0.1.0 ## Summary From adef72f76f0d93b5867857cb4edece0c12e8150a Mon Sep 17 00:00:00 2001 From: Dipak Acharya Date: Thu, 26 Mar 2020 11:41:09 +0545 Subject: [PATCH 045/346] [Tests-only] Run litmus test in CI --- .drone.star | 25 ++++++++++++++++++++ tests/data/testusers.ldif | 49 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 tests/data/testusers.ldif diff --git a/.drone.star b/.drone.star index 4027b21f5e..0ddb18278d 100644 --- a/.drone.star +++ b/.drone.star @@ -187,6 +187,31 @@ def testing(ctx): }, ] }, + { + 'name': 'import-litmus-users', + 'image': 'emeraldsquad/ldapsearch', + 'pull': 'always', + 'commands': [ + 'ldapadd -h ldap -p 389 -D "cn=admin,dc=owncloud,dc=com" -w admin -f ./tests/data/testusers.ldif', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'litmus', + 'image': 'owncloud/litmus:latest', + 'pull': 'always', + 'environment' : { + 'LITMUS_URL': 'http://reva-server:9140/remote.php/webdav', + 'LITMUS_USERNAME': 'tu1', + 'LITMUS_PASSWORD': '1234', + 'TESTS': 'basic http' + }, + }, ], 'services': [ { diff --git a/tests/data/testusers.ldif b/tests/data/testusers.ldif new file mode 100644 index 0000000000..3e9f7e941c --- /dev/null +++ b/tests/data/testusers.ldif @@ -0,0 +1,49 @@ +dn: ou=TestUsers,dc=owncloud,dc=com +objectclass: top +objectclass: organizationalUnit +ou: TestUsers + +dn: ou=TestGroups,dc=owncloud,dc=com +objectclass: top +objectclass: organizationalUnit +ou: TestGroups + +dn: cn=grp1,ou=TestGroups,dc=owncloud,dc=com +cn: grp1 +gidnumber: 500 +memberuid: tu1 +memberuid: tu2 +objectclass: top +objectclass: posixGroup + +dn: uid=tu1,ou=TestUsers,dc=owncloud,dc=com +cn: TU1 +sn: Owane +displayname: User Owane +gecos: TU1 +gidnumber: 5000 +givenname: TU1 +homedirectory: /home/openldap/tu1 +loginshell: /bin/bash +mail: tu1@example.org +objectclass: posixAccount +objectclass: inetOrgPerson +uid: tu1 +uidnumber: 30001 +userpassword: 1234 + +dn: uid=tu2,ou=TestUsers,dc=owncloud,dc=com +cn: TU2 +sn: Towu +displayname: User Towu +gecos: TU2 +gidnumber: 5000 +givenname: TU2 +homedirectory: /home/openldap/tu2 +loginshell: /bin/bash +mail: tu2@example.org +objectclass: posixAccount +objectclass: inetOrgPerson +uid: tu2 +uidnumber: 30002 +userpassword: AaBb2Cc3Dd4 From 9ef00931a5457dc5157ccbde12f4d670746e1669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 31 Mar 2020 08:45:18 +0200 Subject: [PATCH 046/346] fix eos config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- changelog/unreleased/fix-eos-config.md | 5 +++++ pkg/command/storagehome.go | 2 ++ pkg/command/storagehomedata.go | 2 ++ pkg/command/storageoc.go | 2 ++ pkg/command/storageocdata.go | 2 ++ pkg/command/storageroot.go | 2 ++ 6 files changed, 15 insertions(+) create mode 100644 changelog/unreleased/fix-eos-config.md diff --git a/changelog/unreleased/fix-eos-config.md b/changelog/unreleased/fix-eos-config.md new file mode 100644 index 0000000000..e0e9ed645d --- /dev/null +++ b/changelog/unreleased/fix-eos-config.md @@ -0,0 +1,5 @@ +Bugfix: Fix eos config + +We have added missing config options for the home layout to the config struct that is passed to eos. + +https://github.com/owncloud/ocis-reva/pull/125 diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 5bcb098def..628ffb9934 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -99,6 +99,8 @@ func StorageHome(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "enable_home": true, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ "root": cfg.Reva.Storages.Local.Root, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 8004d05f34..3f31e84fab 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -100,6 +100,8 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ "root": cfg.Reva.Storages.Local.Root, diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index 7c5c84790e..3f8619177f 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -99,6 +99,8 @@ func StorageOC(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ "root": cfg.Reva.Storages.Local.Root, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index e1e124e231..109859d46c 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -100,6 +100,8 @@ func StorageOCData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ "root": cfg.Reva.Storages.Local.Root, diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index 23f00625f4..935c697317 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -99,6 +99,8 @@ func StorageRoot(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ "root": cfg.Reva.Storages.Local.Root, From 7cdf5aa30664f6aca87ba513b4d91010ed9a3275 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Tue, 31 Mar 2020 12:44:51 +0000 Subject: [PATCH 047/346] Automated changelog update [skip ci] --- CHANGELOG.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd95fc38fc..5cd5ccd526 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,27 @@ -# Changes in 0.1.0 +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.1.0...master + +## Summary + +* Bugfix - Fix eos config: [#125](https://github.com/owncloud/ocis-reva/pull/125) + +## Details + +* Bugfix - Fix eos config: [#125](https://github.com/owncloud/ocis-reva/pull/125) + + We have added missing config options for the home layout to the config struct that is passed to + eos. + + https://github.com/owncloud/ocis-reva/pull/125 + +# Changelog for [0.1.0] (2020-03-23) + +The following sections list the changes in ocis-reva 0.1.0. + +[0.1.0]: https://github.com/owncloud/ocis-reva/compare/6702be7f9045a382d40691a9bcd04f572203e9ed...v0.1.0 ## Summary From ebc083f3537f6ffc94560dd6be793ca80bf61ea9 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Tue, 31 Mar 2020 14:49:38 +0200 Subject: [PATCH 048/346] prepare Release v0.1.1 --- changelog/{unreleased => 0.1.1_2020-03-23}/fix-eos-config.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.1.1_2020-03-23}/fix-eos-config.md (100%) diff --git a/changelog/unreleased/fix-eos-config.md b/changelog/0.1.1_2020-03-23/fix-eos-config.md similarity index 100% rename from changelog/unreleased/fix-eos-config.md rename to changelog/0.1.1_2020-03-23/fix-eos-config.md From a1c9b816c86a99b6f4638babd2420dfb3e458d1d Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Tue, 31 Mar 2020 14:51:01 +0200 Subject: [PATCH 049/346] fix release date --- changelog/0.1.1_2020-03-23/fix-eos-config.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 changelog/0.1.1_2020-03-23/fix-eos-config.md diff --git a/changelog/0.1.1_2020-03-23/fix-eos-config.md b/changelog/0.1.1_2020-03-23/fix-eos-config.md deleted file mode 100644 index e0e9ed645d..0000000000 --- a/changelog/0.1.1_2020-03-23/fix-eos-config.md +++ /dev/null @@ -1,5 +0,0 @@ -Bugfix: Fix eos config - -We have added missing config options for the home layout to the config struct that is passed to eos. - -https://github.com/owncloud/ocis-reva/pull/125 From fea5f21bb03db47219571299c362a7e4af3d9b7c Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Tue, 31 Mar 2020 13:05:43 +0000 Subject: [PATCH 050/346] Automated changelog update [skip ci] --- CHANGELOG.md | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cd5ccd526..dd95fc38fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,27 +1,4 @@ -# Changelog for [unreleased] (UNRELEASED) - -The following sections list the changes in ocis-reva unreleased. - -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.1.0...master - -## Summary - -* Bugfix - Fix eos config: [#125](https://github.com/owncloud/ocis-reva/pull/125) - -## Details - -* Bugfix - Fix eos config: [#125](https://github.com/owncloud/ocis-reva/pull/125) - - We have added missing config options for the home layout to the config struct that is passed to - eos. - - https://github.com/owncloud/ocis-reva/pull/125 - -# Changelog for [0.1.0] (2020-03-23) - -The following sections list the changes in ocis-reva 0.1.0. - -[0.1.0]: https://github.com/owncloud/ocis-reva/compare/6702be7f9045a382d40691a9bcd04f572203e9ed...v0.1.0 +# Changes in 0.1.0 ## Summary From 1b6596cb6de39f66677ce7beca2bfd1b99119e01 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Tue, 31 Mar 2020 15:06:39 +0200 Subject: [PATCH 051/346] Add new version changelog --- changelog/0.1.1_2020-03-31/fix-eos-config.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelog/0.1.1_2020-03-31/fix-eos-config.md diff --git a/changelog/0.1.1_2020-03-31/fix-eos-config.md b/changelog/0.1.1_2020-03-31/fix-eos-config.md new file mode 100644 index 0000000000..e0e9ed645d --- /dev/null +++ b/changelog/0.1.1_2020-03-31/fix-eos-config.md @@ -0,0 +1,5 @@ +Bugfix: Fix eos config + +We have added missing config options for the home layout to the config struct that is passed to eos. + +https://github.com/owncloud/ocis-reva/pull/125 From b092e9a2a8c810771a1b3f5d6eb133f62f92b9b5 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Tue, 31 Mar 2020 13:18:00 +0000 Subject: [PATCH 052/346] Automated changelog update [skip ci] --- CHANGELOG.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd95fc38fc..4b1b56d50c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,27 @@ -# Changes in 0.1.0 +# Changelog for [0.1.1] (2020-03-31) + +The following sections list the changes in ocis-reva 0.1.1. + +[0.1.1]: https://github.com/owncloud/ocis-reva/compare/v0.1.0...v0.1.1 + +## Summary + +* Bugfix - Fix eos config: [#125](https://github.com/owncloud/ocis-reva/pull/125) + +## Details + +* Bugfix - Fix eos config: [#125](https://github.com/owncloud/ocis-reva/pull/125) + + We have added missing config options for the home layout to the config struct that is passed to + eos. + + https://github.com/owncloud/ocis-reva/pull/125 + +# Changelog for [0.1.0] (2020-03-23) + +The following sections list the changes in ocis-reva 0.1.0. + +[0.1.0]: https://github.com/owncloud/ocis-reva/compare/6702be7f9045a382d40691a9bcd04f572203e9ed...v0.1.0 ## Summary From 8e33804ba79e5c4dfbbc1c6814edcdc5f3d00bae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 14 Apr 2020 12:59:16 +0200 Subject: [PATCH 053/346] fix eos config (#127) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix eos config Signed-off-by: Jörn Friedrich Dreyer * fix ldap idp config Signed-off-by: Jörn Friedrich Dreyer * set default file for user share manager json driver Signed-off-by: Jörn Friedrich Dreyer * update reva Signed-off-by: Jörn Friedrich Dreyer * update reva Signed-off-by: Jörn Friedrich Dreyer * fix user layouts and owncloud driver frontend dav prefix Signed-off-by: Jörn Friedrich Dreyer * fix acceptance tests Signed-off-by: Jörn Friedrich Dreyer --- .drone.star | 5 +- changelog/unreleased/fix-eos-config.md | 5 + go.mod | 2 +- go.sum | 35 +-- pkg/command/gateway.go | 2 +- pkg/command/sharing.go | 5 + pkg/command/storageeos.go | 206 +++++++++++++++ pkg/command/storageeosdata.go | 202 +++++++++++++++ pkg/command/storagehome.go | 2 + pkg/command/storagehomedata.go | 2 + pkg/command/storageoc.go | 2 + pkg/command/storageocdata.go | 2 + pkg/config/config.go | 8 + pkg/flagset/authbasic.go | 7 + pkg/flagset/gateway.go | 49 ++-- pkg/flagset/sharing.go | 7 + pkg/flagset/storageeos.go | 333 +++++++++++++++++++++++++ pkg/flagset/storageeosdata.go | 321 ++++++++++++++++++++++++ pkg/flagset/storagehome.go | 34 ++- pkg/flagset/storagehomedata.go | 28 ++- pkg/flagset/storageoc.go | 18 +- pkg/flagset/storageocdata.go | 16 +- pkg/flagset/storageroot.go | 2 +- pkg/flagset/users.go | 7 + 24 files changed, 1236 insertions(+), 64 deletions(-) create mode 100644 changelog/unreleased/fix-eos-config.md create mode 100644 pkg/command/storageeos.go create mode 100644 pkg/command/storageeosdata.go create mode 100644 pkg/flagset/storageeos.go create mode 100644 pkg/flagset/storageeosdata.go diff --git a/.drone.star b/.drone.star index 0ddb18278d..1913e2f693 100644 --- a/.drone.star +++ b/.drone.star @@ -137,11 +137,12 @@ def testing(ctx): 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', 'REVA_LDAP_BIND_PASSWORD': 'admin', 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', + 'REVA_LDAP_SCHEMA_DISPLAYNAME': 'displayName', 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', - 'REVA_STORAGE_LOCAL_ROOT': '/srv/app/tmp/reva/root', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', - 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379' + 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', + 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json' }, 'commands': [ 'mkdir -p /srv/app/tmp/reva', diff --git a/changelog/unreleased/fix-eos-config.md b/changelog/unreleased/fix-eos-config.md new file mode 100644 index 0000000000..e0e9ed645d --- /dev/null +++ b/changelog/unreleased/fix-eos-config.md @@ -0,0 +1,5 @@ +Bugfix: Fix eos config + +We have added missing config options for the home layout to the config struct that is passed to eos. + +https://github.com/owncloud/ocis-reva/pull/125 diff --git a/go.mod b/go.mod index c54622476f..7c2186cd32 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200320145721-40c4334849c3 + github.com/cs3org/reva v0.1.1-0.20200409120332-3642312a10a1 github.com/gofrs/uuid v3.2.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 diff --git a/go.sum b/go.sum index c1b3828789..d98c3e3b7a 100644 --- a/go.sum +++ b/go.sum @@ -71,8 +71,8 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee h1:3T/l+vMotQ7cDSLWNAn2Vg1SAQ3mdyLgBWWBitSS3uU= github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt4WATGGgae9mURNGQQqxAudPKrxfsbSDSGOso+g= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.29.28 h1:4eKUDBN+v1yxpGDxxPY+FG2Abc6yJB6vvkEDRJ9jIW0= -github.com/aws/aws-sdk-go v1.29.28/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= +github.com/aws/aws-sdk-go v1.30.7 h1:IaXfqtioP6p9SFAnNfsqdNczbR5UNbYqvcZUSsCAdTY= +github.com/aws/aws-sdk-go v1.30.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -134,10 +134,10 @@ github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMEl github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cs3org/go-cs3apis v0.0.0-20200306065539-29abc33f5be0 h1:jTKILSBtDm0GEw3FtXPxc5wxGpaw2pxzREg1GBV9LIQ= -github.com/cs3org/go-cs3apis v0.0.0-20200306065539-29abc33f5be0/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v0.1.1-0.20200320145721-40c4334849c3 h1:7BfCqdqybadKHM54yat8xvmjVdZhbRpHsEkv5705ASU= -github.com/cs3org/reva v0.1.1-0.20200320145721-40c4334849c3/go.mod h1:Gbm21YRiquCdR34ATmcp6HF0IGSr/EyhSIm/jHh0ZCc= +github.com/cs3org/go-cs3apis v0.0.0-20200408065125-6e23f3ecec0a h1:+enFdliTCV/aaLAvLmeka/r9wUoEypngV4JD5Gy92Uc= +github.com/cs3org/go-cs3apis v0.0.0-20200408065125-6e23f3ecec0a/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/reva v0.1.1-0.20200409120332-3642312a10a1 h1:1dtbY/ZxOcxTFpMzjIyneSOc/2kFPV77NqTF+Wuaqyg= +github.com/cs3org/reva v0.1.1-0.20200409120332-3642312a10a1/go.mod h1:baGkmcec/4WxTux30nbIz05RWKaueMGTkDihcVxLp8Y= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -217,6 +217,8 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.3 h1:GV+pQPG/EUUbkh47niozDcADz6go/dUwhVzdUQHIVRw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -294,6 +296,8 @@ github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4Fw github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2yCeUc= +github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/joncalhoun/qson v0.0.0-20170526102502-8a9cab3a62b1/go.mod h1:DFXrEwSRX0p/aSvxE21319menCBFeQO0jXpRj7LEZUA= @@ -384,8 +388,8 @@ github.com/mitchellh/hashstructure v1.0.0 h1:ZkRJX1CyOoTkar7p/mLS5TZU4nJ1Rn/F8u9 github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.2.1 h1:pSevhhKCEjOuZHQWDBYAHxcimg60m1fGFj6atY7zAdE= -github.com/mitchellh/mapstructure v1.2.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.2.2 h1:dxe5oCinTXiTIcfgmZecdCzPmAJKd46KsCWc35r0TV4= +github.com/mitchellh/mapstructure v1.2.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -441,8 +445,8 @@ github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mo github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= -github.com/ory/fosite v0.30.4 h1:2cd8qlIad58Lgz3MrVtpaaEQKDXLphYvCEClJTYPUJE= -github.com/ory/fosite v0.30.4/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKGbN8= +github.com/ory/fosite v0.31.0 h1:NZ0FA4ywPEYrCGLNVBAz2dq8vTacLDbbO4Iiy68WCKQ= +github.com/ory/fosite v0.31.0/go.mod h1:lSSqjo8Kr/U1P3kJWxsNGHmq7TnH/7pS1ijvQRT7G+g= github.com/ory/go-convenience v0.1.0 h1:zouLKfF2GoSGnJwGq+PE/nJAE6dj2Zj5QlTgmMTsTS8= github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= @@ -564,6 +568,8 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= @@ -623,7 +629,6 @@ go.uber.org/zap v1.12.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= golang.org/x/crypto v0.0.0-20180621125126-a49355c7e3f8/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -671,7 +676,6 @@ golang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -745,6 +749,7 @@ golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4 h1:Hynbrlo6LbYI3H1IqXpkVDOcX golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7 h1:/W9OPMnnpmFXHYkcp2rQsbFUbRlRzfECQjmAFiOyHE8= golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= @@ -823,8 +828,8 @@ google.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0 h1:bO/TA4OxCOummhSf10siHuG7vJOiwh7SpRpFZDkOgl4= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.28.1 h1:C1QC6KzgSiLyBabDi87BbjaGreoRgGUF5nOyvfrAZ1k= +google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= @@ -878,5 +883,7 @@ honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXe honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index 223114edb1..18fc496543 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -125,7 +125,7 @@ func Gateway(cfg *config.Config) *cli.Command { cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL, cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, cfg.Reva.StorageHome.MountPath: cfg.Reva.StorageHome.URL, - // home has no lookup by mount id because it resolves to another storage + // the home storage has no mount id. In responses it returns the mount id of the actual storage cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL, cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL, cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL, diff --git a/pkg/command/sharing.go b/pkg/command/sharing.go index aa248f2426..9bee63b605 100644 --- a/pkg/command/sharing.go +++ b/pkg/command/sharing.go @@ -85,6 +85,11 @@ func Sharing(cfg *config.Config) *cli.Command { "services": map[string]interface{}{ "usershareprovider": map[string]interface{}{ "driver": cfg.Reva.Sharing.UserDriver, + "drivers": map[string]interface{}{ + "json": map[string]interface{}{ + "file": cfg.Reva.Sharing.UserJSONFile, + }, + }, }, "publicshareprovider": map[string]interface{}{ "driver": cfg.Reva.Sharing.PublicDriver, diff --git a/pkg/command/storageeos.go b/pkg/command/storageeos.go new file mode 100644 index 0000000000..de5aca86b9 --- /dev/null +++ b/pkg/command/storageeos.go @@ -0,0 +1,206 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli/v2" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// StorageEOS is the entrypoint for the storage-eos command. +func StorageEOS(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "storage-eos", + Usage: "Start reva storage-eos service", + Flags: flagset.StorageEOSWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.StorageEOS.Services = c.StringSlice("service") + + return nil + }, + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.StorageEOS.MaxCPUs, + }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.StorageEOS.Network, + "address": cfg.Reva.StorageEOS.Addr, + // TODO build services dynamically + "services": map[string]interface{}{ + "storageprovider": map[string]interface{}{ + "driver": cfg.Reva.StorageEOS.Driver, + "drivers": map[string]interface{}{ + "eos": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, + }, + "local": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + }, + "owncloud": map[string]interface{}{ + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + }, + "s3": map[string]interface{}{ + "region": cfg.Reva.Storages.S3.Region, + "access_key": cfg.Reva.Storages.S3.AccessKey, + "secret_key": cfg.Reva.Storages.S3.SecretKey, + "endpoint": cfg.Reva.Storages.S3.Endpoint, + "bucket": cfg.Reva.Storages.S3.Bucket, + "prefix": cfg.Reva.Storages.S3.Prefix, + }, + }, + "mount_path": cfg.Reva.StorageEOS.MountPath, + "mount_id": cfg.Reva.StorageEOS.MountID, + "expose_data_server": cfg.Reva.StorageEOS.ExposeDataServer, + // TODO use cfg.Reva.SStorageEOSData.URL, ? + "data_server_url": cfg.Reva.StorageEOS.DataServerURL, + "enable_home_creation": cfg.Reva.StorageEOS.EnableHomeCreation, + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.StorageEOS.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", c.Command.Name+"-debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/storageeosdata.go b/pkg/command/storageeosdata.go new file mode 100644 index 0000000000..262fc7f71c --- /dev/null +++ b/pkg/command/storageeosdata.go @@ -0,0 +1,202 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli/v2" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// StorageEOSData is the entrypoint for the storage-oc-data command. +func StorageEOSData(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "storage-oc-data", + Usage: "Start reva storage-oc-data service", + Flags: flagset.StorageEOSDataWithConfig(cfg), + Before: func(c *cli.Context) error { + cfg.Reva.StorageEOSData.Services = c.StringSlice("service") + + return nil + }, + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.StorageEOSData.MaxCPUs, + }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, + "http": map[string]interface{}{ + "network": cfg.Reva.StorageEOSData.Network, + "address": cfg.Reva.StorageEOSData.Addr, + // TODO build services dynamically + "services": map[string]interface{}{ + "dataprovider": map[string]interface{}{ + "prefix": cfg.Reva.StorageEOSData.Prefix, + "driver": cfg.Reva.StorageEOSData.Driver, + "drivers": map[string]interface{}{ + "eos": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, + }, + "local": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + }, + "owncloud": map[string]interface{}{ + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + }, + "s3": map[string]interface{}{ + "region": cfg.Reva.Storages.S3.Region, + "access_key": cfg.Reva.Storages.S3.AccessKey, + "secret_key": cfg.Reva.Storages.S3.SecretKey, + "endpoint": cfg.Reva.Storages.S3.Endpoint, + "bucket": cfg.Reva.Storages.S3.Bucket, + "prefix": cfg.Reva.Storages.S3.Prefix, + }, + }, + "temp_folder": cfg.Reva.StorageEOSData.TempFolder, + }, + }, + }, + } + + gr.Add(func() error { + runtime.Run(rcfg, pidFile) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.StorageEOSData.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", c.Command.Name+"-debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 628ffb9934..c97ac938b9 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -87,6 +87,8 @@ func StorageHome(cfg *config.Config) *cli.Command { "drivers": map[string]interface{}{ "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, "master_url": cfg.Reva.Storages.EOS.MasterURL, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 3f31e84fab..56b7d37419 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -89,6 +89,8 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, "master_url": cfg.Reva.Storages.EOS.MasterURL, "slave_url": cfg.Reva.Storages.EOS.SlaveURL, diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index 3f8619177f..b0c8d5f7e8 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -87,6 +87,8 @@ func StorageOC(cfg *config.Config) *cli.Command { "drivers": map[string]interface{}{ "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, "master_url": cfg.Reva.Storages.EOS.MasterURL, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 109859d46c..60d864ab8d 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -88,6 +88,8 @@ func StorageOCData(cfg *config.Config) *cli.Command { "drivers": map[string]interface{}{ "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, "master_url": cfg.Reva.Storages.EOS.MasterURL, diff --git a/pkg/config/config.go b/pkg/config/config.go index 35a1075170..3de35cc4d1 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -31,6 +31,7 @@ type Gateway struct { type Sharing struct { Port UserDriver string + UserJSONFile string PublicDriver string } @@ -92,6 +93,13 @@ type DriverEOS struct { // Namespace for metadata operations Namespace string + // ShadowNamespace for storing shadow data + ShadowNamespace string + + // ShareFolder defines the name of the folder in the + // shadowed namespace. Ex: /eos/user/.shadow/h/hugo/MyShares + ShareFolder string + // Location of the eos binary. // Default is /usr/bin/eos. EosBinary string diff --git a/pkg/flagset/authbasic.go b/pkg/flagset/authbasic.go index 59cb01e5f3..7e0ee8f68b 100644 --- a/pkg/flagset/authbasic.go +++ b/pkg/flagset/authbasic.go @@ -150,6 +150,13 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_LDAP_BIND_PASSWORD"}, Destination: &cfg.Reva.LDAP.BindPassword, }, + &cli.StringFlag{ + Name: "ldap-idp", + Value: "https://localhost:9200", + Usage: "Identity provider to use for users", + EnvVars: []string{"REVA_LDAP_IDP"}, + Destination: &cfg.Reva.LDAP.IDP, + }, // ldap dn is always the dn &cli.StringFlag{ Name: "ldap-schema-uid", diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index acbe80718b..20c4fe6f11 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -137,8 +137,9 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_GATEWAY_SERVICES"}, }, &cli.BoolFlag{ - Name: "commit-share-to-storage-grant", - Value: true, + Name: "commit-share-to-storage-grant", + Value: true, + // TODO clarify Usage: "Commit shares to the share manager", EnvVars: []string{"REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_GRANT"}, Destination: &cfg.Reva.Gateway.CommitShareToStorageGrant, @@ -153,7 +154,7 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "share-folder", - Value: "/", + Value: "Shares", Usage: "mount shares in this folder of the home storage provider", EnvVars: []string{"REVA_GATEWAY_SHARE_FOLDER"}, Destination: &cfg.Reva.Gateway.ShareFolder, @@ -229,7 +230,7 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-root-mount-id", - Value: "123e4567-e89b-12d3-a456-426655440001", + Value: "1284d238-aa92-42ce-bdc4-0b0000009152", Usage: "mount id", EnvVars: []string{"REVA_STORAGE_ROOT_MOUNT_ID"}, Destination: &cfg.Reva.StorageRoot.MountID, @@ -249,20 +250,28 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_PATH"}, Destination: &cfg.Reva.StorageHome.MountPath, }, - &cli.StringFlag{ - Name: "storage-home-mount-id", - Value: "123e4567-e89b-12d3-a456-426655440000", - Usage: "mount id", - EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_ID"}, - Destination: &cfg.Reva.StorageHome.MountID, - }, + // The home storage has no mount id. In responses it returns the mount id of the actual storage &cli.StringFlag{ - Name: "storage-home-data-url", - Value: "localhost:9156", + Name: "storage-eos-url", + Value: "localhost:9158", Usage: "URL to use for the reva service", - EnvVars: []string{"REVA_STORAGE_HOME_DATA_URL"}, - Destination: &cfg.Reva.StorageHomeData.URL, + EnvVars: []string{"REVA_STORAGE_EOS_URL"}, + Destination: &cfg.Reva.StorageEOS.URL, + }, + &cli.StringFlag{ + Name: "storage-eos-mount-path", + Value: "/eos", + Usage: "mount path", + EnvVars: []string{"REVA_STORAGE_EOS_MOUNT_PATH"}, + Destination: &cfg.Reva.StorageEOS.MountPath, + }, + &cli.StringFlag{ + Name: "storage-eos-mount-id", + Value: "1284d238-aa92-42ce-bdc4-0b0000009158", + Usage: "mount id", + EnvVars: []string{"REVA_STORAGE_EOS_MOUNT_ID"}, + Destination: &cfg.Reva.StorageEOS.MountID, }, &cli.StringFlag{ @@ -281,18 +290,10 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-oc-mount-id", - Value: "123e4567-e89b-12d3-a456-426655440000", + Value: "1284d238-aa92-42ce-bdc4-0b0000009162", Usage: "mount id", EnvVars: []string{"REVA_STORAGE_OC_MOUNT_ID"}, Destination: &cfg.Reva.StorageOC.MountID, }, - - &cli.StringFlag{ - Name: "storage-oc-data-url", - Value: "localhost:9164", - Usage: "URL to use for the reva service", - EnvVars: []string{"REVA_STORAGE_OC_DATA_URL"}, - Destination: &cfg.Reva.StorageOCData.URL, - }, } } diff --git a/pkg/flagset/sharing.go b/pkg/flagset/sharing.go index f9babdc144..61586af48d 100644 --- a/pkg/flagset/sharing.go +++ b/pkg/flagset/sharing.go @@ -127,6 +127,13 @@ func SharingWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_SHARING_USER_DRIVER"}, Destination: &cfg.Reva.Sharing.UserDriver, }, + &cli.StringFlag{ + Name: "user-json-file", + Value: "/var/tmp/reva/shares.json", + Usage: "file used to persist shares for the UserShareProvider", + EnvVars: []string{"REVA_SHARING_USER_JSON_FILE"}, + Destination: &cfg.Reva.Sharing.UserJSONFile, + }, &cli.StringFlag{ Name: "public-driver", Value: "memory", diff --git a/pkg/flagset/storageeos.go b/pkg/flagset/storageeos.go new file mode 100644 index 0000000000..450765bc5d --- /dev/null +++ b/pkg/flagset/storageeos.go @@ -0,0 +1,333 @@ +package flagset + +import ( + "os" + + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// StorageEOSWithConfig applies cfg to the root flagset +func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9159", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_EOS_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageEOS.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage oc + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVars: []string{"REVA_STORAGE_EOS_NETWORK"}, + Destination: &cfg.Reva.StorageEOS.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "grpc", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVars: []string{"REVA_STORAGE_EOS_PROTOCOL"}, + Destination: &cfg.Reva.StorageEOS.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9158", + Usage: "Address to bind reva service", + EnvVars: []string{"REVA_STORAGE_EOS_ADDR"}, + Destination: &cfg.Reva.StorageEOS.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9158", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_STORAGE_EOS_URL"}, + Destination: &cfg.Reva.StorageEOS.URL, + }, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("storageprovider"), + Usage: "--service storageprovider [--service otherservice]", + EnvVars: []string{"REVA_STORAGE_EOS_SERVICES"}, + }, + + &cli.StringFlag{ + Name: "driver", + Value: "eos", + Usage: "storage driver, eg. local, eos, owncloud or s3", + EnvVars: []string{"REVA_STORAGE_EOS_DRIVER"}, + Destination: &cfg.Reva.StorageEOS.Driver, + }, + &cli.StringFlag{ + Name: "mount-path", + Value: "/eos", + Usage: "mount path", + EnvVars: []string{"REVA_STORAGE_EOS_MOUNT_PATH"}, + Destination: &cfg.Reva.StorageEOS.MountPath, + }, + &cli.StringFlag{ + Name: "mount-id", + Value: "1284d238-aa92-42ce-bdc4-0b0000009158", + Usage: "mount id", + EnvVars: []string{"REVA_STORAGE_EOS_MOUNT_ID"}, + Destination: &cfg.Reva.StorageEOS.MountID, + }, + &cli.BoolFlag{ + Name: "expose-data-server", + Value: true, + Usage: "exposes a dedicated data server", + EnvVars: []string{"REVA_STORAGE_EOS_EXPOSE_DATA_SERVER"}, + Destination: &cfg.Reva.StorageEOS.ExposeDataServer, + }, + &cli.StringFlag{ + Name: "data-server-url", + Value: "http://localhost:9160/data", + Usage: "data server url", + EnvVars: []string{"REVA_STORAGE_EOS_DATA_SERVER_URL"}, + Destination: &cfg.Reva.StorageEOS.DataServerURL, + }, + &cli.BoolFlag{ + Name: "enable-home-creation", + Value: false, + Usage: "if enabled home dirs will be automatically created", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME_CREATION"}, + Destination: &cfg.Reva.StorageEOS.EnableHomeCreation, + }, + + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "/eos/dockertest/reva", + Usage: "Namespace for metadata operations", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "/Shares", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Master EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Slave EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Usage: "the username to use when SingleUserMode is enabled", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: false, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, + } +} diff --git a/pkg/flagset/storageeosdata.go b/pkg/flagset/storageeosdata.go new file mode 100644 index 0000000000..10d651c508 --- /dev/null +++ b/pkg/flagset/storageeosdata.go @@ -0,0 +1,321 @@ +package flagset + +import ( + "os" + + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// StorageEOSDataWithConfig applies cfg to the root flagset +func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, + + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9161", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageEOSData.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, + + // REVA + + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage eos data + + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVars: []string{"REVA_STORAGE_EOS_DATA_NETWORK"}, + Destination: &cfg.Reva.StorageEOSData.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "http", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVars: []string{"REVA_STORAGE_EOS_DATA_PROTOCOL"}, + Destination: &cfg.Reva.StorageEOSData.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9160", + Usage: "Address to bind reva service", + EnvVars: []string{"REVA_STORAGE_EOS_DATA_ADDR"}, + Destination: &cfg.Reva.StorageEOSData.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9160", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_STORAGE_EOS_DATA_URL"}, + Destination: &cfg.Reva.StorageEOSData.URL, + }, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("dataprovider"), + Usage: "--service dataprovider [--service otherservice]", + EnvVars: []string{"REVA_STORAGE_EOS_DATA_SERVICES"}, + }, + &cli.StringFlag{ + Name: "driver", + Value: "eos", + Usage: "storage driver, eg. local, eos, owncloud or s3", + EnvVars: []string{"REVA_STORAGE_EOS_DATA_DRIVER"}, + Destination: &cfg.Reva.StorageEOSData.Driver, + }, + &cli.StringFlag{ + Name: "prefix", + Value: "data", + Usage: "prefix for the http endpoint, without leading slash", + EnvVars: []string{"REVA_STORAGE_EOS_DATA_PREFIX"}, + Destination: &cfg.Reva.StorageEOSData.Prefix, + }, + &cli.StringFlag{ + Name: "temp-folder", + Value: "/var/tmp/", + Usage: "temp folder", + EnvVars: []string{"REVA_STORAGE_EOS_DATA_TEMP_FOLDER"}, + Destination: &cfg.Reva.StorageEOSData.TempFolder, + }, + + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "/eos/dockertest/reva", + Usage: "Namespace for metadata operations", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "/Shares", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Master EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Slave EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Usage: "the username to use when SingleUserMode is enabled", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: false, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, + + // Gateway + + &cli.StringFlag{ + Name: "gateway-url", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_GATEWAY_URL"}, + Destination: &cfg.Reva.Gateway.URL, + }, + } +} diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index 0719cbc8e1..aa84c76084 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -138,8 +138,10 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.StorageHome.MountPath, }, &cli.StringFlag{ - Name: "mount-id", - Value: "123e4567-e89b-12d3-a456-426655440000", + Name: "mount-id", + // This is tho mount id of the /oc storage + // set it to 1284d238-aa92-42ce-bdc4-0b0000009158 for /eos + Value: "1284d238-aa92-42ce-bdc4-0b0000009162", Usage: "mount id", EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_ID"}, Destination: &cfg.Reva.StorageHome.MountID, @@ -172,11 +174,25 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "storage-eos-namespace", - Value: "", + Value: "/eos/dockertest/reva/users", Usage: "Namespace for metadata operations", EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, Destination: &cfg.Reva.Storages.EOS.Namespace, }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "/Shares", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, &cli.StringFlag{ Name: "storage-eos-binary", Value: "/usr/bin/eos", @@ -193,14 +209,14 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-eos-master-url", - Value: "root://eos-example.org", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", Usage: "URL of the Master EOS MGM", EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, Destination: &cfg.Reva.Storages.EOS.MasterURL, }, &cli.StringFlag{ Name: "storage-eos-slave-url", - Value: "root://eos-example.org", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", Usage: "URL of the Slave EOS MGM", EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, Destination: &cfg.Reva.Storages.EOS.SlaveURL, @@ -238,35 +254,33 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { }, &cli.BoolFlag{ Name: "storage-eos-enable-home", + Value: true, Usage: "enable the creation of home directories", EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, Destination: &cfg.Reva.Storages.EOS.EnableHome, }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", - Value: "", Usage: "the xrootd security protocol to use between the server and EOS", EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, Destination: &cfg.Reva.Storages.EOS.SecProtocol, }, &cli.StringFlag{ Name: "storage-eos-keytab", - Value: "", Usage: "the location of the keytab to use to authenticate to EOS", EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.Keytab, }, &cli.StringFlag{ Name: "storage-eos-single-username", - Value: "", Usage: "the username to use when SingleUserMode is enabled", EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, &cli.StringFlag{ Name: "storage-eos-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, }, diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 610d73db3d..8b8393a651 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -150,11 +150,25 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "storage-eos-namespace", - Value: "", + Value: "/eos/dockertest/reva/users", Usage: "Namespace for metadata operations", EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, Destination: &cfg.Reva.Storages.EOS.Namespace, }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "/Shares", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, &cli.StringFlag{ Name: "storage-eos-binary", Value: "/usr/bin/eos", @@ -171,14 +185,14 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-eos-master-url", - Value: "root://eos-example.org", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", Usage: "URL of the Master EOS MGM", EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, Destination: &cfg.Reva.Storages.EOS.MasterURL, }, &cli.StringFlag{ Name: "storage-eos-slave-url", - Value: "root://eos-example.org", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", Usage: "URL of the Slave EOS MGM", EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, Destination: &cfg.Reva.Storages.EOS.SlaveURL, @@ -216,35 +230,33 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { }, &cli.BoolFlag{ Name: "storage-eos-enable-home", + Value: true, Usage: "enable the creation of home directories", EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, Destination: &cfg.Reva.Storages.EOS.EnableHome, }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", - Value: "", Usage: "the xrootd security protocol to use between the server and EOS", EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, Destination: &cfg.Reva.Storages.EOS.SecProtocol, }, &cli.StringFlag{ Name: "storage-eos-keytab", - Value: "", Usage: "the location of the keytab to use to authenticate to EOS", EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, Destination: &cfg.Reva.Storages.EOS.Keytab, }, &cli.StringFlag{ Name: "storage-eos-single-username", - Value: "", Usage: "the username to use when SingleUserMode is enabled", EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, Destination: &cfg.Reva.Storages.EOS.SingleUsername, }, &cli.StringFlag{ Name: "storage-eos-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, }, diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 6845365b74..5e45273e68 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -139,7 +139,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "mount-id", - Value: "123e4567-e89b-12d3-a456-426655440000", + Value: "1284d238-aa92-42ce-bdc4-0b0000009162", Usage: "mount id", EnvVars: []string{"REVA_STORAGE_OC_MOUNT_ID"}, Destination: &cfg.Reva.StorageOC.MountID, @@ -177,6 +177,20 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, Destination: &cfg.Reva.Storages.EOS.Namespace, }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, &cli.StringFlag{ Name: "storage-eos-binary", Value: "/usr/bin/eos", @@ -265,7 +279,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-eos-layout", - Value: "{{.Username}}", + Value: "{{substr 0 1 .Username}}/{{.Username}}", Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index e811a326d2..bb2a645adb 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -155,6 +155,20 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, Destination: &cfg.Reva.Storages.EOS.Namespace, }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, &cli.StringFlag{ Name: "storage-eos-binary", Value: "/usr/bin/eos", @@ -243,7 +257,7 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-eos-layout", - Value: "{{.Username}}", + Value: "{{substr 0 1 .Username}}/{{.Username}}", Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 5b81de4839..31b136d762 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -263,7 +263,7 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-eos-layout", - Value: "{{.Username}}", + Value: "{{substr 0 1 .Username}}/{{.Username}}", Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, diff --git a/pkg/flagset/users.go b/pkg/flagset/users.go index 2c935fdd3b..179a93ba2d 100644 --- a/pkg/flagset/users.go +++ b/pkg/flagset/users.go @@ -133,6 +133,13 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_LDAP_BIND_PASSWORD"}, Destination: &cfg.Reva.LDAP.BindPassword, }, + &cli.StringFlag{ + Name: "ldap-idp", + Value: "https://localhost:9200", + Usage: "Identity provider to use for users", + EnvVars: []string{"REVA_LDAP_IDP"}, + Destination: &cfg.Reva.LDAP.IDP, + }, // ldap dn is always the dn &cli.StringFlag{ Name: "ldap-schema-uid", From 78ead1a5d85e3c972ffdcdd611009039d97febe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 14 Apr 2020 11:09:39 +0000 Subject: [PATCH 054/346] Automated changelog update [skip ci] --- CHANGELOG.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b1b56d50c..4dd138fb7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.1.1...master + +## Summary + +* Bugfix - Fix eos config: [#125](https://github.com/owncloud/ocis-reva/pull/125) + +## Details + +* Bugfix - Fix eos config: [#125](https://github.com/owncloud/ocis-reva/pull/125) + + We have added missing config options for the home layout to the config struct that is passed to + eos. + + https://github.com/owncloud/ocis-reva/pull/125 + # Changelog for [0.1.1] (2020-03-31) The following sections list the changes in ocis-reva 0.1.1. From ca4e13e4620332c42d16f704e4aaab0e7f02df69 Mon Sep 17 00:00:00 2001 From: Ilja Neumann Date: Thu, 9 Apr 2020 19:38:48 +0200 Subject: [PATCH 055/346] Add reva-gateway endpoint to service discovery Reva can't be wrapped as a go-micro service due to private apis. We workaround byy manually registering the address and port in the service-registry. --- go.mod | 4 ++ go.sum | 29 +----------- pkg/command/gateway.go | 14 ++++++ pkg/service/external/external.go | 66 +++++++++++++++++++++++++++ pkg/service/external/external_test.go | 56 +++++++++++++++++++++++ 5 files changed, 141 insertions(+), 28 deletions(-) create mode 100644 pkg/service/external/external.go create mode 100644 pkg/service/external/external_test.go diff --git a/go.mod b/go.mod index 7c2186cd32..aa8e6ac9aa 100644 --- a/go.mod +++ b/go.mod @@ -8,6 +8,8 @@ require ( github.com/gofrs/uuid v3.2.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 + github.com/micro/go-micro v1.18.0 + github.com/micro/go-micro/v2 v2.0.0 github.com/oklog/run v1.0.0 github.com/owncloud/ocis-pkg/v2 v2.0.1 github.com/pelletier/go-toml v1.6.0 // indirect @@ -23,3 +25,5 @@ require ( gopkg.in/ini.v1 v1.51.1 // indirect gopkg.in/yaml.v2 v2.2.7 // indirect ) + +replace google.golang.org/grpc => google.golang.org/grpc v1.26.0 diff --git a/go.sum b/go.sum index d98c3e3b7a..443500d38b 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,3 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= @@ -98,9 +97,7 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/cheggaaa/pb v1.0.28/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/cloudflare-go v0.10.2/go.mod h1:qhVI5MKwBGhdNU89ZRz2plgYutcJ5PCekLxXn56w6SY= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= @@ -158,9 +155,7 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1 github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/elazarl/goproxy v0.0.0-20181003060214-f58a169a71a5/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -224,8 +219,6 @@ github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -379,6 +372,7 @@ github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nr github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.22 h1:Jm64b3bO9kP43ddLjL2EY3Io6bmy1qGb9Xxz6TqS6rc= github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.27 h1:aEH/kqUzUxGJ/UHcEKdJY+ugH6WEzsEBBSPa8zuy1aM= github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= @@ -657,10 +651,8 @@ golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm0 golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= @@ -715,7 +707,6 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181021155630-eda9bb28ed51/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -759,9 +750,7 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0 h1:xQwXv67TxFo9nC1GJFyab5eq/5B590r6RlnL/G8Sz7w= golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -769,7 +758,6 @@ golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -815,21 +803,8 @@ google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba h1:pRj9OXZbwNtbtZtOB4dLwfK4u+EVRMvP+e9zKkg2grM= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= -google.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.1 h1:C1QC6KzgSiLyBabDi87BbjaGreoRgGUF5nOyvfrAZ1k= -google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= @@ -874,11 +849,9 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo= gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index 18fc496543..10ac1c5109 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -14,6 +14,7 @@ import ( "github.com/owncloud/ocis-reva/pkg/config" "github.com/owncloud/ocis-reva/pkg/flagset" "github.com/owncloud/ocis-reva/pkg/server/debug" + "github.com/owncloud/ocis-reva/pkg/service/external" ) // Gateway is the entrypoint for the gateway command. @@ -145,6 +146,18 @@ func Gateway(cfg *config.Config) *cli.Command { } gr.Add(func() error { + err := external.RegisterGRPCEndpoint( + ctx, + "com.owncloud.reva", + uuid.String(), + cfg.Reva.Gateway.Addr, + logger, + ) + + if err != nil { + return err + } + runtime.Run(rcfg, pidFile) return nil }, func(_ error) { @@ -154,6 +167,7 @@ func Gateway(cfg *config.Config) *cli.Command { cancel() }) + } { diff --git a/pkg/service/external/external.go b/pkg/service/external/external.go new file mode 100644 index 0000000000..bcd7b5cab7 --- /dev/null +++ b/pkg/service/external/external.go @@ -0,0 +1,66 @@ +package external + +import ( + "context" + "time" + + "github.com/micro/go-micro/broker" + "github.com/micro/go-micro/v2/registry" + "github.com/owncloud/ocis-pkg/v2/log" +) + +// RegisterGRPCEndpoint publishes an arbitrary endpoint to the service-registry. This allows to query nodes of +// non-micro GRPC-services like reva. No health-checks are done, thus the caller is responsible for canceling. +// +func RegisterGRPCEndpoint(ctx context.Context, serviceID string, uuid string, addr string, logger log.Logger) error { + node := ®istry.Node{ + Id: serviceID + "-" + uuid, + Address: addr, + Metadata: make(map[string]string), + } + node.Metadata["broker"] = broker.String() + node.Metadata["registry"] = registry.String() + node.Metadata["server"] = "grpc" + node.Metadata["transport"] = "grpc" + node.Metadata["protocol"] = "grpc" + + service := ®istry.Service{ + Name: serviceID, + Version: "", + Nodes: []*registry.Node{node}, + Endpoints: make([]*registry.Endpoint, 0), + } + + rOpts := []registry.RegisterOption{registry.RegisterTTL(time.Minute)} + + logger.Info().Msgf("Registering external service %v@%v", node.Id, node.Address) + + if err := registry.Register(service, rOpts...); err != nil { + logger.Fatal().Err(err).Msgf("Registration error for external service %v", serviceID) + } + + t := time.NewTicker(time.Second * 30) + + go func() { + for { + select { + case <-t.C: + logger.Debug().Interface("service", service).Msg("Refreshing external service-registration") + err := registry.Register(service, rOpts...) + if err != nil { + logger.Error().Err(err).Msgf("Registration error for external service %v", serviceID) + } + case <-ctx.Done(): + logger.Debug().Interface("service", service).Msg("Unregistering") + t.Stop() + err := registry.Deregister(service) + if err != nil { + logger.Err(err).Msgf("Error unregistering external service %v", serviceID) + } + + } + } + }() + + return nil +} diff --git a/pkg/service/external/external_test.go b/pkg/service/external/external_test.go new file mode 100644 index 0000000000..7c212e1ef4 --- /dev/null +++ b/pkg/service/external/external_test.go @@ -0,0 +1,56 @@ +package external + +import ( + "context" + "testing" + + "github.com/micro/go-micro/v2/registry" + "github.com/owncloud/ocis-pkg/v2/log" +) + +func TestRegisterGRPCEndpoint(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + err := RegisterGRPCEndpoint(ctx, "test", "1234", "192.168.0.1:777", log.Logger{}) + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + s, err := registry.GetService("test") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if len(s) != 1 { + t.Errorf("Expected exactly one service to be returned got %v", len(s)) + } + + if len(s[0].Nodes) != 1 { + t.Errorf("Expected exactly one node to be returned got %v", len(s[0].Nodes)) + } + + testSvc := s[0] + if testSvc.Name != "test" { + t.Errorf("Expected service name to be 'test' got %v", s[0].Name) + } + + testNode := testSvc.Nodes[0] + + if testNode.Address != "192.168.0.1:777" { + t.Errorf("Expected node address to be '192.168.0.1:777' got %v", testNode.Address) + } + + if testNode.Id != "test-1234" { + t.Errorf("Expected node id to be 'test-1234' got %v", testNode.Id) + } + + cancel() + + s, err = registry.GetService("test") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if len(s) != 0 { + t.Errorf("Deregister on cancelation failed. Result-length should be zero, got %v", len(s)) + } +} From eb9b25d84ca578e3f53aad1de9c926df656074bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 15 Apr 2020 14:10:37 +0200 Subject: [PATCH 056/346] update to latest reva master for release (#134) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update reva to 20200414133413 Signed-off-by: Jörn Friedrich Dreyer * update changelog Signed-off-by: Jörn Friedrich Dreyer --- changelog/unreleased/fix-eos-config.md | 6 +++--- changelog/unreleased/update-reva-to-20200414133413.md | 5 +++++ go.mod | 2 +- go.sum | 4 ++-- 4 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 changelog/unreleased/update-reva-to-20200414133413.md diff --git a/changelog/unreleased/fix-eos-config.md b/changelog/unreleased/fix-eos-config.md index e0e9ed645d..d328386ff4 100644 --- a/changelog/unreleased/fix-eos-config.md +++ b/changelog/unreleased/fix-eos-config.md @@ -1,5 +1,5 @@ -Bugfix: Fix eos config +Bugfix: Fix eos user sharing config -We have added missing config options for the home layout to the config struct that is passed to eos. +We have added missing config options for the user sharing manager and added a dedicated eos storage command with pre configured settings for the eos-docker container. It configures a `Shares` folder in a users home when using eos as the storage driver. -https://github.com/owncloud/ocis-reva/pull/125 +https://github.com/owncloud/ocis-reva/pull/127 diff --git a/changelog/unreleased/update-reva-to-20200414133413.md b/changelog/unreleased/update-reva-to-20200414133413.md new file mode 100644 index 0000000000..d0f5f96611 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200414133413.md @@ -0,0 +1,5 @@ +Enhancement: update reva to v1.1.0-20200414133413 + +Adds initial public sharing and ocm implementation. + +https://github.com/owncloud/ocis-reva/pull/127 diff --git a/go.mod b/go.mod index aa8e6ac9aa..c481566131 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200409120332-3642312a10a1 + github.com/cs3org/reva v0.1.1-0.20200414133413-5e90b20d20ca github.com/gofrs/uuid v3.2.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 diff --git a/go.sum b/go.sum index 443500d38b..34e70bdc75 100644 --- a/go.sum +++ b/go.sum @@ -133,8 +133,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cs3org/go-cs3apis v0.0.0-20200408065125-6e23f3ecec0a h1:+enFdliTCV/aaLAvLmeka/r9wUoEypngV4JD5Gy92Uc= github.com/cs3org/go-cs3apis v0.0.0-20200408065125-6e23f3ecec0a/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v0.1.1-0.20200409120332-3642312a10a1 h1:1dtbY/ZxOcxTFpMzjIyneSOc/2kFPV77NqTF+Wuaqyg= -github.com/cs3org/reva v0.1.1-0.20200409120332-3642312a10a1/go.mod h1:baGkmcec/4WxTux30nbIz05RWKaueMGTkDihcVxLp8Y= +github.com/cs3org/reva v0.1.1-0.20200414133413-5e90b20d20ca h1:5RyVPbkQlY0jUwPJJx0x8nXrTiVUiPfegthytvVBp3o= +github.com/cs3org/reva v0.1.1-0.20200414133413-5e90b20d20ca/go.mod h1:baGkmcec/4WxTux30nbIz05RWKaueMGTkDihcVxLp8Y= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From d7b4eed5fe3ebcd2bef788846d9b51b96555ce80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 15 Apr 2020 12:26:32 +0000 Subject: [PATCH 057/346] Automated changelog update [skip ci] --- CHANGELOG.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4dd138fb7e..0c6a5edc97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,16 +6,25 @@ The following sections list the changes in ocis-reva unreleased. ## Summary -* Bugfix - Fix eos config: [#125](https://github.com/owncloud/ocis-reva/pull/125) +* Bugfix - Fix eos user sharing config: [#127](https://github.com/owncloud/ocis-reva/pull/127) +* Enhancement - Update reva to v1.1.0-20200414133413: [#127](https://github.com/owncloud/ocis-reva/pull/127) ## Details -* Bugfix - Fix eos config: [#125](https://github.com/owncloud/ocis-reva/pull/125) +* Bugfix - Fix eos user sharing config: [#127](https://github.com/owncloud/ocis-reva/pull/127) - We have added missing config options for the home layout to the config struct that is passed to - eos. + We have added missing config options for the user sharing manager and added a dedicated eos + storage command with pre configured settings for the eos-docker container. It configures a + `Shares` folder in a users home when using eos as the storage driver. - https://github.com/owncloud/ocis-reva/pull/125 + https://github.com/owncloud/ocis-reva/pull/127 + + +* Enhancement - Update reva to v1.1.0-20200414133413: [#127](https://github.com/owncloud/ocis-reva/pull/127) + + Adds initial public sharing and ocm implementation. + + https://github.com/owncloud/ocis-reva/pull/127 # Changelog for [0.1.1] (2020-03-31) From eb7ed6491c5aacdd2d4dca1558617c1ef03b361a Mon Sep 17 00:00:00 2001 From: Alex Unger Date: Wed, 15 Apr 2020 14:33:37 +0200 Subject: [PATCH 058/346] Toggle traces (#129) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add tracing_enabled to the list of core targets * add endpoint, collector and service_name parameters * add authbasic config * configure tracing for missing services Signed-off-by: Jörn Friedrich Dreyer Co-authored-by: Jörn Friedrich Dreyer --- pkg/command/authbasic.go | 6 +++++- pkg/command/authbearer.go | 6 +++++- pkg/command/frontend.go | 6 +++++- pkg/command/gateway.go | 6 +++++- pkg/command/sharing.go | 6 +++++- pkg/command/storageeos.go | 6 +++++- pkg/command/storageeosdata.go | 6 +++++- pkg/command/storagehome.go | 6 +++++- pkg/command/storagehomedata.go | 6 +++++- pkg/command/storageoc.go | 6 +++++- pkg/command/storageocdata.go | 6 +++++- pkg/command/storageroot.go | 6 +++++- pkg/command/users.go | 6 +++++- 13 files changed, 65 insertions(+), 13 deletions(-) diff --git a/pkg/command/authbasic.go b/pkg/command/authbasic.go index 04d8dff3fa..f6e299bee6 100644 --- a/pkg/command/authbasic.go +++ b/pkg/command/authbasic.go @@ -73,7 +73,11 @@ func AuthBasic(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.AuthBasic.MaxCPUs, + "max_cpus": cfg.Reva.Users.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "auth-basic", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/authbearer.go b/pkg/command/authbearer.go index 06c8f4a828..84afeafc7d 100644 --- a/pkg/command/authbearer.go +++ b/pkg/command/authbearer.go @@ -73,7 +73,11 @@ func AuthBearer(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.AuthBearer.MaxCPUs, + "max_cpus": cfg.Reva.Users.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "auth-bearer", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index 4d4572ad19..5df60e90b0 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -80,7 +80,11 @@ func Frontend(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.Frontend.MaxCPUs, + "max_cpus": cfg.Reva.Users.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "frontend", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index 10ac1c5109..08a2fba1af 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -74,7 +74,11 @@ func Gateway(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.Gateway.MaxCPUs, + "max_cpus": cfg.Reva.Users.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "gateway", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/sharing.go b/pkg/command/sharing.go index 9bee63b605..78b1456d82 100644 --- a/pkg/command/sharing.go +++ b/pkg/command/sharing.go @@ -73,7 +73,11 @@ func Sharing(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.Sharing.MaxCPUs, + "max_cpus": cfg.Reva.Users.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "sharing", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/storageeos.go b/pkg/command/storageeos.go index de5aca86b9..57c380d068 100644 --- a/pkg/command/storageeos.go +++ b/pkg/command/storageeos.go @@ -72,7 +72,11 @@ func StorageEOS(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.StorageEOS.MaxCPUs, + "max_cpus": cfg.Reva.StorageEOS.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "storage-eos", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/storageeosdata.go b/pkg/command/storageeosdata.go index 262fc7f71c..806d6d2216 100644 --- a/pkg/command/storageeosdata.go +++ b/pkg/command/storageeosdata.go @@ -72,7 +72,11 @@ func StorageEOSData(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.StorageEOSData.MaxCPUs, + "max_cpus": cfg.Reva.StorageEOSData.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "storage-eos-data", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index c97ac938b9..3f662f2aff 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -72,7 +72,11 @@ func StorageHome(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.StorageHome.MaxCPUs, + "max_cpus": cfg.Reva.Users.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "storage-home", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 56b7d37419..c2d024626b 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -72,7 +72,11 @@ func StorageHomeData(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.StorageHomeData.MaxCPUs, + "max_cpus": cfg.Reva.Users.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "storage-home-data", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index b0c8d5f7e8..60cfaf6fda 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -72,7 +72,11 @@ func StorageOC(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.StorageOC.MaxCPUs, + "max_cpus": cfg.Reva.StorageOC.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "storage-oc", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 60d864ab8d..f128918c79 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -72,7 +72,11 @@ func StorageOCData(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.StorageOCData.MaxCPUs, + "max_cpus": cfg.Reva.StorageOCData.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "storage-oc-data", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index 935c697317..44cc481e9b 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -72,7 +72,11 @@ func StorageRoot(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.StorageRoot.MaxCPUs, + "max_cpus": cfg.Reva.StorageRoot.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "storage-root", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/users.go b/pkg/command/users.go index cfc2bc2926..8b3541abbb 100644 --- a/pkg/command/users.go +++ b/pkg/command/users.go @@ -72,7 +72,11 @@ func Users(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.Users.MaxCPUs, + "max_cpus": cfg.Reva.Users.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "users", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, From e423b6135222dab8b2026dd2998fbb4d2d995d3f Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Fri, 10 Apr 2020 00:29:35 +0200 Subject: [PATCH 059/346] parse command usage and flagset usage from code --- Makefile | 10 +- docs/configuration.md | 1451 ++++++++++++++++++++++++++++++++++ docs/getting-started.md | 47 +- go.mod | 2 +- go.sum | 10 +- templates/CONFIGURATION.tmpl | 78 ++ tools.go | 1 + 7 files changed, 1585 insertions(+), 14 deletions(-) create mode 100644 docs/configuration.md create mode 100644 templates/CONFIGURATION.tmpl diff --git a/Makefile b/Makefile index fd1487c88b..511c344f59 100644 --- a/Makefile +++ b/Makefile @@ -46,6 +46,8 @@ ifndef DATE endif LDFLAGS += -s -w -X "$(IMPORT)/pkg/version.String=$(VERSION)" -X "$(IMPORT)/pkg/version.Date=$(DATE)" +DEBUG_LDFLAGS += -X "$(IMPORT)/pkg/version.String=$(VERSION)" -X "$(IMPORT)/pkg/version.Date=$(DATE)" + GCFLAGS += all=-N -l .PHONY: all @@ -99,7 +101,7 @@ $(BIN)/$(EXECUTABLE): $(SOURCES) $(GOBUILD) -v -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $@ ./cmd/$(NAME) $(BIN)/$(EXECUTABLE)-debug: $(SOURCES) - $(GOBUILD) -v -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -gcflags '$(GCFLAGS)' -o $@ ./cmd/$(NAME) + $(GOBUILD) -v -tags '$(TAGS)' -ldflags '$(DEBUG_LDFLAGS)' -gcflags '$(GCFLAGS)' -o $@ ./cmd/$(NAME) .PHONY: release release: release-dirs release-linux release-windows release-darwin release-copy release-check @@ -143,12 +145,16 @@ docs-copy: git checkout origin/source -f; \ rsync --delete -ax ../docs/ content/extensions/$(NAME) +.PHONY: config-docs-generate +config-docs-generate: + go run github.com/owncloud/flaex >| docs/configuration.md + .PHONY: docs-build docs-build: cd $(HUGO); hugo .PHONY: docs -docs: docs-copy docs-build +docs: config-docs-generate docs-copy docs-build .PHONY: watch watch: diff --git a/docs/configuration.md b/docs/configuration.md new file mode 100644 index 0000000000..f5fb58ac0d --- /dev/null +++ b/docs/configuration.md @@ -0,0 +1,1451 @@ +--- +title: "Configuration" +date: "2020-04-15T16:26:55+0200" +weight: 20 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: configuration.md +--- + +{{< toc >}} + +## Configuration + +oCIS Single Binary is not responsible for configuring extensions. Instead, each extension could either be configured by environment variables, cli flags or config files. + +Each extension has its dedicated documentation page (e.g. https://owncloud.github.io/extensions/ocis_proxy/configuration) which lists all possible configurations. Config files and environment variables are picked up if you use the `./bin/ocis server` command within the oCIS single binary. Command line flags must be set explicitly on the extensions subcommands. + +### Configuration using config files + +Out of the box extensions will attempt to read configuration details from: + +```console +/etc/ocis +$HOME/.ocis +./config +``` + +For this configuration to be picked up, have a look at your extension `root` command and look for which default config name it has assigned. *i.e: ocis-proxy reads `proxy.json | yaml | toml ...`*. + +So far we support the file formats `JSON` and `YAML`, if you want to get a full example configuration just take a look at [our repository](https://github.com/owncloud/ocis/tree/master/config), there you can always see the latest configuration format. These example configurations include all available options and the default values. The configuration file will be automatically loaded if it's placed at `/etc/ocis/ocis.yml`, `${HOME}/.ocis/ocis.yml` or `$(pwd)/config/ocis.yml`. + +### Envrionment variables + +If you prefer to configure the service with environment variables you can see the available variables below. + +### Commandline flags + +If you prefer to configure the service with commandline flags you can see the available variables below. Command line flags are only working when calling the subcommand directly. + +## Root Command + +Example service for Reva/oCIS + +Usage: `ocis-reva [global options] command [command options] [arguments...]` + +--config-file | $REVA_CONFIG_FILE +: Path to config file. + +--log-level | $REVA_LOG_LEVEL +: Set logging level. Default: `info`. + +--log-pretty | $REVA_LOG_PRETTY +: Enable pretty logging. + +--log-color | $REVA_LOG_COLOR +: Enable colored logging. + +## Sub Commands + +### ocis-reva gateway + +Start reva gateway + +Usage: `ocis-reva gateway [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_GATEWAY_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9143`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--transfer-secret | $REVA_TRANSFER_SECRET +: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. + +--network | $REVA_GATEWAY_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_GATEWAY_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_GATEWAY_ADDR +: Address to bind reva service. Default: `0.0.0.0:9142`. + +--url | $REVA_GATEWAY_URL +: URL to use for the reva service. Default: `localhost:9142`. + +--commit-share-to-storage-grant | $REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_GRANT +: Commit shares to the share manager. Default: `true`. + +--commit-share-to-storage-ref | $REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_REF +: Commit shares to the storage. Default: `true`. + +--share-folder | $REVA_GATEWAY_SHARE_FOLDER +: mount shares in this folder of the home storage provider. Default: `Shares`. + +--disable-home-creation-on-login | $REVA_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN +: Disable creation of home folder on login. + +--storage-home-provider | $REVA_STORAGE_HOME_PROVIDER +: mount point of the storage provider for user homes in the global namespace. Default: `/home`. + +--frontend-url | $REVA_FRONTEND_URL +: URL to use for the reva service. Default: `localhost:9140`. + +--users-url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. + +--auth-basic-url | $REVA_AUTH_BASIC_URL +: URL to use for the reva service. Default: `localhost:9146`. + +--auth-bearer-url | $REVA_AUTH_BEARER_URL +: URL to use for the reva service. Default: `localhost:9148`. + +--sharing-url | $REVA_SHARING_URL +: URL to use for the reva service. Default: `localhost:9150`. + +--storage-root-url | $REVA_STORAGE_ROOT_URL +: URL to use for the reva service. Default: `localhost:9152`. + +--storage-root-mount-path | $REVA_STORAGE_ROOT_MOUNT_PATH +: mount path. Default: `/`. + +--storage-root-mount-id | $REVA_STORAGE_ROOT_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009152`. + +--storage-home-url | $REVA_STORAGE_HOME_URL +: URL to use for the reva service. Default: `localhost:9154`. + +--storage-home-mount-path | $REVA_STORAGE_HOME_MOUNT_PATH +: mount path. Default: `/home`. + +--storage-eos-url | $REVA_STORAGE_EOS_URL +: URL to use for the reva service. Default: `localhost:9158`. + +--storage-eos-mount-path | $REVA_STORAGE_EOS_MOUNT_PATH +: mount path. Default: `/eos`. + +--storage-eos-mount-id | $REVA_STORAGE_EOS_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009158`. + +--storage-oc-url | $REVA_STORAGE_OC_URL +: URL to use for the reva service. Default: `localhost:9162`. + +--storage-oc-mount-path | $REVA_STORAGE_OC_MOUNT_PATH +: mount path. Default: `/oc`. + +--storage-oc-mount-id | $REVA_STORAGE_OC_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. + +### ocis-reva storage-oc-data + +Start reva storage-oc-data service + +Usage: `ocis-reva storage-oc-data [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9165`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_OC_DATA_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_OC_DATA_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. + +--addr | $REVA_STORAGE_OC_DATA_ADDR +: Address to bind reva service. Default: `0.0.0.0:9164`. + +--url | $REVA_STORAGE_OC_DATA_URL +: URL to use for the reva service. Default: `localhost:9164`. + +--driver | $REVA_STORAGE_OC_DATA_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. + +--prefix | $REVA_STORAGE_OC_DATA_PREFIX +: prefix for the http endpoint, without leading slash. Default: `data`. + +--temp-folder | $REVA_STORAGE_OC_DATA_TEMP_FOLDER +: temp folder. Default: `/var/tmp/`. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. + +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. + +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-example.org`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-example.org`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `false`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. + +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. + +### ocis-reva sharing + +Start reva sharing service + +Usage: `ocis-reva sharing [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_SHARING_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9151`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_SHARING_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_SHARING_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_SHARING_ADDR +: Address to bind reva service. Default: `0.0.0.0:9150`. + +--url | $REVA_SHARING_URL +: URL to use for the reva service. Default: `localhost:9150`. + +--user-driver | $REVA_SHARING_USER_DRIVER +: driver to use for the UserShareProvider. Default: `json`. + +--user-json-file | $REVA_SHARING_USER_JSON_FILE +: file used to persist shares for the UserShareProvider. Default: `/var/tmp/reva/shares.json`. + +--public-driver | $REVA_SHARING_PUBLIC_DRIVER +: driver to use for the PublicShareProvider. Default: `memory`. + +### ocis-reva health + +Check health status + +Usage: `ocis-reva health [command options] [arguments...]` + +--debug-addr | $REVA_DEBUG_ADDR +: Address to debug endpoint. Default: `0.0.0.0:9109`. + +### ocis-reva storage-home-data + +Start reva storage-home-data service + +Usage: `ocis-reva storage-home-data [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_HOME_DATA_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9157`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_HOME_DATA_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_HOME_DATA_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. + +--addr | $REVA_STORAGE_HOME_DATA_ADDR +: Address to bind reva service. Default: `0.0.0.0:9156`. + +--url | $REVA_STORAGE_HOME_DATA_URL +: URL to use for the reva service. Default: `localhost:9156`. + +--driver | $REVA_STORAGE_HOME_DATA_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. + +--prefix | $REVA_STORAGE_HOME_DATA_PREFIX +: prefix for the http endpoint, without leading slash. Default: `data`. + +--temp-folder | $REVA_STORAGE_HOME_DATA_TEMP_FOLDER +: temp folder. Default: `/var/tmp/`. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. Default: `/eos/dockertest/reva/users`. + +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. + +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. Default: `/Shares`. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. Default: `true`. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `true`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. + +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. + +### ocis-reva storage-oc + +Start reva storage-oc service + +Usage: `ocis-reva storage-oc [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_OC_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9163`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_OC_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_OC_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_STORAGE_OC_ADDR +: Address to bind reva service. Default: `0.0.0.0:9162`. + +--url | $REVA_STORAGE_OC_URL +: URL to use for the reva service. Default: `localhost:9162`. + +--driver | $REVA_STORAGE_OC_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. + +--mount-path | $REVA_STORAGE_OC_MOUNT_PATH +: mount path. Default: `/oc`. + +--mount-id | $REVA_STORAGE_OC_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. + +--expose-data-server | $REVA_STORAGE_OC_EXPOSE_DATA_SERVER +: exposes a dedicated data server. Default: `true`. + +--data-server-url | $REVA_STORAGE_OC_DATA_SERVER_URL +: data server url. Default: `http://localhost:9164/data`. + +--enable-home-creation | $REVA_STORAGE_OC_ENABLE_HOME_CREATION +: if enabled home dirs will be automatically created. Default: `false`. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. + +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. + +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-example.org`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-example.org`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `false`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. + +### ocis-reva users + +Start reva users service + +Usage: `ocis-reva users [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_SHARING_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9145`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--ldap-hostname | $REVA_LDAP_HOSTNAME +: LDAP hostname. Default: `localhost`. + +--ldap-base-dn | $REVA_LDAP_BASE_DN +: LDAP basedn. Default: `dc=example,dc=org`. + +--ldap-userfilter | $REVA_LDAP_USERFILTER +: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s*))`. + +--ldap-groupfilter | $REVA_LDAP_GROUPFILTER +: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s*))`. + +--ldap-bind-dn | $REVA_LDAP_BIND_DN +: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. + +--ldap-bind-password | $REVA_LDAP_BIND_PASSWORD +: LDAP bind password. Default: `reva`. + +--ldap-idp | $REVA_LDAP_IDP +: Identity provider to use for users. Default: `https://localhost:9200`. + +--ldap-schema-uid | $REVA_LDAP_SCHEMA_UID +: LDAP schema uid. Default: `uid`. + +--ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL +: LDAP schema mail. Default: `mail`. + +--ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME +: LDAP schema displayName. Default: `sn`. + +--ldap-schema-cn | $REVA_LDAP_SCHEMA_CN +: LDAP schema cn. Default: `cn`. + +--network | $REVA_USERS_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_USERS_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_USERS_ADDR +: Address to bind reva service. Default: `0.0.0.0:9144`. + +--url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. + +--driver | $REVA_USERS_DRIVER +: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. + +--json-config | $REVA_USERS_JSON +: Path to users.json file. + +### ocis-reva auth-basic + +Start reva authprovider for basic auth + +Usage: `ocis-reva auth-basic [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_AUTH_BASIC_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9147`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--users-driver | $REVA_USERS_DRIVER +: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. + +--users-json | $REVA_USERS_JSON +: Path to users.json file. + +--ldap-hostname | $REVA_LDAP_HOSTNAME +: LDAP hostname. Default: `localhost`. + +--ldap-base-dn | $REVA_LDAP_BASE_DN +: LDAP basedn. Default: `dc=example,dc=org`. + +--ldap-userfilter | $REVA_LDAP_USERFILTER +: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s))`. + +--ldap-groupfilter | $REVA_LDAP_GROUPFILTER +: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s))`. + +--ldap-bind-dn | $REVA_LDAP_BIND_DN +: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. + +--ldap-bind-password | $REVA_LDAP_BIND_PASSWORD +: LDAP bind password. Default: `reva`. + +--ldap-idp | $REVA_LDAP_IDP +: Identity provider to use for users. Default: `https://localhost:9200`. + +--ldap-schema-uid | $REVA_LDAP_SCHEMA_UID +: LDAP schema uid. Default: `uid`. + +--ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL +: LDAP schema mail. Default: `mail`. + +--ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME +: LDAP schema displayName. Default: `sn`. + +--ldap-schema-cn | $REVA_LDAP_SCHEMA_CN +: LDAP schema cn. Default: `cn`. + +--network | $REVA_AUTH_BASIC_NETWORK +: Network to use for the reva auth-basic service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_AUTH_BASIC_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_AUTH_BASIC_ADDR +: Address to bind reva service. Default: `0.0.0.0:9146`. + +--url | $REVA_AUTH_BASIC_URL +: URL to use for the reva service. Default: `localhost:9146`. + +### ocis-reva storage-root + +Start reva storage-root service + +Usage: `ocis-reva storage-root [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_ROOT_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9153`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_ROOT_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_ROOT_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_STORAGE_ROOT_ADDR +: Address to bind reva service. Default: `0.0.0.0:9152`. + +--url | $REVA_STORAGE_ROOT_URL +: URL to use for the reva service. Default: `localhost:9152`. + +--driver | $REVA_STORAGE_ROOT_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `local`. + +--mount-path | $REVA_STORAGE_ROOT_MOUNT_PATH +: mount path. Default: `/`. + +--mount-id | $REVA_STORAGE_ROOT_MOUNT_ID +: mount id. Default: `123e4567-e89b-12d3-a456-426655440001`. + +--expose-data-server | $REVA_STORAGE_ROOT_EXPOSE_DATA_SERVER +: exposes a dedicated data server. + +--data-server-url | $REVA_STORAGE_ROOT_DATA_SERVER_URL +: data server url. + +--enable-home-creation | $REVA_STORAGE_HOME_ENABLE_HOME_CREATION +: if enabled home dirs will be automatically created. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-example.org`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-example.org`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `false`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. + +### ocis-reva auth-bearer + +Start reva authprovider for bearer auth + +Usage: `ocis-reva auth-bearer [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_AUTH_BEARER_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9149`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--oidc-issuer | $REVA_OIDC_ISSUER +: OIDC issuer. Default: `https://localhost:9200`. + +--oidc-insecure | $REVA_OIDC_INSECURE +: OIDC allow insecure communication. Default: `true`. + +--oidc-id-claim | $REVA_OIDC_ID_CLAIM +: OIDC id claim. Default: `preferred_username`. + +--network | $REVA_AUTH_BEARER_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_AUTH_BEARER_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_AUTH_BEARER_ADDR +: Address to bind reva service. Default: `0.0.0.0:9148`. + +--url | $REVA_AUTH_BEARER_URL +: URL to use for the reva service. Default: `localhost:9148`. + +### ocis-reva storage-eos + +Start reva storage-eos service + +Usage: `ocis-reva storage-eos [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_EOS_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9159`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_EOS_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_EOS_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_STORAGE_EOS_ADDR +: Address to bind reva service. Default: `0.0.0.0:9158`. + +--url | $REVA_STORAGE_EOS_URL +: URL to use for the reva service. Default: `localhost:9158`. + +--driver | $REVA_STORAGE_EOS_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. + +--mount-path | $REVA_STORAGE_EOS_MOUNT_PATH +: mount path. Default: `/eos`. + +--mount-id | $REVA_STORAGE_EOS_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009158`. + +--expose-data-server | $REVA_STORAGE_EOS_EXPOSE_DATA_SERVER +: exposes a dedicated data server. Default: `true`. + +--data-server-url | $REVA_STORAGE_EOS_DATA_SERVER_URL +: data server url. Default: `http://localhost:9160/data`. + +--enable-home-creation | $REVA_STORAGE_EOS_ENABLE_HOME_CREATION +: if enabled home dirs will be automatically created. Default: `false`. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. Default: `/eos/dockertest/reva`. + +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. + +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. Default: `/Shares`. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `false`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. + +### ocis-reva frontend + +Start reva frontend service + +Usage: `ocis-reva frontend [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_FRONTEND_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9141`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--transfer-secret | $REVA_TRANSFER_SECRET +: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. + +--webdav-namespace | $WEBDAV_NAMESPACE +: Namespace prefix for the /webdav endpoint. Default: `/home/`. + +--dav-files-namespace | $DAV_FILES_NAMESPACE +: Namespace prefix for the webdav /dav/files endpoint. Default: `/oc/`. + +--network | $REVA_FRONTEND_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_FRONTEND_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. + +--addr | $REVA_FRONTEND_ADDR +: Address to bind reva service. Default: `0.0.0.0:9140`. + +--url | $REVA_FRONTEND_URL +: URL to use for the reva service. Default: `localhost:9140`. + +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. + +### ocis-reva storage-home + +Start reva storage-home service + +Usage: `ocis-reva storage-home [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_HOME_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9155`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_HOME_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_HOME_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_STORAGE_HOME_ADDR +: Address to bind reva service. Default: `0.0.0.0:9154`. + +--url | $REVA_STORAGE_HOME_URL +: URL to use for the reva service. Default: `localhost:9154`. + +--driver | $REVA_STORAGE_HOME_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. + +--mount-path | $REVA_STORAGE_HOME_MOUNT_PATH +: mount path. Default: `/home`. + +--mount-id | $REVA_STORAGE_HOME_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. + +--expose-data-server | $REVA_STORAGE_HOME_EXPOSE_DATA_SERVER +: exposes a dedicated data server. Default: `true`. + +--data-server-url | $REVA_STORAGE_HOME_DATA_SERVER_URL +: data server url. Default: `http://localhost:9156/data`. + +--enable-home-creation | $REVA_STORAGE_HOME_ENABLE_HOME_CREATION +: if enabled home dirs will be automatically created. Default: `true`. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. Default: `/eos/dockertest/reva/users`. + +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. + +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. Default: `/Shares`. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. Default: `true`. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `true`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. + +### ocis-reva storage-oc-data + +Start reva storage-oc-data service + +Usage: `ocis-reva storage-oc-data [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9161`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_EOS_DATA_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_EOS_DATA_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. + +--addr | $REVA_STORAGE_EOS_DATA_ADDR +: Address to bind reva service. Default: `0.0.0.0:9160`. + +--url | $REVA_STORAGE_EOS_DATA_URL +: URL to use for the reva service. Default: `localhost:9160`. + +--driver | $REVA_STORAGE_EOS_DATA_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. + +--prefix | $REVA_STORAGE_EOS_DATA_PREFIX +: prefix for the http endpoint, without leading slash. Default: `data`. + +--temp-folder | $REVA_STORAGE_EOS_DATA_TEMP_FOLDER +: temp folder. Default: `/var/tmp/`. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. Default: `/eos/dockertest/reva`. + +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. + +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. Default: `/Shares`. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `false`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. + +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. + diff --git a/docs/getting-started.md b/docs/getting-started.md index 6c29217fe0..e7140676e0 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -1,27 +1,56 @@ --- title: "Getting Started" date: 2018-05-02T00:00:00+00:00 -weight: 20 +weight: 15 geekdocRepo: https://github.com/owncloud/ocis-reva geekdocEditPath: edit/master/docs geekdocFilePath: getting-started.md --- -### Installation +{{< toc >}} + +## Installation So far we are offering two different variants for the installation. You can choose between [Docker](https://www.docker.com/) or pre-built binaries which are stored on our download mirrors and GitHub releases. Maybe we will also provide system packages for the major distributions later if we see the need for it. -#### Docker +### Docker -TBD +Docker images for ocis-reva are hosted on https://hub.docker.com/r/owncloud/ocis-reva. -#### Binaries +The `latest` tag always reflects the current master branch. -TBD +```console +docker pull owncloud/ocis-reva +``` -### Configuration +#### Dependencies -We provide overall three different variants of configuration. The variant based on environment variables and commandline flags are split up into global values and command-specific values. +- Running ocis-reva currently needs a working Redis caching server +- The default storage location in the container is `/var/tmp/reva/data`. You may want to create a volume to persist the files in the primary storage -The configuration tries to map different configuration options from reva into dedicated services. For now please run `bin/ocis-reva {command} -h` to see the list of available options or have a look at [the flagsets](https://github.com/owncloud/ocis-reva/tree/master/pkg/flagset) and the mapping to a reva config in the corresponding [commands](https://github.com/owncloud/ocis-reva/tree/master/pkg/command). +### Binaries +The pre-built binaries for different platforms are downloadable at https://download.owncloud.com/ocis/ocis-reva/ . Specific releases are organized in separate folders. They are in sync which every release tag on GitHub. The binaries from the current master branch can be found in https://download.owncloud.com/ocis/ocis-reva/testing/ + +```console +curl https://download.owncloud.com/ocis/ocis/1.0.0-beta1/ocis-reva-1.0.0-beta1-darwin-amd64 --output ocis-reva +chmod +x ocis +./ocis-reva sharing +``` + +#### Dependencies + +- Running ocis currently needs a working Redis caching server +- The default promary storage location is `/var/tmp/reva/data`. You can change that value by configuration. + +## Usage + +The program provides a few sub-commands on execution. The available configuration methods have already been mentioned above. Generally you can always see a formated help output if you execute the binary via `ocis-reva --help`. + +### Health + +The health command is used to execute a health check, if the exit code equals zero the service should be up and running, if the exist code is greater than zero the service is not in a healthy state. Generally this command is used within our Docker containers, it could also be used within Kubernetes. + +{{< highlight txt >}} +ocis-reva health --help +{{< / highlight >}} diff --git a/go.mod b/go.mod index c481566131..21a3999166 100644 --- a/go.mod +++ b/go.mod @@ -11,6 +11,7 @@ require ( github.com/micro/go-micro v1.18.0 github.com/micro/go-micro/v2 v2.0.0 github.com/oklog/run v1.0.0 + github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203 github.com/owncloud/ocis-pkg/v2 v2.0.1 github.com/pelletier/go-toml v1.6.0 // indirect github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee // indirect @@ -23,7 +24,6 @@ require ( github.com/uber/jaeger-client-go v2.20.1+incompatible // indirect golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7 // indirect gopkg.in/ini.v1 v1.51.1 // indirect - gopkg.in/yaml.v2 v2.2.7 // indirect ) replace google.golang.org/grpc => google.golang.org/grpc v1.26.0 diff --git a/go.sum b/go.sum index 34e70bdc75..e1416c7880 100644 --- a/go.sum +++ b/go.sum @@ -444,6 +444,8 @@ github.com/ory/fosite v0.31.0/go.mod h1:lSSqjo8Kr/U1P3kJWxsNGHmq7TnH/7pS1ijvQRT7 github.com/ory/go-convenience v0.1.0 h1:zouLKfF2GoSGnJwGq+PE/nJAE6dj2Zj5QlTgmMTsTS8= github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= +github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203 h1:sXVTQ94GWeiBhlgN0kSbcyXQNmwzPuuhWyObxgTu/xE= +github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203/go.mod h1:jip86t4OVURJTf8CM/0e2qcji/Y4NG3l2lR8kex4JWw= github.com/owncloud/ocis-pkg/v2 v2.0.1 h1:3ISEtfjAz4pDFczTggIJwKuft3bVsAp1C7dFY9BBPEs= github.com/owncloud/ocis-pkg/v2 v2.0.1/go.mod h1:7bVnn3VUaqdmvpMkXF0QVEF1fRugs35hSkuVTAq9yjk= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= @@ -644,6 +646,8 @@ golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a h1:R/qVym5WAxsZWQqZCwDY/8 golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200117160349-530e935923ad h1:Jh8cai0fqIK+f6nG0UgPW5wFk8wmiMhM3AyciDBdtQg= golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200320181102-891825fb96df h1:lDWgvUvNnaTnNBc/dwOty86cFeKoKWbwy2wQj0gIxbU= +golang.org/x/crypto v0.0.0-20200320181102-891825fb96df/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -771,6 +775,7 @@ golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 h1:hKsoRgsbwY1NafxrwTs+k64bikrLBkAgPir1TNCj3Zs= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361 h1:RIIXAeV6GvDBuADKumTODatUqANFZ+5BPMnzsy4hulY= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -846,14 +851,15 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= diff --git a/templates/CONFIGURATION.tmpl b/templates/CONFIGURATION.tmpl new file mode 100644 index 0000000000..060c8024fe --- /dev/null +++ b/templates/CONFIGURATION.tmpl @@ -0,0 +1,78 @@ +--- +title: "Configuration" +date: "{{ date "2006-01-02T15:04:05-0700" now }}" +weight: 20 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: configuration.md +--- +{{- define "options"}} +{{ $fnName := (last . ).Flags -}} +{{ range $opt := first . }}{{ with list $fnName $opt -}} +{{ $o := last . -}} +{{ if eq $o.FnName $fnName -}} +--{{ $o.Name }} | ${{ index $o.Env 0 }} +: {{ $o.Usage }}. {{- if $o.Default }} Default: `{{ $o.Default }}`.{{ end }} + +{{ end -}} +{{ end -}} +{{ end -}} +{{ end }} + +{{`{{< toc >}}`}} + +## Configuration + +oCIS Single Binary is not responsible for configuring extensions. Instead, each extension could either be configured by environment variables, cli flags or config files. + +Each extension has its dedicated documentation page (e.g. https://owncloud.github.io/extensions/ocis_proxy/configuration) which lists all possible configurations. Config files and environment variables are picked up if you use the `./bin/ocis server` command within the oCIS single binary. Command line flags must be set explicitly on the extensions subcommands. + +### Configuration using config files + +Out of the box extensions will attempt to read configuration details from: + +```console +/etc/ocis +$HOME/.ocis +./config +``` + +For this configuration to be picked up, have a look at your extension `root` command and look for which default config name it has assigned. *i.e: ocis-proxy reads `proxy.json | yaml | toml ...`*. + +So far we support the file formats `JSON` and `YAML`, if you want to get a full example configuration just take a look at [our repository](https://github.com/owncloud/ocis/tree/master/config), there you can always see the latest configuration format. These example configurations include all available options and the default values. The configuration file will be automatically loaded if it's placed at `/etc/ocis/ocis.yml`, `${HOME}/.ocis/ocis.yml` or `$(pwd)/config/ocis.yml`. + +### Envrionment variables + +If you prefer to configure the service with environment variables you can see the available variables below. + +### Commandline flags + +If you prefer to configure the service with commandline flags you can see the available variables below. Command line flags are only working when calling the subcommand directly. + +{{ $options := .Options -}} +{{ range $com := .Commands }}{{ with (list $options $com) -}} +{{ $c := last . -}} +{{ if eq $c.Name "ocis-reva" -}} +## Root Command + +{{ $c.Usage }} + +Usage: `ocis-reva [global options] command [command options] [arguments...]` +{{ template "options" . -}} +## Sub Commands + +{{ end -}} +{{ end -}} +{{ end -}} +{{- range $com := .Commands }}{{ with (list $options $com) -}} +{{- $c := last . }} +{{- if ne $c.Name "ocis-reva" -}} +### ocis-reva {{ $c.Name }} + +{{ $c.Usage }} + +Usage: `ocis-reva {{ $c.Name }} [command options] [arguments...]` +{{ template "options" . }} +{{- end -}} +{{- end -}} +{{- end -}} \ No newline at end of file diff --git a/tools.go b/tools.go index f1911ffdcb..fce36f2420 100644 --- a/tools.go +++ b/tools.go @@ -3,5 +3,6 @@ package main import ( + _ "github.com/owncloud/flaex" _ "github.com/restic/calens" ) From 27af321c166cb1cb9615324ed752dd08f1077177 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Wed, 15 Apr 2020 22:11:54 +0200 Subject: [PATCH 060/346] Prepare 0.2.0 Release --- changelog/{unreleased => 0.2.0_2020-04-15}/fix-eos-config.md | 0 .../update-reva-to-20200414133413.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.2.0_2020-04-15}/fix-eos-config.md (100%) rename changelog/{unreleased => 0.2.0_2020-04-15}/update-reva-to-20200414133413.md (100%) diff --git a/changelog/unreleased/fix-eos-config.md b/changelog/0.2.0_2020-04-15/fix-eos-config.md similarity index 100% rename from changelog/unreleased/fix-eos-config.md rename to changelog/0.2.0_2020-04-15/fix-eos-config.md diff --git a/changelog/unreleased/update-reva-to-20200414133413.md b/changelog/0.2.0_2020-04-15/update-reva-to-20200414133413.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200414133413.md rename to changelog/0.2.0_2020-04-15/update-reva-to-20200414133413.md From a9f100b988eed90aa36f5cf61c8238f92b5a9055 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Wed, 15 Apr 2020 20:23:29 +0000 Subject: [PATCH 061/346] Automated changelog update [skip ci] --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c6a5edc97..e2a6bd573f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.2.0] (2020-04-15) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.2.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.1.1...master +[0.2.0]: https://github.com/owncloud/ocis-reva/compare/v0.1.1...v0.2.0 ## Summary From 879bf5e8a63120eb6df15d1bbf4b75cd8ffec1e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Sun, 19 Apr 2020 14:17:51 +0200 Subject: [PATCH 062/346] Allow configuring the gateway for dataproviders (#136) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- changelog/unreleased/gatewayconfig.md | 5 +++ go.mod | 4 +-- go.sum | 51 ++++++++++++++++++++------- pkg/command/storageeosdata.go | 1 + pkg/command/storagehomedata.go | 1 + pkg/command/storageocdata.go | 1 + 6 files changed, 48 insertions(+), 15 deletions(-) create mode 100644 changelog/unreleased/gatewayconfig.md diff --git a/changelog/unreleased/gatewayconfig.md b/changelog/unreleased/gatewayconfig.md new file mode 100644 index 0000000000..003e865442 --- /dev/null +++ b/changelog/unreleased/gatewayconfig.md @@ -0,0 +1,5 @@ +Enhancement: Allow configuring the gateway for dataproviders + +This allows using basic or bearer auth when directly talking to dataproviders. + +https://github.com/owncloud/ocis-reva/pull/136 diff --git a/go.mod b/go.mod index 21a3999166..ee9dd958e9 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200414133413-5e90b20d20ca + github.com/cs3org/reva v0.1.1-0.20200416050838-5fc8adf27f83 github.com/gofrs/uuid v3.2.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 @@ -25,5 +25,3 @@ require ( golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7 // indirect gopkg.in/ini.v1 v1.51.1 // indirect ) - -replace google.golang.org/grpc => google.golang.org/grpc v1.26.0 diff --git a/go.sum b/go.sum index e1416c7880..b781c175ac 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.40.0/go.mod h1:Tk58MuI9rbLMKlAjeO/bDnteAx7tX2gJIXw4T5Jwlro= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= @@ -69,6 +71,7 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4 github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee h1:3T/l+vMotQ7cDSLWNAn2Vg1SAQ3mdyLgBWWBitSS3uU= github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt4WATGGgae9mURNGQQqxAudPKrxfsbSDSGOso+g= +github.com/aws/aws-sdk-go v1.20.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.30.7 h1:IaXfqtioP6p9SFAnNfsqdNczbR5UNbYqvcZUSsCAdTY= github.com/aws/aws-sdk-go v1.30.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= @@ -81,6 +84,7 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.2/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= @@ -97,7 +101,9 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/cheggaaa/pb v1.0.28/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/cloudflare-go v0.10.2/go.mod h1:qhVI5MKwBGhdNU89ZRz2plgYutcJ5PCekLxXn56w6SY= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= @@ -133,8 +139,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cs3org/go-cs3apis v0.0.0-20200408065125-6e23f3ecec0a h1:+enFdliTCV/aaLAvLmeka/r9wUoEypngV4JD5Gy92Uc= github.com/cs3org/go-cs3apis v0.0.0-20200408065125-6e23f3ecec0a/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v0.1.1-0.20200414133413-5e90b20d20ca h1:5RyVPbkQlY0jUwPJJx0x8nXrTiVUiPfegthytvVBp3o= -github.com/cs3org/reva v0.1.1-0.20200414133413-5e90b20d20ca/go.mod h1:baGkmcec/4WxTux30nbIz05RWKaueMGTkDihcVxLp8Y= +github.com/cs3org/reva v0.1.1-0.20200416050838-5fc8adf27f83 h1:UScjXmYUPW0XSolajvxoBixIRVQRldYPmfeF1TI/CuY= +github.com/cs3org/reva v0.1.1-0.20200416050838-5fc8adf27f83/go.mod h1:baGkmcec/4WxTux30nbIz05RWKaueMGTkDihcVxLp8Y= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -155,7 +161,9 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1 github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/elazarl/goproxy v0.0.0-20181003060214-f58a169a71a5/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -219,6 +227,7 @@ github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -524,6 +533,7 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/sacloud/libsacloud v1.26.1/go.mod h1:79ZwATmHLIFZIMd7sxA3LwzVy/B77uj3LDoToVTxDoQ= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/sethgrid/pester v0.0.0-20190127155807-68a33a018ad0/go.mod h1:Ad7IjTpvzZO8Fl0vh9AzQ+j/jYZfyp2diGwI8m5q+ns= github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -578,6 +588,8 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1 github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4o2HM0m3DZYQWsj6/MEowD57VzoH0v3d7igeFY= +github.com/tus/tusd v1.1.0 h1:y2oBFGeOyqlGgyqD0CloH8FuBrjDk0Tq1IQWvAZnyG8= +github.com/tus/tusd v1.1.0/go.mod h1:3DWPOdeCnjBwKtv98y5dSws3itPqfce5TVa0s59LRiA= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= github.com/uber/jaeger-client-go v2.15.0+incompatible h1:NP3qsSqNxh8VYr956ur1N/1C1PjvOJnJykCzcD5QHbk= github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= @@ -586,6 +598,7 @@ github.com/uber/jaeger-client-go v2.20.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMW github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/vimeo/go-util v1.2.0/go.mod h1:s13SMDTSO7AjH1nbgp707mfN5JFIWUFDU5MDDuRRtKs= github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -655,8 +668,10 @@ golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm0 golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= @@ -711,6 +726,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181021155630-eda9bb28ed51/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -754,7 +770,9 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0 h1:xQwXv67TxFo9nC1GJFyab5eq/5B590r6RlnL/G8Sz7w= golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -762,6 +780,7 @@ golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -783,6 +802,7 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -801,6 +821,7 @@ google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -808,61 +829,67 @@ google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba h1:pRj9OXZbwNtbtZtOB4dLwfK4u+EVRMvP+e9zKkg2grM= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.1 h1:C1QC6KzgSiLyBabDi87BbjaGreoRgGUF5nOyvfrAZ1k= +google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +gopkg.in/Acconut/lockfile.v1 v1.1.0/go.mod h1:6UCz3wJ8tSFUsPR6uP/j8uegEtDuEEqFxlpi0JI4Umw= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/validator.v9 v9.30.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/go-playground/validator.v9 v9.31.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= +gopkg.in/h2non/gock.v1 v1.0.14/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE= gopkg.in/h2non/gock.v1 v1.0.15/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE= gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.1 h1:GyboHr4UqMiLUybYjd22ZjQIKEJEpgtLXtuGbR21Oho= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU= gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw= gopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.1.9/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= gopkg.in/telegram-bot-api.v4 v4.6.4/go.mod h1:5DpGO5dbumb40px+dXcwCpcjmeHNYLpk0bp3XRNvWDM= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= diff --git a/pkg/command/storageeosdata.go b/pkg/command/storageeosdata.go index 806d6d2216..9b7725d235 100644 --- a/pkg/command/storageeosdata.go +++ b/pkg/command/storageeosdata.go @@ -80,6 +80,7 @@ func StorageEOSData(cfg *config.Config) *cli.Command { }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, + "gatewaysvc": cfg.Reva.Gateway.URL, // Todo or address? }, "http": map[string]interface{}{ "network": cfg.Reva.StorageEOSData.Network, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index c2d024626b..9b2fd4fe23 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -80,6 +80,7 @@ func StorageHomeData(cfg *config.Config) *cli.Command { }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, + "gatewaysvc": cfg.Reva.Gateway.URL, // Todo or address? }, "http": map[string]interface{}{ "network": cfg.Reva.StorageHomeData.Network, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index f128918c79..7b7e169153 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -80,6 +80,7 @@ func StorageOCData(cfg *config.Config) *cli.Command { }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, + "gatewaysvc": cfg.Reva.Gateway.URL, // Todo or address? }, "http": map[string]interface{}{ "network": cfg.Reva.StorageOCData.Network, From d92383c1cd6244b20656e1ecaa7cf2070cba0d74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Sun, 19 Apr 2020 12:30:53 +0000 Subject: [PATCH 063/346] Automated changelog update [skip ci] --- CHANGELOG.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2a6bd573f..5deef38297 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.2.0...master + +## Summary + +* Enhancement - Allow configuring the gateway for dataproviders: [#136](https://github.com/owncloud/ocis-reva/pull/136) + +## Details + +* Enhancement - Allow configuring the gateway for dataproviders: [#136](https://github.com/owncloud/ocis-reva/pull/136) + + This allows using basic or bearer auth when directly talking to dataproviders. + + https://github.com/owncloud/ocis-reva/pull/136 + # Changelog for [0.2.0] (2020-04-15) The following sections list the changes in ocis-reva 0.2.0. From 903cd2860aef3288bc83acb5f2cfaaf76660aac5 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Tue, 21 Apr 2020 13:58:08 +0545 Subject: [PATCH 064/346] fix user related documentation (#138) * fix docs: ldap is the default REVA_USERS_DRIVER * fix docs: update LDAP defaults --- README.md | 2 ++ docs/users.md | 23 ++++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 78993c3c96..cf20b16609 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,8 @@ make generate build To run a demo installation you can use the preconfigured defaults and start all necessary services: ``` +export REVA_USERS_DRIVER=demo + bin/ocis-reva frontend & \ bin/ocis-reva gateway & \ bin/ocis-reva users & \ diff --git a/docs/users.md b/docs/users.md index ef5be45b68..475c21290f 100644 --- a/docs/users.md +++ b/docs/users.md @@ -9,16 +9,20 @@ geekdocFilePath: users.md ### Demo driver -This is the default user driver.It contains three users: +This is a simple user driver for testing. It contains three users: ``` einstein:relativity marie:radioactivty richard:superfluidity ``` +In order to use the `demo` driver you need to export the relevant environment variable: +``` +export REVA_USERS_DRIVER=demo +``` ### JSON driver -In order to switch from the `demo` driver to JSON based users you need to export the relevant environment variables: +In order to switch from the `ldap` driver to JSON based users you need to export the relevant environment variables: ``` export REVA_USERS_DRIVER=json export REVA_USERS_JSON=/path/to/users.json @@ -28,23 +32,20 @@ For the format of the users.json have a look at the [reva examples](https://gith ### LDAP driver -In order to switch from the `demo` driver to LDAP you need to export the relevant environment variable: -``` -export REVA_USERS_DRIVER=ldap -``` +This is the default user driver. If the below defaults don't match your environment change them accordingly: ``` export REVA_LDAP_HOSTNAME=localhost -export REVA_LDAP_PORT=636 -export REVA_LDAP_BASE_DN='dc=owncloud,dc=com' +export REVA_LDAP_PORT=9126 +export REVA_LDAP_BASE_DN='dc=example,dc=org' export REVA_LDAP_USERFILTER='(&(objectclass=posixAccount)(cn=%s))' export REVA_LDAP_GROUPFILTER='(&(objectclass=posixGroup)(cn=%s))' -export REVA_LDAP_BIND_DN='cn=admin,dc=owncloud,dc=com' -export REVA_LDAP_BIND_PASSWORD=admin +export REVA_LDAP_BIND_DN='cn=reva,ou=sysusers,dc=example,dc=org' +export REVA_LDAP_BIND_PASSWORD=reva export REVA_LDAP_SCHEMA_UID=uid export REVA_LDAP_SCHEMA_MAIL=mail -export REVA_LDAP_SCHEMA_DISPLAYNAME=displayName +export REVA_LDAP_SCHEMA_DISPLAYNAME=sn export REVA_LDAP_SCHEMA_CN=cn ``` From b38a11e16f254071ad25ce15a93f530befb059cd Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Tue, 21 Apr 2020 16:41:14 +0545 Subject: [PATCH 065/346] improve testing documentation --- docs/testing.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/testing.md b/docs/testing.md index aacd1f41bd..15524f17d2 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -36,7 +36,7 @@ docker run --hostname ldap.my-company.com \ ### Run ocis-reva with that ldap server -`ocis-reva` provides multiple subcommands. To configure them all via env vars you can export these environment variables. +`ocis-reva` provides multiple subcommands. To configure them all via env vars you can export these environment variables. ``` export REVA_USERS_DRIVER=ldap @@ -80,6 +80,12 @@ OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ BEHAT_FILTER_TAGS='~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage' ``` +Make sure to adjust the settings `TEST_SERVER_URL` and `OCIS_REVA_DATA_ROOT` according to your environment + +This will run all tests that can work with LDAP and are not skipped on OCIS + +To run a single test add `BEHAT_FEATURE=` + ### Notes -- rerunning the tests requires wiping the users in the ldap server, otherwise the tests will fail when trying to populate the users -- users are created with usernames like `user0`, the default password is `123456` \ No newline at end of file +- in a normal case the test-code cleans up users after the test-run, but if a test-run is interrupted (e.g. by CTRL+C) users might have been left on the LDAP server. In that case rerunning the tests requires wiping the users in the ldap server, otherwise the tests will fail when trying to populate the users. +- the tests usually create users in the OU `TestUsers` with usernames specified in the feature file. If not defined in the feature file, most users have the password `123456`, defined by `regularUserPassword` in `behat.yml`, but other passwords are also used, see [`\FeatureContext::getPasswordForUser()`](https://github.com/owncloud/core/blob/master/tests/acceptance/features/bootstrap/FeatureContext.php#L386) for mapping and [`\FeatureContext::__construct`](https://github.com/owncloud/core/blob/master/tests/acceptance/features/bootstrap/FeatureContext.php#L1668) for the password definitions. From bad0d687ef22525ec0412f08120f08ed1012f2dd Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Tue, 21 Apr 2020 17:58:36 +0545 Subject: [PATCH 066/346] document how to use oC10 API tests for BDD in ocis --- docs/testing.md | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/docs/testing.md b/docs/testing.md index 15524f17d2..7a4ea06302 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -86,6 +86,60 @@ This will run all tests that can work with LDAP and are not skipped on OCIS To run a single test add `BEHAT_FEATURE=` +### use existing tests for BDD + +As a lot of scenarios are written for oC10, we can use those tests for Behaviour driven development in ocis. +Every scenario that does not work in OCIS, is tagged with `@skipOnOcis` and additionally should be marked with an issue number e.g. `@issue-ocis-reva-122`. +This tag means that this particular scenario is skipped because of [issue no 122 in the ocis-reva repository](https://github.com/owncloud/ocis-reva/issues/122). +Additionally, some issues have scenarios that demonstrate the current buggy behaviour in ocis(reva) and are skipped on oC10. +Have a look into the [documentation](https://doc.owncloud.com/server/developer_manual/testing/acceptance-tests.html#writing-scenarios-for-bugs) to understand why we are writing those tests. + +If you want to work on a specific issue + +1. run the tests marked with that issue tag + + E.g.: + ``` + make test-acceptance-api \ + TEST_SERVER_URL=http://localhost:9140 \ + TEST_EXTERNAL_USER_BACKENDS=true \ + TEST_OCIS=true \ + OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ + BEHAT_FILTER_TAGS='~@skipOnOcV10&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage&&@issue-ocis-reva-122' + ``` + + Note that the `~@skipOnOcis` tag is replaced by `~@skipOnOcV10` and the issue tag `@issue-ocis-reva-122` is added. + We want to run all tests that are skipped in CI because of this particular bug, but we don't want to run the tests + that demonstrate the current buggy behaviour. + +2. the tests will fail, try to understand how and why they are failing +3. fix the code +4. go back to 1. and repeat till the tests are passing. +5. adjust tests that demonstrate the **buggy** behaviour + + delete the tests in core that are tagged with that particular issue and `@skipOnOcV10`, but be careful because a lot of tests are tagged with multiple issues. + Only delete tests that demonstrate the buggy behaviour if you fixed all bugs related to that test. If not you might have to adjust the test. +6. unskip tests that demonstrate the **correct** behaviour + + The `@skipOnOcis` tag should not be needed now, so delete it, but leave the issue tag for future reference. +7. make a PR to core with the changed tests +8. make a PR to ocis-reva running the adjusted tests + + To confirm that all tests (old and changed) run fine make a PR to ocis-reva with your code changes and point drone to your branch in core to get the changed tests. + For that change this line in the `acceptance-tests` section + + `'git clone -b master --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner',` + + to clone your core branch e.g. + + `'git clone -b fixRevaIssue122 --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner',` + +9. merge PRs + + After you have confirmed that the tests pass everywhere merge the core PR and immediately revert the change in 8. and merge the ocis-reva PR + + If the changes also affect the `ocis` repository make sure the changes get ported over there immediately, otherwise the tests will start failing there. + ### Notes - in a normal case the test-code cleans up users after the test-run, but if a test-run is interrupted (e.g. by CTRL+C) users might have been left on the LDAP server. In that case rerunning the tests requires wiping the users in the ldap server, otherwise the tests will fail when trying to populate the users. - the tests usually create users in the OU `TestUsers` with usernames specified in the feature file. If not defined in the feature file, most users have the password `123456`, defined by `regularUserPassword` in `behat.yml`, but other passwords are also used, see [`\FeatureContext::getPasswordForUser()`](https://github.com/owncloud/core/blob/master/tests/acceptance/features/bootstrap/FeatureContext.php#L386) for mapping and [`\FeatureContext::__construct`](https://github.com/owncloud/core/blob/master/tests/acceptance/features/bootstrap/FeatureContext.php#L1668) for the password definitions. From fe76720fb6b31dccda0e9addf8dfd8581ae46897 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Wed, 22 Apr 2020 13:51:04 +0545 Subject: [PATCH 067/346] mention redis server in the testing doc --- docs/testing.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/testing.md b/docs/testing.md index 7a4ea06302..580efa5b8f 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -10,7 +10,7 @@ geekdocFilePath: testing.md ## Acceptance tests -We are using the ownCloud 10 acceptance testsuite against ocis. To set this up you need the owncloud 10 core repo, an ldap server that the acceptance tests can use to manage users and the ocis-reva code. +We are using the ownCloud 10 acceptance testsuite against ocis. To set this up you need the owncloud 10 core repo, a ldap server that the acceptance tests can use to manage users, a redis server for file-versions and the ocis-reva code. ### Getting the tests @@ -19,7 +19,7 @@ All you need to do to get the acceptance tests is check out the core repo: git clone https://github.com/owncloud/core.git ``` -### Run an ldap server in a docker container +### Run a ldap server in a docker container The ownCloud 10 acceptance tests will need write permission. You can start a suitable ldap server in a docker container with: @@ -33,6 +33,11 @@ docker run --hostname ldap.my-company.com \ -p 127.0.0.1:389:389 \ -p 636:636 -d osixia/openldap ``` +### Run a redis server in a docker container + +File versions need a redis server. Start one with docker by using: + +`docker run -e REDIS_DATABASES=1 -p 6379:6379 -d webhippie/redis:latest` ### Run ocis-reva with that ldap server From 81c14d8e0c11c8ae6648fc4c37d7578fc38d4a9f Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Wed, 22 Apr 2020 13:51:39 +0545 Subject: [PATCH 068/346] delete testing documentation from Readme --- README.md | 58 ------------------------------------------------------- 1 file changed, 58 deletions(-) diff --git a/README.md b/README.md index cf20b16609..8b562ae8b1 100644 --- a/README.md +++ b/README.md @@ -67,64 +67,6 @@ richard:superfluidity For details on the `json` and `ldap` backends see the [documentation](https://owncloud.github.io/ocis-reva/#users) -## Run oC10 API acceptance tests -1. start an LDAP server e.g. with docker: - ``` - docker run --hostname ldap.my-company.com \ - -e LDAP_TLS_VERIFY_CLIENT=never \ - -e LDAP_DOMAIN=owncloud.com \ - -e LDAP_ORGANISATION=ownCloud \ - -e LDAP_ADMIN_PASSWORD=admin \ - --name docker-slapd \ - -p 127.0.0.1:389:389 \ - -p 636:636 -d osixia/openldap - ``` -2. start a Redis server e.g. with docker: - `docker run -e REDIS_DATABASES=1 -p 6379:6379 -d webhippie/redis:latest` - -3. clone oC10 code: `git clone https://github.com/owncloud/core.git` - -4. start reva with `REVA_USERS_DRIVER=ldap`: - ``` - bin/ocis-reva gateway & \ - REVA_USERS_DRIVER=ldap bin/ocis-reva users & \ - REVA_USERS_DRIVER=ldap bin/ocis-reva auth-basic & \ - bin/ocis-reva auth-bearer & \ - bin/ocis-reva sharing & \ - bin/ocis-reva storage-root & \ - bin/ocis-reva storage-home & \ - bin/ocis-reva storage-home-data & \ - bin/ocis-reva storage-oc & \ - bin/ocis-reva storage-oc-data & \ - bin/ocis-reva frontend - ``` - -5. from inside the oC10 repo run the tests: - ``` - make test-acceptance-api \ - TEST_SERVER_URL=http://localhost:9140 \ - TEST_EXTERNAL_USER_BACKENDS=true \ - TEST_OCIS=true \ - OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ - BEHAT_FILTER_TAGS='~@skipOnOcis&&@TestAlsoOnExternalUserBackend&&~@skipOnLDAP' - ``` - - Make sure to adjust the settings `TEST_SERVER_URL` and `OCIS_REVA_DATA_ROOT` according to your environment - - This will run all tests that can work with LDAP and are not skipped on OCIS - To run a subset of tests, e.g. a single suite, file or tag have a look at the [acceptance tests documentation](https://doc.owncloud.com/server/10.0/developer_manual/core/acceptance-tests.html#running-acceptance-tests-for-a-suite). - E.g. you can run all tests that are marked with a specific issue: - ``` - make test-acceptance-api \ - TEST_SERVER_URL=http://localhost:9140 \ - TEST_EXTERNAL_USER_BACKENDS=true \ - TEST_OCIS=true \ - OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ - BEHAT_FILTER_TAGS='@TestAlsoOnExternalUserBackend&&~@skipOnLDAP&&@issue-ocis-reva-46' - ``` - - Note that the `~@skipOnOcis` tag is removed here, because to fix an issue you want also to run the tests that are skipped in the CI run - ## Security If you find a security issue please contact security@owncloud.com first. From 7d8638a67485b2c0b0fe862b86a344fb2e39700e Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Wed, 22 Apr 2020 15:06:05 +0545 Subject: [PATCH 069/346] fix links to documentation (#143) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8b562ae8b1..fe8880ae3f 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ ## Install -You can download prebuilt binaries from the GitHub releases or from our [download mirrors](http://download.owncloud.com/ocis/reva/). For instructions how to install this on your platform you should take a look at our [documentation](https://owncloud.github.io/ocis-reva/) +You can download prebuilt binaries from the GitHub releases or from our [download mirrors](http://download.owncloud.com/ocis/reva/). For instructions how to install this on your platform you should take a look at our [documentation](https://owncloud.github.io/extensions/ocis_reva/) ## Development @@ -65,7 +65,7 @@ marie:radioactivty richard:superfluidity ``` -For details on the `json` and `ldap` backends see the [documentation](https://owncloud.github.io/ocis-reva/#users) +For details on the `json` and `ldap` backends see the [documentation](https://owncloud.github.io/extensions/ocis_reva/users/) ## Security From 913f3f0cd50fed3f77348c4e83af2e8e7b57e665 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 23 Apr 2020 09:53:00 +0200 Subject: [PATCH 070/346] Don't advertise unsupported chunking v2 Removed "chunking" attribute in the DAV capabilities. Please note that chunking v2 is advertised as "chunking 1.0" while chunking v1 is the attribute "bigfilechunking" which is already false. --- pkg/command/frontend.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index 5df60e90b0..fa198d7bcb 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -144,9 +144,7 @@ func Frontend(cfg *config.Config) *cli.Command { "undelete": true, "versioning": true, }, - "dav": map[string]interface{}{ - "chunking": "1.0", - }, + "dav": map[string]interface{}{}, "files_sharing": map[string]interface{}{ "api_enabled": true, "resharing": true, From 3cf2b8334a3a3824a376e9692cd6c121d84d2e52 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 23 Apr 2020 10:40:27 +0200 Subject: [PATCH 071/346] Add missing changelog entry for 145 --- changelog/unreleased/145 | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 changelog/unreleased/145 diff --git a/changelog/unreleased/145 b/changelog/unreleased/145 new file mode 100644 index 0000000000..7b9a5b3a75 --- /dev/null +++ b/changelog/unreleased/145 @@ -0,0 +1,7 @@ +Bugfix: Stop advertising unsupported chunking v2 + +Removed "chunking" attribute in the DAV capabilities. +Please note that chunking v2 is advertised as "chunking 1.0" while +chunking v1 is the attribute "bigfilechunking" which is already false. + +https://github.com/owncloud/ocis-reva/pull/145 From f74320d85d09e245e1023ae38dd33774eaca978a Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Thu, 23 Apr 2020 09:03:55 +0000 Subject: [PATCH 072/346] Automated changelog update [skip ci] --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5deef38297..ce7f420b40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,20 @@ The following sections list the changes in ocis-reva unreleased. ## Summary +* Bugfix - Stop advertising unsupported chunking v2: [#145](https://github.com/owncloud/ocis-reva/pull/145) * Enhancement - Allow configuring the gateway for dataproviders: [#136](https://github.com/owncloud/ocis-reva/pull/136) ## Details +* Bugfix - Stop advertising unsupported chunking v2: [#145](https://github.com/owncloud/ocis-reva/pull/145) + + Removed "chunking" attribute in the DAV capabilities. Please note that chunking v2 is + advertised as "chunking 1.0" while chunking v1 is the attribute "bigfilechunking" which is + already false. + + https://github.com/owncloud/ocis-reva/pull/145 + + * Enhancement - Allow configuring the gateway for dataproviders: [#136](https://github.com/owncloud/ocis-reva/pull/136) This allows using basic or bearer auth when directly talking to dataproviders. From e21222e4e606a6aabe48f8cd6c1b048d6e97819b Mon Sep 17 00:00:00 2001 From: Alex Unger Date: Tue, 28 Apr 2020 08:15:12 +0200 Subject: [PATCH 073/346] Update cs3org/reva, use configured logger on runtime (#153) * inject logger on reva * update ocis-pkg --- go.mod | 5 +++-- go.sum | 16 ++++++++++++++++ pkg/command/authbasic.go | 6 +++++- pkg/command/authbearer.go | 6 +++++- pkg/command/frontend.go | 6 +++++- pkg/command/gateway.go | 6 +++++- pkg/command/sharing.go | 6 +++++- pkg/command/storageeos.go | 6 +++++- pkg/command/storageeosdata.go | 6 +++++- pkg/command/storagehome.go | 6 +++++- pkg/command/storagehomedata.go | 6 +++++- pkg/command/storageoc.go | 6 +++++- pkg/command/storageocdata.go | 6 +++++- pkg/command/storageroot.go | 6 +++++- pkg/command/users.go | 6 +++++- 15 files changed, 84 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index ee9dd958e9..6c5572f0fe 100644 --- a/go.mod +++ b/go.mod @@ -4,15 +4,16 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200416050838-5fc8adf27f83 + github.com/cs3org/reva v0.1.1-0.20200427161359-c1549a8110eb github.com/gofrs/uuid v3.2.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect + github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect github.com/micro/cli/v2 v2.1.1 github.com/micro/go-micro v1.18.0 github.com/micro/go-micro/v2 v2.0.0 github.com/oklog/run v1.0.0 github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203 - github.com/owncloud/ocis-pkg/v2 v2.0.1 + github.com/owncloud/ocis-pkg/v2 v2.2.1 github.com/pelletier/go-toml v1.6.0 // indirect github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee // indirect github.com/prometheus/procfs v0.0.8 // indirect diff --git a/go.sum b/go.sum index b781c175ac..9719dbaf1d 100644 --- a/go.sum +++ b/go.sum @@ -75,6 +75,8 @@ github.com/aws/aws-sdk-go v1.20.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.30.7 h1:IaXfqtioP6p9SFAnNfsqdNczbR5UNbYqvcZUSsCAdTY= github.com/aws/aws-sdk-go v1.30.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.30.12 h1:KrjyosZvkpJjcwMk0RNxMZewQ47v7+ZkbQDXjWsJMs8= +github.com/aws/aws-sdk-go v1.30.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -139,8 +141,12 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cs3org/go-cs3apis v0.0.0-20200408065125-6e23f3ecec0a h1:+enFdliTCV/aaLAvLmeka/r9wUoEypngV4JD5Gy92Uc= github.com/cs3org/go-cs3apis v0.0.0-20200408065125-6e23f3ecec0a/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/go-cs3apis v0.0.0-20200423154403-462ce7762d4a h1:+ucCukFjYS+L7Sg3GbXoD0M0Pz6CQEhJ9HC97GHc9TU= +github.com/cs3org/go-cs3apis v0.0.0-20200423154403-462ce7762d4a/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v0.1.1-0.20200416050838-5fc8adf27f83 h1:UScjXmYUPW0XSolajvxoBixIRVQRldYPmfeF1TI/CuY= github.com/cs3org/reva v0.1.1-0.20200416050838-5fc8adf27f83/go.mod h1:baGkmcec/4WxTux30nbIz05RWKaueMGTkDihcVxLp8Y= +github.com/cs3org/reva v0.1.1-0.20200427161359-c1549a8110eb h1:NmIewIBHshEpn8q1pezRDoG2B7hRVgnWYLX1XSVjx1E= +github.com/cs3org/reva v0.1.1-0.20200427161359-c1549a8110eb/go.mod h1:I20R3mjgLU9y9Ol3pIckY3M948l7mkJORdpfSR9w9tM= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -281,6 +287,7 @@ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 h1:FdBGmSkD2QpQzRWup//SGObvWf2nq89zj9+ta9OvI3A= github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5/go.mod h1:0YZ2wQSuwviXXXGUiK6zXzskyBLAbLXhamxzcFHSLoM= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -457,6 +464,8 @@ github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203 h1:sXVTQ94GWeiBhlgN github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203/go.mod h1:jip86t4OVURJTf8CM/0e2qcji/Y4NG3l2lR8kex4JWw= github.com/owncloud/ocis-pkg/v2 v2.0.1 h1:3ISEtfjAz4pDFczTggIJwKuft3bVsAp1C7dFY9BBPEs= github.com/owncloud/ocis-pkg/v2 v2.0.1/go.mod h1:7bVnn3VUaqdmvpMkXF0QVEF1fRugs35hSkuVTAq9yjk= +github.com/owncloud/ocis-pkg/v2 v2.2.1 h1:LK7WxHYugEFQ9NHTOz0EP8DRjbt51wXhyqruV03z6zI= +github.com/owncloud/ocis-pkg/v2 v2.2.1/go.mod h1:MXv7QzsYsu4YWuyJxhq1kLLmJa/r5gbqHe1FXulMHaw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= @@ -843,10 +852,14 @@ google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.1 h1:C1QC6KzgSiLyBabDi87BbjaGreoRgGUF5nOyvfrAZ1k= google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.0 h1:2pJjwYOdkZ9HlN4sWRYBg9ttH5bCOlsueaM+b/oYjwo= +google.golang.org/grpc v1.29.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= gopkg.in/Acconut/lockfile.v1 v1.1.0/go.mod h1:6UCz3wJ8tSFUsPR6uP/j8uegEtDuEEqFxlpi0JI4Umw= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= @@ -861,12 +874,14 @@ gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.1 h1:GyboHr4UqMiLUybYjd22ZjQIKEJEpgtLXtuGbR21Oho= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU= gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw= gopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.1.9/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= @@ -887,6 +902,7 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3U= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/pkg/command/authbasic.go b/pkg/command/authbasic.go index f6e299bee6..e01ded8633 100644 --- a/pkg/command/authbasic.go +++ b/pkg/command/authbasic.go @@ -117,7 +117,11 @@ func AuthBasic(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/authbearer.go b/pkg/command/authbearer.go index 84afeafc7d..630b673bc9 100644 --- a/pkg/command/authbearer.go +++ b/pkg/command/authbearer.go @@ -102,7 +102,11 @@ func AuthBearer(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index fa198d7bcb..b9dfe2b857 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -203,7 +203,11 @@ func Frontend(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index 08a2fba1af..65d12e5d45 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -162,7 +162,11 @@ func Gateway(cfg *config.Config) *cli.Command { return err } - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/sharing.go b/pkg/command/sharing.go index 78b1456d82..bcfd2428d4 100644 --- a/pkg/command/sharing.go +++ b/pkg/command/sharing.go @@ -103,7 +103,11 @@ func Sharing(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/storageeos.go b/pkg/command/storageeos.go index 57c380d068..40165d7dd5 100644 --- a/pkg/command/storageeos.go +++ b/pkg/command/storageeos.go @@ -139,7 +139,11 @@ func StorageEOS(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/storageeosdata.go b/pkg/command/storageeosdata.go index 9b7725d235..50ceab2632 100644 --- a/pkg/command/storageeosdata.go +++ b/pkg/command/storageeosdata.go @@ -136,7 +136,11 @@ func StorageEOSData(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 3f662f2aff..7e0f583a9f 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -139,7 +139,11 @@ func StorageHome(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 9b2fd4fe23..a00657bd1f 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -136,7 +136,11 @@ func StorageHomeData(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index 60cfaf6fda..34b24e43d1 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -139,7 +139,11 @@ func StorageOC(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 7b7e169153..dd3a2be14b 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -136,7 +136,11 @@ func StorageOCData(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index 44cc481e9b..a2fa370d06 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -136,7 +136,11 @@ func StorageRoot(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). diff --git a/pkg/command/users.go b/pkg/command/users.go index 8b3541abbb..28b872a268 100644 --- a/pkg/command/users.go +++ b/pkg/command/users.go @@ -116,7 +116,11 @@ func Users(cfg *config.Config) *cli.Command { } gr.Add(func() error { - runtime.Run(rcfg, pidFile) + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) return nil }, func(_ error) { logger.Info(). From 1b99644cd8038a9232808ed01c734e68a02d3e6c Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Tue, 28 Apr 2020 14:20:24 +0200 Subject: [PATCH 074/346] rename changelog file --- changelog/unreleased/{145 => unadvertise-chunking-v2.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog/unreleased/{145 => unadvertise-chunking-v2.md} (100%) diff --git a/changelog/unreleased/145 b/changelog/unreleased/unadvertise-chunking-v2.md similarity index 100% rename from changelog/unreleased/145 rename to changelog/unreleased/unadvertise-chunking-v2.md From 3cd95b4b2716955f4e1e7cf6acf5c9a6747c078a Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Tue, 28 Apr 2020 14:37:58 +0200 Subject: [PATCH 075/346] add changelog --- changelog/{unreleased => 0.2.1_2020-04-28}/gatewayconfig.md | 0 changelog/0.2.1_2020-04-28/reva-ocis-logger.md | 5 +++++ .../unadvertise-chunking-v2.md | 0 3 files changed, 5 insertions(+) rename changelog/{unreleased => 0.2.1_2020-04-28}/gatewayconfig.md (100%) create mode 100644 changelog/0.2.1_2020-04-28/reva-ocis-logger.md rename changelog/{unreleased => 0.2.1_2020-04-28}/unadvertise-chunking-v2.md (100%) diff --git a/changelog/unreleased/gatewayconfig.md b/changelog/0.2.1_2020-04-28/gatewayconfig.md similarity index 100% rename from changelog/unreleased/gatewayconfig.md rename to changelog/0.2.1_2020-04-28/gatewayconfig.md diff --git a/changelog/0.2.1_2020-04-28/reva-ocis-logger.md b/changelog/0.2.1_2020-04-28/reva-ocis-logger.md new file mode 100644 index 0000000000..a4267710ee --- /dev/null +++ b/changelog/0.2.1_2020-04-28/reva-ocis-logger.md @@ -0,0 +1,5 @@ +Enhancement: Use a configured logger on reva runtime + +For consistency reasons we need a configured logger that is inline with an ocis logger, so the log cascade can be easily parsed by a human. + +https://github.com/owncloud/ocis-reva/pull/153 diff --git a/changelog/unreleased/unadvertise-chunking-v2.md b/changelog/0.2.1_2020-04-28/unadvertise-chunking-v2.md similarity index 100% rename from changelog/unreleased/unadvertise-chunking-v2.md rename to changelog/0.2.1_2020-04-28/unadvertise-chunking-v2.md From 2b4066faf17ec25f608239c5a90fb759993cb4a2 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Tue, 28 Apr 2020 13:01:20 +0000 Subject: [PATCH 076/346] Automated changelog update [skip ci] --- CHANGELOG.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce7f420b40..deeac0991c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,14 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.2.1] (2020-04-28) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.2.1. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.2.0...master +[0.2.1]: https://github.com/owncloud/ocis-reva/compare/v0.2.0...v0.2.1 ## Summary * Bugfix - Stop advertising unsupported chunking v2: [#145](https://github.com/owncloud/ocis-reva/pull/145) * Enhancement - Allow configuring the gateway for dataproviders: [#136](https://github.com/owncloud/ocis-reva/pull/136) +* Enhancement - Use a configured logger on reva runtime: [#153](https://github.com/owncloud/ocis-reva/pull/153) ## Details @@ -26,6 +27,14 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/owncloud/ocis-reva/pull/136 + +* Enhancement - Use a configured logger on reva runtime: [#153](https://github.com/owncloud/ocis-reva/pull/153) + + For consistency reasons we need a configured logger that is inline with an ocis logger, so the + log cascade can be easily parsed by a human. + + https://github.com/owncloud/ocis-reva/pull/153 + # Changelog for [0.2.0] (2020-04-15) The following sections list the changes in ocis-reva 0.2.0. From 75cac941b6e1f83f070c52a82be5ff7471538d41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 29 Apr 2020 15:23:24 +0200 Subject: [PATCH 077/346] Initial description of storage commands, aspects, (data) providers and drivers (#152) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Initial description of storage commands, aspects, (data) providers and drivers Signed-off-by: Jörn Friedrich Dreyer * link to upstream docs Signed-off-by: Jörn Friedrich Dreyer --- docs/storages.md | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs/storages.md diff --git a/docs/storages.md b/docs/storages.md new file mode 100644 index 0000000000..9b4344eb90 --- /dev/null +++ b/docs/storages.md @@ -0,0 +1,91 @@ +--- +title: "Storages" +date: 2020-04-27T18:46:00+01:00 +weight: 37 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: storages.md +--- + +## Storage commands + +`ocis-reva` has multiple storage provider commands to preconfigure different default configurations for the reva *storage provider* service. While you could rerun `ocis-reva storage-oc` multiple times with different flags to get multiple instances we are giving the different commands the necessary default configuration to allow the `ocis` binary to simply start them and not deal with configuration. + +## Storage providers + +To manage the file tree ocis uses reva *storage providers* that are accessing the underlying storage using a *storage driver*. The driver can be used to change the implementation of a storage aspect to better reflect the actual underying storage capabilities. As an example a move operation on a POSIX filesystem ([theoretically](https://danluu.com/deconstruct-files/)) is an atomic operation. When trying to implement a file tree on top S3 there is no native move operation that can be used. A naive implementation might fall bak on a COPY and DELETE. Some S3 implementations provide a COPY operation that uses an existing key as the source, so the file at least does not need to be reuploaded. In the worst case scenario, the rename of a folder with hundreds of thousands of objects, a reupload for every file has to be made. Instead of hiding this complexity a better choice might be to disable renaming of files or at least folders on S3. There are however implemetations of filesystems on top of S3 that store the tree metadata in dedicated objects or use a completely different persistance mechanism like a distributed key value store to implement the file tree aspect of a storage. + + +{{< hint info >}} +While the *storage provider* is responsible for managing the tree, file up and download is delegated to a dedicated *data provider*. See below. +{{< /hint >}} + +## Storage aspects + +Unfortunately, no POSIX filesystem natively supports all storage aspects that ownCloud 10 requires: +- a hierarchical file tree + - id based lookup + - etag propagation + - subtree size accounting (size of all files in a folder and all its sub folders) +- sharing + - share expiry +- trash or undelete (trash can be done by wrapping rm) +- versions (only snapshots, which is a different concept) + +A more extensive description of the storage aspects can be found in the [upstream documentation](https://reva.link/docs/concepts/storages/#aspects-of-storage-drivers) + +## Storage drivers + +Reva currently has four storage driver implementations that can be used for *storage providers* an well as *data providers*. + +### Local Storage Driver + +The *minimal* storage driver for a POSIX based filesystem. It literally supports none of the storage aspect other than basic file tree management. Sharing can - to a degree - be implemented using POSIX ACLs, which is scheduled after finishing the eos storage driver. + +To provide the other storage aspects we plan to implement a FUSE overlay filesystem which will add the different aspects on top of local filesystems like ext4, btrfs or xfs. It should work on NFSv45 as well, although NFSv4 supports RichACLs and we will explore how to leverage them to implement sharing at a future date. + +### OwnCloud Storage Driver + +This is the current default storage driver. While it implements the file tree (using redis, including id based lookup), etag propagation, trash, versions and sharing (including expiry) using the data directory layout of ownCloud 10 it has [known limitations](https://github.com/owncloud/core/issues/28095) that cannot be fixed without changing the actual layout on disk. + +We plan to deprecate it in favor of the local storage driver in combination with a FUSE based overlay filesystem when the migration path has been fully tested. + +### EOS Storage Driver + +The cern eos storage has evolved with ownCloud and natively supports id based lookup, etag propagation, subtree size accounting, sharing, trash and versions. To use it you need to change the default configuration of the `ocis-reva storage-home` command (or have a look at the Makefile ̀ eos-start` target): + +``` +export REVA_STORAGE_HOME_DRIVER=eos +export REVA_STORAGE_EOS_NAMESPACE=/eos +export REVA_STORAGE_EOS_MASTER_URL="root://eos-mgm1.eoscluster.cern.ch:1094" +export REVA_STORAGE_EOS_ENABLE_HOME=true +export REVA_STORAGE_EOS_LAYOUT="dockertest/{{.Username}}" +``` + +Running it locally also requires the `eos` and `xrootd` binaries. Running it using `make eos-start` will use CentOS based containers that already have the necessary packages installed. + +{{< hint info >}} +Pull requests to add explicit `reva storage-(s3|custom|...)` commands with working defaults are welcome. +{{< /hint >}} + +### S3 Storage Driver + +A naive driver that treats the keys in an S3 cabaple storage as `/` delimited path names. While it does not support MOVE or etag propagation it can be used to read and write files. Better integration with native capabilities like versioning is possible but depends on the Use Case. Several storage solutions that provide an S3 interface also support some form of notifications that can be used to implement etag propagation. + +## Data Providers + +Clients using the CS3 API use an [InitiateFileDownload](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.InitiateFileDownloadRequest) and ]InitiateUpload](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.InitiateFileUploadRequest) request at the [reva gateway](https://cs3org.github.io/cs3apis/#cs3.gateway.v1beta1.GatewayAPI) to obtain a URL endpoint that can be used to eiter GET the file content or upload content using the resumable [tus.io](https://tus.io) protocol. + +The *data provider* uses the same *storage driver* as the *storage provider* but can be scaled independently. + +The dataprovider allows uploading the file to a quarantine area where further data analysis may happen before making the file accessible again. One use case for this is anti virus scanning for files coming from untrusted sources. + +## Future work + +### FUSE overlay filesystem +We are planning to further separate the concerns and use a local storage provider with a FUSE filesystem overlaying the actual POSIX storage that can be used to capture deletes and writes that might happen outside of ocis/reva. + +It would allow us to extend the local storage driver with missing storage aspects while keeping a tree like filesystem that end users are used to see when sshing into the machine. + +### Upload to Quarantine area +Antivirus scanning of random files uploaded from untrusted sources and executing metadata extraction or thumbnail generation should happen in a sandboxed system to prevent malicious users from gaining any information about the system. By spawning a new container with access to only the uploaded data we can further limit the attack surface. \ No newline at end of file From 3ba73ed2ec418c74b412d9a0af30f8a57914895e Mon Sep 17 00:00:00 2001 From: Diogo Castro Date: Wed, 29 Apr 2020 15:54:19 +0200 Subject: [PATCH 078/346] Enable EOS storage commands on ocis-reva (#150) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * EOS storage: remove not needed configs * Add EOS storage commands Co-authored-by: Jörn Friedrich Dreyer --- pkg/command/root.go | 2 ++ pkg/command/storageeos.go | 18 ------------------ pkg/command/storageeosdata.go | 22 ++-------------------- 3 files changed, 4 insertions(+), 38 deletions(-) diff --git a/pkg/command/root.go b/pkg/command/root.go index 41ee8b799c..036c5a6979 100644 --- a/pkg/command/root.go +++ b/pkg/command/root.go @@ -85,6 +85,8 @@ func Execute() error { StorageHomeData(cfg), StorageOC(cfg), StorageOCData(cfg), + StorageEOS(cfg), + StorageEOSData(cfg), Health(cfg), }, } diff --git a/pkg/command/storageeos.go b/pkg/command/storageeos.go index 40165d7dd5..04ef99807f 100644 --- a/pkg/command/storageeos.go +++ b/pkg/command/storageeos.go @@ -108,24 +108,6 @@ func StorageEOS(cfg *config.Config) *cli.Command { "enable_home": cfg.Reva.Storages.EOS.EnableHome, "user_layout": cfg.Reva.Storages.EOS.Layout, }, - "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - }, - "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, - }, - "s3": map[string]interface{}{ - "region": cfg.Reva.Storages.S3.Region, - "access_key": cfg.Reva.Storages.S3.AccessKey, - "secret_key": cfg.Reva.Storages.S3.SecretKey, - "endpoint": cfg.Reva.Storages.S3.Endpoint, - "bucket": cfg.Reva.Storages.S3.Bucket, - "prefix": cfg.Reva.Storages.S3.Prefix, - }, }, "mount_path": cfg.Reva.StorageEOS.MountPath, "mount_id": cfg.Reva.StorageEOS.MountID, diff --git a/pkg/command/storageeosdata.go b/pkg/command/storageeosdata.go index 50ceab2632..eee78a9253 100644 --- a/pkg/command/storageeosdata.go +++ b/pkg/command/storageeosdata.go @@ -19,8 +19,8 @@ import ( // StorageEOSData is the entrypoint for the storage-oc-data command. func StorageEOSData(cfg *config.Config) *cli.Command { return &cli.Command{ - Name: "storage-oc-data", - Usage: "Start reva storage-oc-data service", + Name: "storage-eos-data", + Usage: "Start reva storage-eos-data service", Flags: flagset.StorageEOSDataWithConfig(cfg), Before: func(c *cli.Context) error { cfg.Reva.StorageEOSData.Services = c.StringSlice("service") @@ -110,24 +110,6 @@ func StorageEOSData(cfg *config.Config) *cli.Command { "enable_home": cfg.Reva.Storages.EOS.EnableHome, "user_layout": cfg.Reva.Storages.EOS.Layout, }, - "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - }, - "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, - }, - "s3": map[string]interface{}{ - "region": cfg.Reva.Storages.S3.Region, - "access_key": cfg.Reva.Storages.S3.AccessKey, - "secret_key": cfg.Reva.Storages.S3.SecretKey, - "endpoint": cfg.Reva.Storages.S3.Endpoint, - "bucket": cfg.Reva.Storages.S3.Bucket, - "prefix": cfg.Reva.Storages.S3.Prefix, - }, }, "temp_folder": cfg.Reva.StorageEOSData.TempFolder, }, From 746d5df4c59b5c1994e8c39e3758c58a261db472 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 30 Apr 2020 17:35:18 +0200 Subject: [PATCH 079/346] Document LDAP restart for corrupt users Added more detail about how to wipe the users from LDAP by restarting the container. --- docs/testing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/testing.md b/docs/testing.md index 580efa5b8f..c23d77ed00 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -146,5 +146,5 @@ If you want to work on a specific issue If the changes also affect the `ocis` repository make sure the changes get ported over there immediately, otherwise the tests will start failing there. ### Notes -- in a normal case the test-code cleans up users after the test-run, but if a test-run is interrupted (e.g. by CTRL+C) users might have been left on the LDAP server. In that case rerunning the tests requires wiping the users in the ldap server, otherwise the tests will fail when trying to populate the users. +- in a normal case the test-code cleans up users after the test-run, but if a test-run is interrupted (e.g. by CTRL+C) users might have been left on the LDAP server. In that case rerunning the tests requires wiping the users in the ldap server, otherwise the tests will fail when trying to populate the users. This can be done by simply running `docker stop docker-slapd && docker rm docker-slapd` and [restarting the LDAP server container](#run-a-ldap-server-in-a-docker-container) - the tests usually create users in the OU `TestUsers` with usernames specified in the feature file. If not defined in the feature file, most users have the password `123456`, defined by `regularUserPassword` in `behat.yml`, but other passwords are also used, see [`\FeatureContext::getPasswordForUser()`](https://github.com/owncloud/core/blob/master/tests/acceptance/features/bootstrap/FeatureContext.php#L386) for mapping and [`\FeatureContext::__construct`](https://github.com/owncloud/core/blob/master/tests/acceptance/features/bootstrap/FeatureContext.php#L1668) for the password definitions. From 717233f31ed630f678c25a1ab43df1669890d357 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 30 Apr 2020 17:45:18 +0200 Subject: [PATCH 080/346] Clarify BEHAT_FEATURE value --- docs/testing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/testing.md b/docs/testing.md index 580efa5b8f..39eb0a75a6 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -89,7 +89,7 @@ Make sure to adjust the settings `TEST_SERVER_URL` and `OCIS_REVA_DATA_ROOT` acc This will run all tests that can work with LDAP and are not skipped on OCIS -To run a single test add `BEHAT_FEATURE=` +To run a single test add `BEHAT_FEATURE=` and specify the path to the feature file and an optional line number. For example `BEHAT_FEATURE='tests/acceptance/features/webUIMoveFilesFolders/moveFiles.feature:21'` ### use existing tests for BDD From 5e15b71797c68e4c5c537f5706e3bdcc27807caa Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 1 May 2020 11:43:52 +0545 Subject: [PATCH 081/346] fixtures and clarifications for API acceptance tests --- docs/testing.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/testing.md b/docs/testing.md index 6904b3361f..79e2d27240 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -8,9 +8,9 @@ geekdocFilePath: testing.md --- -## Acceptance tests +## API Acceptance tests -We are using the ownCloud 10 acceptance testsuite against ocis. To set this up you need the owncloud 10 core repo, a ldap server that the acceptance tests can use to manage users, a redis server for file-versions and the ocis-reva code. +We are using the ownCloud 10 API acceptance testsuite against ocis. To set this up you need the owncloud 10 core repo, a ldap server that the acceptance tests can use to manage users, a redis server for file-versions and the ocis-reva code. ### Getting the tests @@ -72,7 +72,7 @@ bin/ocis-reva storage-oc-data & \ bin/ocis-reva users & ``` -### Run the acceptance tests +### Run the API acceptance tests In the ownCloud 10 core repo run @@ -89,7 +89,7 @@ Make sure to adjust the settings `TEST_SERVER_URL` and `OCIS_REVA_DATA_ROOT` acc This will run all tests that can work with LDAP and are not skipped on OCIS -To run a single test add `BEHAT_FEATURE=` and specify the path to the feature file and an optional line number. For example `BEHAT_FEATURE='tests/acceptance/features/webUIMoveFilesFolders/moveFiles.feature:21'` +To run a single test add `BEHAT_FEATURE=` and specify the path to the feature file and an optional line number. For example: `BEHAT_FEATURE='tests/acceptance/features/apiWebdavUpload1/uploadFile.feature:12'` ### use existing tests for BDD From 16422ee85f3ae7cefcda94fa474cd232c4ab994a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 30 Apr 2020 20:41:21 +0200 Subject: [PATCH 082/346] update reva, includes tus support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- go.mod | 4 ++-- go.sum | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 6c5572f0fe..b45c6f188e 100644 --- a/go.mod +++ b/go.mod @@ -4,8 +4,8 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200427161359-c1549a8110eb - github.com/gofrs/uuid v3.2.0+incompatible + github.com/cs3org/reva v0.1.1-0.20200506094053-4da63dd518a5 + github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect github.com/micro/cli/v2 v2.1.1 diff --git a/go.sum b/go.sum index 9719dbaf1d..514053d496 100644 --- a/go.sum +++ b/go.sum @@ -77,6 +77,8 @@ github.com/aws/aws-sdk-go v1.30.7 h1:IaXfqtioP6p9SFAnNfsqdNczbR5UNbYqvcZUSsCAdTY github.com/aws/aws-sdk-go v1.30.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.30.12 h1:KrjyosZvkpJjcwMk0RNxMZewQ47v7+ZkbQDXjWsJMs8= github.com/aws/aws-sdk-go v1.30.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.30.21 h1:19EO1Jr80+jLwJyITzH8c79C/6EwY5mMyasqDbBiCuc= +github.com/aws/aws-sdk-go v1.30.21/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -147,6 +149,10 @@ github.com/cs3org/reva v0.1.1-0.20200416050838-5fc8adf27f83 h1:UScjXmYUPW0XSolaj github.com/cs3org/reva v0.1.1-0.20200416050838-5fc8adf27f83/go.mod h1:baGkmcec/4WxTux30nbIz05RWKaueMGTkDihcVxLp8Y= github.com/cs3org/reva v0.1.1-0.20200427161359-c1549a8110eb h1:NmIewIBHshEpn8q1pezRDoG2B7hRVgnWYLX1XSVjx1E= github.com/cs3org/reva v0.1.1-0.20200427161359-c1549a8110eb/go.mod h1:I20R3mjgLU9y9Ol3pIckY3M948l7mkJORdpfSR9w9tM= +github.com/cs3org/reva v0.1.1-0.20200430155102-09edd2b1a3cc h1:Qojq6MZ1Fl+NJGvnzOFlEBnSlP8LpqDnM3lAWgitWG8= +github.com/cs3org/reva v0.1.1-0.20200430155102-09edd2b1a3cc/go.mod h1:zukbLPBlk3jMQGnmJp7V0QEcp3dgqYc0id9ctzjqJKM= +github.com/cs3org/reva v0.1.1-0.20200506094053-4da63dd518a5 h1:hvrRJsQ89TP7y1Yq+50Cy7NcJ0+SglQ5MeZgy/G4b50= +github.com/cs3org/reva v0.1.1-0.20200506094053-4da63dd518a5/go.mod h1:BOxqZjt8eyD0S+w5yXXAPhqJptno3f3HmslCL7/CacI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -171,6 +177,8 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/eventials/go-tus v0.0.0-20190617130015-9db47421f6a0 h1:iJijjXGuAFvYA8rTypGm7xMcl3QKlhuNn+nn5dNGA/k= +github.com/eventials/go-tus v0.0.0-20190617130015-9db47421f6a0/go.mod h1:CfBfpEHiX55nX/EXkG3bOskUPrYe51D/guFiBupNSik= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= @@ -210,6 +218,8 @@ github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3a github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v3.3.0+incompatible h1:8K4tyRfvU1CYPgJsveYFQMhpFd/wXNM7iK6rR7UHz84= +github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -236,6 +246,13 @@ github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1 h1:ZFgWrT+bLgsYPirOnRfKLYJLvssAegOj/hgyMFdJZe0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= @@ -246,6 +263,8 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -275,6 +294,8 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmg github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 h1:THDBEeQ9xZ8JEaCLyLQqXMMdRqNr0QAUJTIkQAUtFjg= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE= +github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 h1:0IKlLyQ3Hs9nDaiK5cSHAGmcQEIC8l2Ts1u6x5Dfrqg= +github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= @@ -400,6 +421,8 @@ github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQz github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.2.2 h1:dxe5oCinTXiTIcfgmZecdCzPmAJKd46KsCWc35r0TV4= github.com/mitchellh/mapstructure v1.2.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.0 h1:iDwIio/3gk2QtLLEsqU5lInaMzos0hDTz8a6lazSFVw= +github.com/mitchellh/mapstructure v1.3.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -599,6 +622,8 @@ github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoi github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4o2HM0m3DZYQWsj6/MEowD57VzoH0v3d7igeFY= github.com/tus/tusd v1.1.0 h1:y2oBFGeOyqlGgyqD0CloH8FuBrjDk0Tq1IQWvAZnyG8= github.com/tus/tusd v1.1.0/go.mod h1:3DWPOdeCnjBwKtv98y5dSws3itPqfce5TVa0s59LRiA= +github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2 h1:rcji4q9wMuSrz0tZt3kgIr/3WsB5kUqFja6RrgeCGEo= +github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2/go.mod h1:ygrT4B9ZSb27dx3uTnobX5nOFDnutBL6iWKLH4+KpA0= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= github.com/uber/jaeger-client-go v2.15.0+incompatible h1:NP3qsSqNxh8VYr956ur1N/1C1PjvOJnJykCzcD5QHbk= github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= @@ -809,6 +834,8 @@ golang.org/x/tools v0.0.0-20191216173652-a0e659d51361 h1:RIIXAeV6GvDBuADKumTODat golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= @@ -850,10 +877,20 @@ google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRn google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.28.1 h1:C1QC6KzgSiLyBabDi87BbjaGreoRgGUF5nOyvfrAZ1k= google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.0 h1:2pJjwYOdkZ9HlN4sWRYBg9ttH5bCOlsueaM+b/oYjwo= google.golang.org/grpc v1.29.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0 h1:cJv5/xdbk1NnMPR1VP9+HU6gupuG9MLBoH1r6RHZ2MY= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= gopkg.in/Acconut/lockfile.v1 v1.1.0/go.mod h1:6UCz3wJ8tSFUsPR6uP/j8uegEtDuEEqFxlpi0JI4Umw= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= From 0ff37b3431a6c7b2e424dab692a070f1d41255bc Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 7 May 2020 11:38:51 +0200 Subject: [PATCH 083/346] Update reva --- go.mod | 2 +- go.sum | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index b45c6f188e..d497e2d8c6 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200506094053-4da63dd518a5 + github.com/cs3org/reva v0.1.1-0.20200507093219-c853e65a5c10 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 514053d496..5ec52c370b 100644 --- a/go.sum +++ b/go.sum @@ -79,6 +79,7 @@ github.com/aws/aws-sdk-go v1.30.12 h1:KrjyosZvkpJjcwMk0RNxMZewQ47v7+ZkbQDXjWsJMs github.com/aws/aws-sdk-go v1.30.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.30.21 h1:19EO1Jr80+jLwJyITzH8c79C/6EwY5mMyasqDbBiCuc= github.com/aws/aws-sdk-go v1.30.21/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.30.22/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -153,6 +154,8 @@ github.com/cs3org/reva v0.1.1-0.20200430155102-09edd2b1a3cc h1:Qojq6MZ1Fl+NJGvnz github.com/cs3org/reva v0.1.1-0.20200430155102-09edd2b1a3cc/go.mod h1:zukbLPBlk3jMQGnmJp7V0QEcp3dgqYc0id9ctzjqJKM= github.com/cs3org/reva v0.1.1-0.20200506094053-4da63dd518a5 h1:hvrRJsQ89TP7y1Yq+50Cy7NcJ0+SglQ5MeZgy/G4b50= github.com/cs3org/reva v0.1.1-0.20200506094053-4da63dd518a5/go.mod h1:BOxqZjt8eyD0S+w5yXXAPhqJptno3f3HmslCL7/CacI= +github.com/cs3org/reva v0.1.1-0.20200507093219-c853e65a5c10 h1:hSwIn8HT6Y0HW7eOAR5XXvo+169bYyK+fQ+8StNjz8k= +github.com/cs3org/reva v0.1.1-0.20200507093219-c853e65a5c10/go.mod h1:8CEZ2Vg0IQQEF/4rHe4l1KYsNYB9TehC79l5cFdY/zo= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From ffba146253ee9a750f45252ad447260531451992 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 7 May 2020 13:15:53 +0200 Subject: [PATCH 084/346] Add changelog for reva update to 20200807 (#181) --- .../update-reva-to-20200507093219.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 changelog/unreleased/update-reva-to-20200507093219.md diff --git a/changelog/unreleased/update-reva-to-20200507093219.md b/changelog/unreleased/update-reva-to-20200507093219.md new file mode 100644 index 0000000000..2e57b9c37d --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200507093219.md @@ -0,0 +1,32 @@ +Enhancement: update reva to v0.1.1-0.20200507093219 + +- Update reva to v0.1.1-0.20200507093219 (#161, #180) +- Disable chunking v1 by default (reva/#678) +- Implement ocs to http status code mapping (#26, reva/#696, reva/#707, reva/#711) +- Handle the case if directory already exists (reva/#695) +- Added TUS upload support (reva/#674, reva/#725, reva/#717) +- Always return file sizes in Webdav PROPFIND (reva/#712) +- Use default mime type when none was detected (reva/#713) +- Fixed Webdav shallow COPY (reva/#714) +- Fixed arbitrary namespace usage for custom properties in PROPFIND (#57, reva/#720) +- Implement returning Webdav custom properties from xattr (#57, reva/#721) +- Minor fix in OCM share pkg (reva/#718) + +https://github.com/owncloud/ocis-reva/pull/161 +https://github.com/owncloud/ocis-reva/pull/180 +https://github.com/cs3org/reva/pull/678 +https://github.com/owncloud/ocis-reva/issues/26 +https://github.com/cs3org/reva/pull/696 +https://github.com/cs3org/reva/pull/707 +https://github.com/cs3org/reva/pull/711 +https://github.com/cs3org/reva/pull/695 +https://github.com/cs3org/reva/pull/674 +https://github.com/cs3org/reva/pull/725 +https://github.com/cs3org/reva/pull/717 +https://github.com/owncloud/ocis-reva/issues/67 +https://github.com/cs3org/reva/pull/712 +https://github.com/cs3org/reva/pull/713 +https://github.com/owncloud/ocis-reva/issues/57 +https://github.com/cs3org/reva/pull/720 +https://github.com/cs3org/reva/pull/718 + From 28360fcbf0adc7bfb78a715f125fd1a27209c166 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 7 May 2020 11:26:15 +0000 Subject: [PATCH 085/346] Automated changelog update [skip ci] --- CHANGELOG.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index deeac0991c..397e8fbbb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,44 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.2.1...master + +## Summary + +* Enhancement - Update reva to v0.1.1-0.20200507093219: [#161](https://github.com/owncloud/ocis-reva/pull/161) + +## Details + +* Enhancement - Update reva to v0.1.1-0.20200507093219: [#161](https://github.com/owncloud/ocis-reva/pull/161) + + - Update reva to v0.1.1-0.20200507093219 (#161, #180) - Disable chunking v1 by default + (reva/#678) - Implement ocs to http status code mapping (#26, reva/#696, reva/#707, + reva/#711) - Handle the case if directory already exists (reva/#695) - Added TUS upload + support (reva/#674, reva/#725, reva/#717) - Always return file sizes in Webdav PROPFIND + (reva/#712) - Use default mime type when none was detected (reva/#713) - Fixed Webdav shallow + COPY (reva/#714) - Fixed arbitrary namespace usage for custom properties in PROPFIND (#57, + reva/#720) - Implement returning Webdav custom properties from xattr (#57, reva/#721) - + Minor fix in OCM share pkg (reva/#718) + + https://github.com/owncloud/ocis-reva/issues/26 + https://github.com/owncloud/ocis-reva/issues/67 + https://github.com/owncloud/ocis-reva/issues/57 + https://github.com/owncloud/ocis-reva/pull/161 + https://github.com/owncloud/ocis-reva/pull/180 + https://github.com/cs3org/reva/pull/678 + https://github.com/cs3org/reva/pull/696 + https://github.com/cs3org/reva/pull/707 + https://github.com/cs3org/reva/pull/711 + https://github.com/cs3org/reva/pull/695 + https://github.com/cs3org/reva/pull/674 + https://github.com/cs3org/reva/pull/725 + https://github.com/cs3org/reva/pull/717 + https://github.com/cs3org/reva/pull/712 + https://github.com/cs3org/reva/pull/713 + https://github.com/cs3org/reva/pull/720 + https://github.com/cs3org/reva/pull/718 + # Changelog for [0.2.1] (2020-04-28) The following sections list the changes in ocis-reva 0.2.1. From 729d85050922bc28c7b1dfc5f53365f65e387364 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 12 May 2020 16:43:15 +0200 Subject: [PATCH 086/346] Update reva to v0.1.1-0.20200512135421 --- .../update-reva-to-20200507093219.md | 19 +++++++++++++++++-- go.mod | 2 +- go.sum | 3 +++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/changelog/unreleased/update-reva-to-20200507093219.md b/changelog/unreleased/update-reva-to-20200507093219.md index 2e57b9c37d..28b3e569e2 100644 --- a/changelog/unreleased/update-reva-to-20200507093219.md +++ b/changelog/unreleased/update-reva-to-20200507093219.md @@ -1,6 +1,11 @@ -Enhancement: update reva to v0.1.1-0.20200507093219 +Enhancement: update reva to v0.1.1-0.20200512135421 -- Update reva to v0.1.1-0.20200507093219 (#161, #180) +- Update reva to v0.1.1-0.20200507093219 (#161, #180, #192) +- Fixed regression when uploading empty files to OCFS or EOS with PUT and TUS (#188, reva/#734) +- On delete move the file versions to the trashbin (#94, reva/#731) +- Fix OCFS move operation (#182, reva/#729) +- Fix OCFS custom property / xattr removal (reva/#728) +- Retry trashbin in case of timestamp collision (reva/#730) - Disable chunking v1 by default (reva/#678) - Implement ocs to http status code mapping (#26, reva/#696, reva/#707, reva/#711) - Handle the case if directory already exists (reva/#695) @@ -14,6 +19,7 @@ Enhancement: update reva to v0.1.1-0.20200507093219 https://github.com/owncloud/ocis-reva/pull/161 https://github.com/owncloud/ocis-reva/pull/180 +https://github.com/owncloud/ocis-reva/pull/192 https://github.com/cs3org/reva/pull/678 https://github.com/owncloud/ocis-reva/issues/26 https://github.com/cs3org/reva/pull/696 @@ -29,4 +35,13 @@ https://github.com/cs3org/reva/pull/713 https://github.com/owncloud/ocis-reva/issues/57 https://github.com/cs3org/reva/pull/720 https://github.com/cs3org/reva/pull/718 +https://github.com/owncloud/ocis-reva/issue/94 +https://github.com/cs3org/reva/pull/731 +https://github.com/owncloud/ocis-reva/issue/188 +https://github.com/cs3org/reva/pull/734 +https://github.com/owncloud/ocis-reva/issue/182 +https://github.com/cs3org/reva/pull/729 +https://github.com/cs3org/reva/pull/728 +https://github.com/cs3org/reva/pull/730 + diff --git a/go.mod b/go.mod index d497e2d8c6..833864571c 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200507093219-c853e65a5c10 + github.com/cs3org/reva v0.1.1-0.20200512135421-3aa67e818a8d github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 5ec52c370b..8b8edd848f 100644 --- a/go.sum +++ b/go.sum @@ -80,6 +80,7 @@ github.com/aws/aws-sdk-go v1.30.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZve github.com/aws/aws-sdk-go v1.30.21 h1:19EO1Jr80+jLwJyITzH8c79C/6EwY5mMyasqDbBiCuc= github.com/aws/aws-sdk-go v1.30.21/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.30.22/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.30.25/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -156,6 +157,8 @@ github.com/cs3org/reva v0.1.1-0.20200506094053-4da63dd518a5 h1:hvrRJsQ89TP7y1Yq+ github.com/cs3org/reva v0.1.1-0.20200506094053-4da63dd518a5/go.mod h1:BOxqZjt8eyD0S+w5yXXAPhqJptno3f3HmslCL7/CacI= github.com/cs3org/reva v0.1.1-0.20200507093219-c853e65a5c10 h1:hSwIn8HT6Y0HW7eOAR5XXvo+169bYyK+fQ+8StNjz8k= github.com/cs3org/reva v0.1.1-0.20200507093219-c853e65a5c10/go.mod h1:8CEZ2Vg0IQQEF/4rHe4l1KYsNYB9TehC79l5cFdY/zo= +github.com/cs3org/reva v0.1.1-0.20200512135421-3aa67e818a8d h1:lDNY2AnYNY2RLlKebaeHBsqfepXvg8k5ntYvEZ/zjxA= +github.com/cs3org/reva v0.1.1-0.20200512135421-3aa67e818a8d/go.mod h1:YIgUciBl5fg6xhV+ZPWkfWlc5H4wjXg/8+ngIYPzvKI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From b10c4ec68b63a1f3ddde512766fb76cb3ce42ffe Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Wed, 13 May 2020 07:41:18 +0000 Subject: [PATCH 087/346] Automated changelog update [skip ci] --- CHANGELOG.md | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 397e8fbbb3..4a4cbfff06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,26 +6,30 @@ The following sections list the changes in ocis-reva unreleased. ## Summary -* Enhancement - Update reva to v0.1.1-0.20200507093219: [#161](https://github.com/owncloud/ocis-reva/pull/161) +* Enhancement - Update reva to v0.1.1-0.20200512135421: [#161](https://github.com/owncloud/ocis-reva/pull/161) ## Details -* Enhancement - Update reva to v0.1.1-0.20200507093219: [#161](https://github.com/owncloud/ocis-reva/pull/161) +* Enhancement - Update reva to v0.1.1-0.20200512135421: [#161](https://github.com/owncloud/ocis-reva/pull/161) - - Update reva to v0.1.1-0.20200507093219 (#161, #180) - Disable chunking v1 by default - (reva/#678) - Implement ocs to http status code mapping (#26, reva/#696, reva/#707, - reva/#711) - Handle the case if directory already exists (reva/#695) - Added TUS upload - support (reva/#674, reva/#725, reva/#717) - Always return file sizes in Webdav PROPFIND - (reva/#712) - Use default mime type when none was detected (reva/#713) - Fixed Webdav shallow - COPY (reva/#714) - Fixed arbitrary namespace usage for custom properties in PROPFIND (#57, - reva/#720) - Implement returning Webdav custom properties from xattr (#57, reva/#721) - - Minor fix in OCM share pkg (reva/#718) + - Update reva to v0.1.1-0.20200507093219 (#161, #180, #192) - Fixed regression when + uploading empty files to OCFS or EOS with PUT and TUS (#188, reva/#734) - On delete move the file + versions to the trashbin (#94, reva/#731) - Fix OCFS move operation (#182, reva/#729) - Fix + OCFS custom property / xattr removal (reva/#728) - Retry trashbin in case of timestamp + collision (reva/#730) - Disable chunking v1 by default (reva/#678) - Implement ocs to http + status code mapping (#26, reva/#696, reva/#707, reva/#711) - Handle the case if directory + already exists (reva/#695) - Added TUS upload support (reva/#674, reva/#725, reva/#717) - + Always return file sizes in Webdav PROPFIND (reva/#712) - Use default mime type when none was + detected (reva/#713) - Fixed Webdav shallow COPY (reva/#714) - Fixed arbitrary namespace + usage for custom properties in PROPFIND (#57, reva/#720) - Implement returning Webdav custom + properties from xattr (#57, reva/#721) - Minor fix in OCM share pkg (reva/#718) https://github.com/owncloud/ocis-reva/issues/26 https://github.com/owncloud/ocis-reva/issues/67 https://github.com/owncloud/ocis-reva/issues/57 https://github.com/owncloud/ocis-reva/pull/161 https://github.com/owncloud/ocis-reva/pull/180 + https://github.com/owncloud/ocis-reva/pull/192 https://github.com/cs3org/reva/pull/678 https://github.com/cs3org/reva/pull/696 https://github.com/cs3org/reva/pull/707 @@ -38,6 +42,14 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/cs3org/reva/pull/713 https://github.com/cs3org/reva/pull/720 https://github.com/cs3org/reva/pull/718 + https://github.com/cs3org/reva/pull/731 + https://github.com/cs3org/reva/pull/734 + https://github.com/cs3org/reva/pull/729 + https://github.com/cs3org/reva/pull/728 + https://github.com/cs3org/reva/pull/730 + https://github.com/owncloud/ocis-reva/issue/94 + https://github.com/owncloud/ocis-reva/issue/188 + https://github.com/owncloud/ocis-reva/issue/182 # Changelog for [0.2.1] (2020-04-28) From 7f1af201fe9652502557e6601c2a790c3afadd3a Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 13 May 2020 10:00:45 +0200 Subject: [PATCH 088/346] Enable litmus tests for copymove All issues were solved, we can enable this on CI --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 1913e2f693..00483af8f3 100644 --- a/.drone.star +++ b/.drone.star @@ -210,7 +210,7 @@ def testing(ctx): 'LITMUS_URL': 'http://reva-server:9140/remote.php/webdav', 'LITMUS_USERNAME': 'tu1', 'LITMUS_PASSWORD': '1234', - 'TESTS': 'basic http' + 'TESTS': 'basic http copymove' }, }, ], From e797eb0f055cb8855b3a9b8f86e500e0c6e0767f Mon Sep 17 00:00:00 2001 From: HariBhandari07 Date: Fri, 8 May 2020 16:56:17 +0545 Subject: [PATCH 089/346] [Tests-only] Create test-skeleton files while creating user --- .drone.star | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 00483af8f3..5c861aeff2 100644 --- a/.drone.star +++ b/.drone.star @@ -174,9 +174,11 @@ def testing(ctx): 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'TEST_OCIS':'true', - 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/' + 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', + 'SKELETON_DIR': '/var/www/owncloud/server/apps/testing/data/apiSkeleton' }, 'commands': [ + 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /var/www/owncloud/server/apps/testing', 'git clone -b master --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner', 'cd /srv/app/testrunner', 'make test-acceptance-api' From 42b6f631cbd944a593eecd90f8b9acb034a726a6 Mon Sep 17 00:00:00 2001 From: HariBhandari07 Date: Thu, 14 May 2020 10:32:59 +0545 Subject: [PATCH 090/346] [Tests-only] Fix skeleton directory path --- .drone.star | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.star b/.drone.star index 5c861aeff2..90a8269221 100644 --- a/.drone.star +++ b/.drone.star @@ -175,10 +175,10 @@ def testing(ctx): 'TEST_EXTERNAL_USER_BACKENDS':'true', 'TEST_OCIS':'true', 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', - 'SKELETON_DIR': '/var/www/owncloud/server/apps/testing/data/apiSkeleton' + 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton' }, 'commands': [ - 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /var/www/owncloud/server/apps/testing', + 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', 'git clone -b master --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner', 'cd /srv/app/testrunner', 'make test-acceptance-api' From f689f618690485d9b11dec5d57a209a14091d2b9 Mon Sep 17 00:00:00 2001 From: Dipak Acharya Date: Tue, 12 May 2020 13:25:19 +0545 Subject: [PATCH 091/346] [Tests-Only] Run ui tests with phoenix --- .drone.star | 161 ++++++++++++++++++++--- tests/config/config.json | 19 +++ tests/config/identifier-registration.yml | 16 +++ 3 files changed, 175 insertions(+), 21 deletions(-) create mode 100644 tests/config/config.json create mode 100644 tests/config/identifier-registration.yml diff --git a/.drone.star b/.drone.star index 90a8269221..2aed35a0eb 100644 --- a/.drone.star +++ b/.drone.star @@ -126,6 +126,68 @@ def testing(ctx): }, }, }, + { + 'name': 'copy-config', + 'image': 'webhippie/golang:1.13', + 'commands': [ + 'mkdir -p /srv/config/drone', + 'ls -la tests/config', + 'cp -r tests/config/config.json /srv/config/drone', + 'cp -r tests/config/identifier-registration.yml /srv/config/drone', + 'ls -la /srv/config/drone', + ], + 'volumes': [ + { + 'name': 'config', + 'path': '/srv/config', + }, + ] + }, + { + 'name': 'konnectd', + 'image': 'owncloud/ocis-konnectd', + 'pull': 'always', + 'detach': True, + 'environment': { + 'LDAP_BASEDN': 'ou=TestUsers,dc=owncloud,dc=com', + 'LDAP_BINDDN': 'cn=admin,dc=owncloud,dc=com', + 'LDAP_URI': 'ldap://ldap:389', + 'KONNECTD_IDENTIFIER_REGISTRATION_CONF': '/srv/config/drone/identifier-registration.yml', + 'KONNECTD_ISS': 'https://konnectd:9130', + 'KONNECTD_TLS': 'true', + 'LDAP_BINDPW': 'admin', + 'LDAP_SCOPE': 'sub', + 'LDAP_LOGIN_ATTRIBUTE': 'uid', + 'LDAP_EMAIL_ATTRIBUTE': 'mail', + 'LDAP_NAME_ATTRIBUTE': 'givenName', + 'LDAP_UUID_ATTRIBUTE': 'uid', + 'LDAP_UUID_ATTRIBUTE_TYPE': 'text', + 'LDAP_FILTER': "(objectClass=posixaccount)" + }, + 'volumes': [ + { + 'name': 'config', + 'path': '/srv/config', + }, + ] + }, + { + 'name': 'phoenix', + 'image': 'owncloud/ocis-phoenix', + 'pull': 'always', + 'detach': True, + 'environment': { + 'PHOENIX_WEB_CONFIG': '/srv/config/drone/config.json', + # 'PHOENIX_ASSET_PATH': '/var/www/owncloud/phoenix/dist', + 'PHOENIX_OIDC_CLIENT_ID': 'phoenix' + }, + 'volumes': [ + { + 'name': 'config', + 'path': '/srv/config', + }, + ] + }, { 'name': 'reva-server', 'image': 'webhippie/golang:1.13', @@ -142,7 +204,8 @@ def testing(ctx): 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', - 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json' + 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', + 'REVA_OIDC_ISSUER': 'https://konnectd:9130', }, 'commands': [ 'mkdir -p /srv/app/tmp/reva', @@ -164,31 +227,70 @@ def testing(ctx): }, ] }, + # { + # 'name': 'acceptance-tests', + # 'image': 'owncloudci/php:7.2', + # 'pull': 'always', + # 'environment' : { + # 'TEST_SERVER_URL': 'http://reva-server:9140', + # 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage', + # 'REVA_LDAP_HOSTNAME':'ldap', + # 'TEST_EXTERNAL_USER_BACKENDS':'true', + # 'TEST_OCIS':'true', + # 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/' + # }, + # 'commands': [ + # 'git clone -b master --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner', + # 'cd /srv/app/testrunner', + # 'make test-acceptance-api' + # ], + # 'volumes': [ + # { + # 'name': 'gopath', + # 'path': '/srv/app', + # }, + # ] + # }, { - 'name': 'acceptance-tests', - 'image': 'owncloudci/php:7.2', + 'name': 'ui-tests', + 'image': 'owncloudci/nodejs:11', 'pull': 'always', 'environment' : { - 'TEST_SERVER_URL': 'http://reva-server:9140', - 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage', + 'TEST_TAGS': 'not @skipOnOCIS and not @skip', 'REVA_LDAP_HOSTNAME':'ldap', - 'TEST_EXTERNAL_USER_BACKENDS':'true', - 'TEST_OCIS':'true', + 'SERVER_HOST': 'http://phoenix:9100', + 'BACKEND_HOST': 'http://reva-server:9140', + 'SELENIUM_PORT': '4444', + 'RUN_ON_OCIS': 'true', + 'OCIS_SKELETON_DIR': '/srv/app/testingapp/data/webUISkeleton', 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', - 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton' - }, - 'commands': [ - 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', - 'git clone -b master --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner', - 'cd /srv/app/testrunner', - 'make test-acceptance-api' - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ] + 'LDAP_SERVER_URL': 'ldap://ldap', + 'PHOENIX_CONFIG': '/srv/config/drone/config.json', + 'TEST_CONTEXT': '', + 'LOCAL_UPLOAD_DIR': '/uploads', + }, + 'commands': [ + 'ls -la /srv/config/drone', + 'git clone https://github.com/owncloud/testing.git /srv/app/testingapp', + 'git clone -b master --depth=1 https://github.com/owncloud/phoenix.git /srv/app/uitestrunner', + 'cd /srv/app/uitestrunner', + 'yarn install --all', + 'yarn run acceptance-tests-drone' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + { + 'name': 'config', + 'path': '/srv/config', + }, + { + 'name': 'uploads', + 'path': '/srv/app/phoenix/tests/acceptance/uitestrunner', + }, + ] }, { 'name': 'import-litmus-users', @@ -229,6 +331,15 @@ def testing(ctx): 'HOSTNAME': 'ldap' }, }, + { + 'name': 'selenium', + 'image': 'selenium/standalone-chrome-debug:3.141.59-20200326', + 'pull': 'always', + 'volumes': [{ + 'name': 'uploads', + 'path': '/uploads' + }], + }, { 'name': 'redis', 'image': 'webhippie/redis', @@ -243,6 +354,14 @@ def testing(ctx): 'name': 'gopath', 'temp': {}, }, + { + 'name': 'config', + 'temp': {}, + }, + { + 'name': 'uploads', + 'temp': {}, + }, ], 'trigger': { 'ref': [ diff --git a/tests/config/config.json b/tests/config/config.json new file mode 100644 index 0000000000..99a71225c0 --- /dev/null +++ b/tests/config/config.json @@ -0,0 +1,19 @@ +{ + "server": "http://reva-server:9140", + "theme": "owncloud", + "version": "0.1.0", + "openIdConnect": { + "metadata_url": "https://konnectd:9130/.well-known/openid-configuration", + "authority": "https://konnectd:9130", + "client_id": "phoenix", + "response_type": "code", + "scope": "openid profile email" + }, + "apps": [ + "files", + "draw-io", + "pdf-viewer", + "markdown-editor", + "media-viewer" + ] +} diff --git a/tests/config/identifier-registration.yml b/tests/config/identifier-registration.yml new file mode 100644 index 0000000000..89f1b1ab05 --- /dev/null +++ b/tests/config/identifier-registration.yml @@ -0,0 +1,16 @@ +--- + +# OpenID Connect client registry. +clients: + - id: phoenix + name: OCIS + application_type: web + insecure: yes + trusted: yes + redirect_uris: + - http://phoenix:9100/oidc-callback.html + - http://phoenix:9100/ + origins: + - http://phoenix:9100 + +authorities: From 583950c38a2894e34b2b03170fa17fbbf4dd763e Mon Sep 17 00:00:00 2001 From: Dipak Acharya Date: Wed, 13 May 2020 09:20:01 +0545 Subject: [PATCH 092/346] [Tests-Only] Refactor CI Pipelines --- .drone.star | 312 +++++++++++++++++++---- tests/config/identifier-registration.yml | 2 +- 2 files changed, 263 insertions(+), 51 deletions(-) diff --git a/.drone.star b/.drone.star index 2aed35a0eb..e9c9f661a2 100644 --- a/.drone.star +++ b/.drone.star @@ -1,6 +1,8 @@ def main(ctx): before = [ testing(ctx), + apiTests(ctx), + uiTests(ctx), ] stages = [ @@ -22,6 +24,132 @@ def main(ctx): return before + stages + after +def apiTests(ctx): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': 'API-Tests', + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'steps': [ + { + 'name': 'build', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make build', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'reva-server', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'detach': True, + 'environment' : { + 'REVA_LDAP_HOSTNAME': 'ldap', + 'REVA_LDAP_PORT': 636, + 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', + 'REVA_LDAP_BIND_PASSWORD': 'admin', + 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', + 'REVA_LDAP_SCHEMA_DISPLAYNAME': 'displayName', + 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', + 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', + 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json' + }, + 'commands': [ + 'mkdir -p /srv/app/tmp/reva', + 'bin/ocis-reva gateway &', + 'bin/ocis-reva users &', + 'bin/ocis-reva auth-basic &', + 'bin/ocis-reva auth-bearer &', + 'bin/ocis-reva sharing &', + 'bin/ocis-reva storage-home &', + 'bin/ocis-reva storage-home-data &', + 'bin/ocis-reva storage-oc &', + 'bin/ocis-reva storage-oc-data &', + 'bin/ocis-reva frontend' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, + { + 'name': 'acceptance-tests', + 'image': 'owncloudci/php:7.2', + 'pull': 'always', + 'environment' : { + 'TEST_SERVER_URL': 'http://reva-server:9140', + 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage', + 'REVA_LDAP_HOSTNAME':'ldap', + 'TEST_EXTERNAL_USER_BACKENDS':'true', + 'TEST_OCIS':'true', + 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', + 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton' + }, + 'commands': [ + 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', + 'git clone -b master --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner', + 'cd /srv/app/testrunner', + 'make test-acceptance-api' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, + ], + 'services': [ + { + 'name': 'ldap', + 'image': 'osixia/openldap', + 'pull': 'always', + 'environment': { + 'LDAP_DOMAIN': 'owncloud.com', + 'LDAP_ORGANISATION': 'owncloud', + 'LDAP_ADMIN_PASSWORD': 'admin', + 'LDAP_TLS_VERIFY_CLIENT': 'never', + 'HOSTNAME': 'ldap' + }, + }, + { + 'name': 'redis', + 'image': 'webhippie/redis', + 'pull': 'always', + 'environment': { + 'REDIS_DATABASES': 1 + }, + }, + ], + 'volumes': [ + { + 'name': 'gopath', + 'temp': {}, + }, + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + 'refs/pull/**', + ], + }, + } + def testing(ctx): return { 'kind': 'pipeline', @@ -126,6 +254,140 @@ def testing(ctx): }, }, }, + { + 'name': 'reva-server', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'detach': True, + 'environment' : { + 'REVA_LDAP_HOSTNAME': 'ldap', + 'REVA_LDAP_PORT': 636, + 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', + 'REVA_LDAP_BIND_PASSWORD': 'admin', + 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', + 'REVA_LDAP_SCHEMA_DISPLAYNAME': 'displayName', + 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', + 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', + 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', + 'REVA_OIDC_ISSUER': 'https://konnectd:9130', + }, + 'commands': [ + 'mkdir -p /srv/app/tmp/reva', + 'bin/ocis-reva gateway &', + 'bin/ocis-reva users &', + 'bin/ocis-reva auth-basic &', + 'bin/ocis-reva auth-bearer &', + 'bin/ocis-reva sharing &', + 'bin/ocis-reva storage-home &', + 'bin/ocis-reva storage-home-data &', + 'bin/ocis-reva storage-oc &', + 'bin/ocis-reva storage-oc-data &', + 'bin/ocis-reva frontend' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, + { + 'name': 'import-litmus-users', + 'image': 'emeraldsquad/ldapsearch', + 'pull': 'always', + 'commands': [ + 'ldapadd -h ldap -p 389 -D "cn=admin,dc=owncloud,dc=com" -w admin -f ./tests/data/testusers.ldif', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'litmus', + 'image': 'owncloud/litmus:latest', + 'pull': 'always', + 'environment' : { + 'LITMUS_URL': 'http://reva-server:9140/remote.php/webdav', + 'LITMUS_USERNAME': 'tu1', + 'LITMUS_PASSWORD': '1234', + 'TESTS': 'basic http copymove' + }, + }, + ], + 'services': [ + { + 'name': 'ldap', + 'image': 'osixia/openldap', + 'pull': 'always', + 'environment': { + 'LDAP_DOMAIN': 'owncloud.com', + 'LDAP_ORGANISATION': 'owncloud', + 'LDAP_ADMIN_PASSWORD': 'admin', + 'LDAP_TLS_VERIFY_CLIENT': 'never', + 'HOSTNAME': 'ldap' + }, + }, + { + 'name': 'redis', + 'image': 'webhippie/redis', + 'pull': 'always', + 'environment': { + 'REDIS_DATABASES': 1 + }, + }, + ], + 'volumes': [ + { + 'name': 'gopath', + 'temp': {}, + }, + { + 'name': 'config', + 'temp': {}, + }, + { + 'name': 'uploads', + 'temp': {}, + }, + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + 'refs/pull/**', + ], + }, + } + +def uiTests(ctx): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': 'Phoenix-UI-Tests', + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'steps': [ + { + 'name': 'build', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make build', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, { 'name': 'copy-config', 'image': 'webhippie/golang:1.13', @@ -178,7 +440,6 @@ def testing(ctx): 'detach': True, 'environment': { 'PHOENIX_WEB_CONFIG': '/srv/config/drone/config.json', - # 'PHOENIX_ASSET_PATH': '/var/www/owncloud/phoenix/dist', 'PHOENIX_OIDC_CLIENT_ID': 'phoenix' }, 'volumes': [ @@ -227,30 +488,6 @@ def testing(ctx): }, ] }, - # { - # 'name': 'acceptance-tests', - # 'image': 'owncloudci/php:7.2', - # 'pull': 'always', - # 'environment' : { - # 'TEST_SERVER_URL': 'http://reva-server:9140', - # 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage', - # 'REVA_LDAP_HOSTNAME':'ldap', - # 'TEST_EXTERNAL_USER_BACKENDS':'true', - # 'TEST_OCIS':'true', - # 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/' - # }, - # 'commands': [ - # 'git clone -b master --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner', - # 'cd /srv/app/testrunner', - # 'make test-acceptance-api' - # ], - # 'volumes': [ - # { - # 'name': 'gopath', - # 'path': '/srv/app', - # }, - # ] - # }, { 'name': 'ui-tests', 'image': 'owncloudci/nodejs:11', @@ -292,31 +529,6 @@ def testing(ctx): }, ] }, - { - 'name': 'import-litmus-users', - 'image': 'emeraldsquad/ldapsearch', - 'pull': 'always', - 'commands': [ - 'ldapadd -h ldap -p 389 -D "cn=admin,dc=owncloud,dc=com" -w admin -f ./tests/data/testusers.ldif', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'litmus', - 'image': 'owncloud/litmus:latest', - 'pull': 'always', - 'environment' : { - 'LITMUS_URL': 'http://reva-server:9140/remote.php/webdav', - 'LITMUS_USERNAME': 'tu1', - 'LITMUS_PASSWORD': '1234', - 'TESTS': 'basic http copymove' - }, - }, ], 'services': [ { diff --git a/tests/config/identifier-registration.yml b/tests/config/identifier-registration.yml index 89f1b1ab05..0515385af4 100644 --- a/tests/config/identifier-registration.yml +++ b/tests/config/identifier-registration.yml @@ -11,6 +11,6 @@ clients: - http://phoenix:9100/oidc-callback.html - http://phoenix:9100/ origins: - - http://phoenix:9100 + - http://phoenix:9100 authorities: From 63f5f54ece7f40d6b5e42895fe254569417e4864 Mon Sep 17 00:00:00 2001 From: Dipak Acharya Date: Tue, 19 May 2020 09:59:57 +0545 Subject: [PATCH 093/346] [Tests-Only] use latest version of phoenix for UI tests in CI --- .drone.star | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/.drone.star b/.drone.star index e9c9f661a2..f960c7ff84 100644 --- a/.drone.star +++ b/.drone.star @@ -433,20 +433,46 @@ def uiTests(ctx): }, ] }, + { + 'name': 'clone-build-phoenix', + 'image': 'owncloudci/nodejs:10', + 'pull': 'always', + 'commands': [ + 'git clone -b master --depth=1 https://github.com/owncloud/phoenix.git /srv/app/uitestrunner', + 'cd /srv/app/uitestrunner', + 'yarn install --all', + 'yarn dist', + ], + 'volumes': [ + { + 'name': 'config', + 'path': '/srv/config', + }, + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, { 'name': 'phoenix', 'image': 'owncloud/ocis-phoenix', 'pull': 'always', 'detach': True, 'environment': { - 'PHOENIX_WEB_CONFIG': '/srv/config/drone/config.json', - 'PHOENIX_OIDC_CLIENT_ID': 'phoenix' + 'PHOENIX_WEB_CONFIG': '/srv/config/drone/config.json', + 'PHOENIX_OIDC_CLIENT_ID': 'phoenix', + 'PHOENIX_ASSET_PATH': '/srv/app/uitestrunner/dist' }, 'volumes': [ { 'name': 'config', 'path': '/srv/config', }, + { + 'name': 'gopath', + 'path': '/srv/app', + }, ] }, { @@ -509,9 +535,7 @@ def uiTests(ctx): 'commands': [ 'ls -la /srv/config/drone', 'git clone https://github.com/owncloud/testing.git /srv/app/testingapp', - 'git clone -b master --depth=1 https://github.com/owncloud/phoenix.git /srv/app/uitestrunner', 'cd /srv/app/uitestrunner', - 'yarn install --all', 'yarn run acceptance-tests-drone' ], 'volumes': [ From a2be6bc7cb1207f3ab06e2133370085d74343b87 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 18 May 2020 09:38:12 +0200 Subject: [PATCH 094/346] Update reva to v0.1.1-0.20200518061204 --- ...93219.md => update-reva-to-20200518061204.md} | 16 ++++++++++++++-- go.mod | 2 +- go.sum | 6 ++++++ 3 files changed, 21 insertions(+), 3 deletions(-) rename changelog/unreleased/{update-reva-to-20200507093219.md => update-reva-to-20200518061204.md} (75%) diff --git a/changelog/unreleased/update-reva-to-20200507093219.md b/changelog/unreleased/update-reva-to-20200518061204.md similarity index 75% rename from changelog/unreleased/update-reva-to-20200507093219.md rename to changelog/unreleased/update-reva-to-20200518061204.md index 28b3e569e2..41d73954b5 100644 --- a/changelog/unreleased/update-reva-to-20200507093219.md +++ b/changelog/unreleased/update-reva-to-20200518061204.md @@ -1,6 +1,10 @@ -Enhancement: update reva to v0.1.1-0.20200512135421 +Enhancement: update reva to v0.1.1-0.20200518061204 -- Update reva to v0.1.1-0.20200507093219 (#161, #180, #192) +- Update reva to v0.1.1-0.20200518061204 (#161, #180, #192, #207) +- Fix custom property XML parsing in PROPPATCH handler (#203, reva/#743) +- Fix PROPPATCH response for removed properties (#186, reva/#742) +- Local fs: metadata handling and share persistence (reva/#732) +- Local fs: return file owner info in stat (#750) - Fixed regression when uploading empty files to OCFS or EOS with PUT and TUS (#188, reva/#734) - On delete move the file versions to the trashbin (#94, reva/#731) - Fix OCFS move operation (#182, reva/#729) @@ -20,6 +24,7 @@ Enhancement: update reva to v0.1.1-0.20200512135421 https://github.com/owncloud/ocis-reva/pull/161 https://github.com/owncloud/ocis-reva/pull/180 https://github.com/owncloud/ocis-reva/pull/192 +https://github.com/owncloud/ocis-reva/pull/207 https://github.com/cs3org/reva/pull/678 https://github.com/owncloud/ocis-reva/issues/26 https://github.com/cs3org/reva/pull/696 @@ -43,5 +48,12 @@ https://github.com/owncloud/ocis-reva/issue/182 https://github.com/cs3org/reva/pull/729 https://github.com/cs3org/reva/pull/728 https://github.com/cs3org/reva/pull/730 +https://github.com/owncloud/ocis-reva/issue/186 +https://github.com/cs3org/reva/pull/742 +https://github.com/owncloud/ocis-reva/issue/203 +https://github.com/cs3org/reva/pull/743 +https://github.com/cs3org/reva/pull/732 +https://github.com/cs3org/reva/pull/750 + diff --git a/go.mod b/go.mod index 833864571c..98d3526917 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200512135421-3aa67e818a8d + github.com/cs3org/reva v0.1.1-0.20200518061204-dd26e9bf62cd github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 8b8edd848f..955ff3885e 100644 --- a/go.sum +++ b/go.sum @@ -81,6 +81,7 @@ github.com/aws/aws-sdk-go v1.30.21 h1:19EO1Jr80+jLwJyITzH8c79C/6EwY5mMyasqDbBiCu github.com/aws/aws-sdk-go v1.30.21/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.30.22/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.30.25/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.30.29/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -159,6 +160,8 @@ github.com/cs3org/reva v0.1.1-0.20200507093219-c853e65a5c10 h1:hSwIn8HT6Y0HW7eOA github.com/cs3org/reva v0.1.1-0.20200507093219-c853e65a5c10/go.mod h1:8CEZ2Vg0IQQEF/4rHe4l1KYsNYB9TehC79l5cFdY/zo= github.com/cs3org/reva v0.1.1-0.20200512135421-3aa67e818a8d h1:lDNY2AnYNY2RLlKebaeHBsqfepXvg8k5ntYvEZ/zjxA= github.com/cs3org/reva v0.1.1-0.20200512135421-3aa67e818a8d/go.mod h1:YIgUciBl5fg6xhV+ZPWkfWlc5H4wjXg/8+ngIYPzvKI= +github.com/cs3org/reva v0.1.1-0.20200518061204-dd26e9bf62cd h1:Q9/Va5jNmHH7msuSOHxIz3fZXv2FLLHZrGjOb5d6wgg= +github.com/cs3org/reva v0.1.1-0.20200518061204-dd26e9bf62cd/go.mod h1:XGcK/IC3PQ+C8pKlkfDbGbFKSeN8D2FV6qlwaR35rCY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -259,6 +262,7 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1 h1:ZFgWrT+bLgsYPirOnRfKLYJLvssAegOj/hgyMFdJZe0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= @@ -392,6 +396,7 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -897,6 +902,7 @@ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miE google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0 h1:cJv5/xdbk1NnMPR1VP9+HU6gupuG9MLBoH1r6RHZ2MY= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= gopkg.in/Acconut/lockfile.v1 v1.1.0/go.mod h1:6UCz3wJ8tSFUsPR6uP/j8uegEtDuEEqFxlpi0JI4Umw= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= From 6b4d98537c379ab3d170ea5d64920887ab889892 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 18 May 2020 09:43:01 +0200 Subject: [PATCH 095/346] Enable Litmus props tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index f960c7ff84..f1d874e8ec 100644 --- a/.drone.star +++ b/.drone.star @@ -315,7 +315,7 @@ def testing(ctx): 'LITMUS_URL': 'http://reva-server:9140/remote.php/webdav', 'LITMUS_USERNAME': 'tu1', 'LITMUS_PASSWORD': '1234', - 'TESTS': 'basic http copymove' + 'TESTS': 'basic http copymove props' }, }, ], From efaa4fa209da358b4520399eb0b532c52093e554 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 19 May 2020 09:01:25 +0000 Subject: [PATCH 096/346] Automated changelog update [skip ci] --- CHANGELOG.md | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a4cbfff06..5b7c9ed168 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,22 +6,25 @@ The following sections list the changes in ocis-reva unreleased. ## Summary -* Enhancement - Update reva to v0.1.1-0.20200512135421: [#161](https://github.com/owncloud/ocis-reva/pull/161) +* Enhancement - Update reva to v0.1.1-0.20200518061204: [#161](https://github.com/owncloud/ocis-reva/pull/161) ## Details -* Enhancement - Update reva to v0.1.1-0.20200512135421: [#161](https://github.com/owncloud/ocis-reva/pull/161) +* Enhancement - Update reva to v0.1.1-0.20200518061204: [#161](https://github.com/owncloud/ocis-reva/pull/161) - - Update reva to v0.1.1-0.20200507093219 (#161, #180, #192) - Fixed regression when - uploading empty files to OCFS or EOS with PUT and TUS (#188, reva/#734) - On delete move the file - versions to the trashbin (#94, reva/#731) - Fix OCFS move operation (#182, reva/#729) - Fix - OCFS custom property / xattr removal (reva/#728) - Retry trashbin in case of timestamp - collision (reva/#730) - Disable chunking v1 by default (reva/#678) - Implement ocs to http - status code mapping (#26, reva/#696, reva/#707, reva/#711) - Handle the case if directory - already exists (reva/#695) - Added TUS upload support (reva/#674, reva/#725, reva/#717) - - Always return file sizes in Webdav PROPFIND (reva/#712) - Use default mime type when none was - detected (reva/#713) - Fixed Webdav shallow COPY (reva/#714) - Fixed arbitrary namespace - usage for custom properties in PROPFIND (#57, reva/#720) - Implement returning Webdav custom + - Update reva to v0.1.1-0.20200518061204 (#161, #180, #192, #207) - Fix custom property XML + parsing in PROPPATCH handler (#203, reva/#743) - Fix PROPPATCH response for removed + properties (#186, reva/#742) - Local fs: metadata handling and share persistence + (reva/#732) - Local fs: return file owner info in stat (#750) - Fixed regression when uploading + empty files to OCFS or EOS with PUT and TUS (#188, reva/#734) - On delete move the file versions to + the trashbin (#94, reva/#731) - Fix OCFS move operation (#182, reva/#729) - Fix OCFS custom + property / xattr removal (reva/#728) - Retry trashbin in case of timestamp collision + (reva/#730) - Disable chunking v1 by default (reva/#678) - Implement ocs to http status code + mapping (#26, reva/#696, reva/#707, reva/#711) - Handle the case if directory already exists + (reva/#695) - Added TUS upload support (reva/#674, reva/#725, reva/#717) - Always return + file sizes in Webdav PROPFIND (reva/#712) - Use default mime type when none was detected + (reva/#713) - Fixed Webdav shallow COPY (reva/#714) - Fixed arbitrary namespace usage for + custom properties in PROPFIND (#57, reva/#720) - Implement returning Webdav custom properties from xattr (#57, reva/#721) - Minor fix in OCM share pkg (reva/#718) https://github.com/owncloud/ocis-reva/issues/26 @@ -30,6 +33,7 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/owncloud/ocis-reva/pull/161 https://github.com/owncloud/ocis-reva/pull/180 https://github.com/owncloud/ocis-reva/pull/192 + https://github.com/owncloud/ocis-reva/pull/207 https://github.com/cs3org/reva/pull/678 https://github.com/cs3org/reva/pull/696 https://github.com/cs3org/reva/pull/707 @@ -47,9 +51,15 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/cs3org/reva/pull/729 https://github.com/cs3org/reva/pull/728 https://github.com/cs3org/reva/pull/730 + https://github.com/cs3org/reva/pull/742 + https://github.com/cs3org/reva/pull/743 + https://github.com/cs3org/reva/pull/732 + https://github.com/cs3org/reva/pull/750 https://github.com/owncloud/ocis-reva/issue/94 https://github.com/owncloud/ocis-reva/issue/188 https://github.com/owncloud/ocis-reva/issue/182 + https://github.com/owncloud/ocis-reva/issue/186 + https://github.com/owncloud/ocis-reva/issue/203 # Changelog for [0.2.1] (2020-04-28) From bb71e74c113962bb8b2ad19c5c762ea340a1aeaf Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 19 May 2020 14:30:46 +0200 Subject: [PATCH 097/346] [Tests-only] Set OC data URL in reva To make sure the correct URL is returned for accessing the TUS service --- .drone.star | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.drone.star b/.drone.star index f1d874e8ec..7117fe3534 100644 --- a/.drone.star +++ b/.drone.star @@ -63,6 +63,8 @@ def apiTests(ctx): 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', + 'REVA_STORAGE_OC_DATA_URL': 'reva-server:9164', 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json' }, @@ -269,6 +271,8 @@ def testing(ctx): 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OC_DATA_URL': 'reva-server:9164', + 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', 'REVA_OIDC_ISSUER': 'https://konnectd:9130', @@ -440,6 +444,8 @@ def uiTests(ctx): 'commands': [ 'git clone -b master --depth=1 https://github.com/owncloud/phoenix.git /srv/app/uitestrunner', 'cd /srv/app/uitestrunner', + 'mkdir -p filesForUpload', + 'cp -r tests/acceptance/filesForUpload/* /filesForUpload/', 'yarn install --all', 'yarn dist', ], @@ -448,6 +454,10 @@ def uiTests(ctx): 'name': 'config', 'path': '/srv/config', }, + { + 'name': 'uploads', + 'path': '/filesForUpload', + }, { 'name': 'gopath', 'path': '/srv/app', @@ -490,9 +500,15 @@ def uiTests(ctx): 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', + 'REVA_STORAGE_OC_DATA_URL': 'reva-server:9164', 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', 'REVA_OIDC_ISSUER': 'https://konnectd:9130', + 'REVA_STORAGE_LOCAL_ROOT': '/srv/app/tmp/reva/root', + 'REVA_USERS_DRIVER': 'ldap', + 'REVA_STORAGE_HOME_EXPOSE_DATA_SERVER': '1', + 'REVA_STORAGE_OC_EXPOSE_DATA_SERVER': '1', }, 'commands': [ 'mkdir -p /srv/app/tmp/reva', From fc50ee3aed406e07b1dd2fc7d0c0419dba50b91f Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 22 May 2020 09:25:56 +0200 Subject: [PATCH 098/346] Update reva to v0.1.1-0.20200520150229 --- ...04.md => update-reva-to-20200520150229.md} | 48 +++++++++++++++---- go.mod | 2 +- go.sum | 3 ++ 3 files changed, 42 insertions(+), 11 deletions(-) rename changelog/unreleased/{update-reva-to-20200518061204.md => update-reva-to-20200520150229.md} (51%) diff --git a/changelog/unreleased/update-reva-to-20200518061204.md b/changelog/unreleased/update-reva-to-20200520150229.md similarity index 51% rename from changelog/unreleased/update-reva-to-20200518061204.md rename to changelog/unreleased/update-reva-to-20200520150229.md index 41d73954b5..d3d68a402c 100644 --- a/changelog/unreleased/update-reva-to-20200518061204.md +++ b/changelog/unreleased/update-reva-to-20200520150229.md @@ -1,10 +1,20 @@ -Enhancement: update reva to v0.1.1-0.20200518061204 +Enhancement: update reva to v0.1.1-0.20200520150229 -- Update reva to v0.1.1-0.20200518061204 (#161, #180, #192, #207) -- Fix custom property XML parsing in PROPPATCH handler (#203, reva/#743) -- Fix PROPPATCH response for removed properties (#186, reva/#742) +- Update reva to v0.1.1-0.20200520150229 (#161, #180, #192, #207, #221) +- Return arbitrary metadata with stat, upload without TUS (reva/#766) +- Stat file before returning datagateway URL when initiating download (reva/#765) +- REST driver for user package (reva/#747) +- Sharing behavior now consistent with the old backend (#20, #26, #43, #44, #46, #94 ,reva/#748) +- Mentix service (reva/#755) +- meshdirectory: add mentix driver for gocdb sites integration (reva/#754) +- Add functionality to commit to storage for OCM shares (reva/#760) +- Add option in config to disable tus (reva/#759) +- ocdav: fix custom property XML parsing in PROPPATCH handler (#203, reva/#743) +- ocdav: fix PROPPATCH response for removed properties (#186, reva/#742) +- ocdav: implement PROPFIND infinity depth (#212, reva/#758) +- Local fs: Allow setting of arbitrary metadata, minor bug fixes (reva/#764) - Local fs: metadata handling and share persistence (reva/#732) -- Local fs: return file owner info in stat (#750) +- Local fs: return file owner info in stat (reva/#750) - Fixed regression when uploading empty files to OCFS or EOS with PUT and TUS (#188, reva/#734) - On delete move the file versions to the trashbin (#94, reva/#731) - Fix OCFS move operation (#182, reva/#729) @@ -25,6 +35,21 @@ https://github.com/owncloud/ocis-reva/pull/161 https://github.com/owncloud/ocis-reva/pull/180 https://github.com/owncloud/ocis-reva/pull/192 https://github.com/owncloud/ocis-reva/pull/207 +https://github.com/owncloud/ocis-reva/pull/221 +https://github.com/cs3org/reva/pull/766 +https://github.com/cs3org/reva/pull/765 +https://github.com/cs3org/reva/pull/755 +https://github.com/cs3org/reva/pull/754 +https://github.com/owncloud/ocis-reva/issues/20 +https://github.com/owncloud/ocis-reva/issues/26 +https://github.com/owncloud/ocis-reva/issues/43 +https://github.com/owncloud/ocis-reva/issues/44 +https://github.com/owncloud/ocis-reva/issues/46 +https://github.com/owncloud/ocis-reva/issues/94 +https://github.com/cs3org/reva/pull/747 +https://github.com/cs3org/reva/pull/748 +https://github.com/cs3org/reva/pull/760 +https://github.com/cs3org/reva/pull/759 https://github.com/cs3org/reva/pull/678 https://github.com/owncloud/ocis-reva/issues/26 https://github.com/cs3org/reva/pull/696 @@ -40,17 +65,20 @@ https://github.com/cs3org/reva/pull/713 https://github.com/owncloud/ocis-reva/issues/57 https://github.com/cs3org/reva/pull/720 https://github.com/cs3org/reva/pull/718 -https://github.com/owncloud/ocis-reva/issue/94 +https://github.com/owncloud/ocis-reva/issues/94 https://github.com/cs3org/reva/pull/731 -https://github.com/owncloud/ocis-reva/issue/188 +https://github.com/owncloud/ocis-reva/issues/188 https://github.com/cs3org/reva/pull/734 -https://github.com/owncloud/ocis-reva/issue/182 +https://github.com/owncloud/ocis-reva/issues/182 https://github.com/cs3org/reva/pull/729 https://github.com/cs3org/reva/pull/728 https://github.com/cs3org/reva/pull/730 -https://github.com/owncloud/ocis-reva/issue/186 +https://github.com/owncloud/ocis-reva/issues/212 +https://github.com/cs3org/reva/pull/758 +https://github.com/owncloud/ocis-reva/issues/186 https://github.com/cs3org/reva/pull/742 -https://github.com/owncloud/ocis-reva/issue/203 +https://github.com/cs3org/reva/pull/764 +https://github.com/owncloud/ocis-reva/issues/203 https://github.com/cs3org/reva/pull/743 https://github.com/cs3org/reva/pull/732 https://github.com/cs3org/reva/pull/750 diff --git a/go.mod b/go.mod index 98d3526917..31e8cec217 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200518061204-dd26e9bf62cd + github.com/cs3org/reva v0.1.1-0.20200520150229-ce94fda7436f github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 955ff3885e..0e4fd24fc3 100644 --- a/go.sum +++ b/go.sum @@ -82,6 +82,7 @@ github.com/aws/aws-sdk-go v1.30.21/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZve github.com/aws/aws-sdk-go v1.30.22/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.30.25/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.30.29/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.31.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -162,6 +163,8 @@ github.com/cs3org/reva v0.1.1-0.20200512135421-3aa67e818a8d h1:lDNY2AnYNY2RLlKeb github.com/cs3org/reva v0.1.1-0.20200512135421-3aa67e818a8d/go.mod h1:YIgUciBl5fg6xhV+ZPWkfWlc5H4wjXg/8+ngIYPzvKI= github.com/cs3org/reva v0.1.1-0.20200518061204-dd26e9bf62cd h1:Q9/Va5jNmHH7msuSOHxIz3fZXv2FLLHZrGjOb5d6wgg= github.com/cs3org/reva v0.1.1-0.20200518061204-dd26e9bf62cd/go.mod h1:XGcK/IC3PQ+C8pKlkfDbGbFKSeN8D2FV6qlwaR35rCY= +github.com/cs3org/reva v0.1.1-0.20200520150229-ce94fda7436f h1:SXxBH0dzdQMRkvKqVUdKPoVszngCmJQgYhy0xtCN9qk= +github.com/cs3org/reva v0.1.1-0.20200520150229-ce94fda7436f/go.mod h1:fVZ7IXTQaxNit5Q9yA+x6ciJmUpEHgBrxtwmiGGBY40= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From b03529224f422ee1c496b1982260193799da56f1 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 25 May 2020 09:29:26 +0200 Subject: [PATCH 099/346] Add mime types file in Drone env --- .drone.star | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.star b/.drone.star index 7117fe3534..744e3eaef1 100644 --- a/.drone.star +++ b/.drone.star @@ -69,6 +69,7 @@ def apiTests(ctx): 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json' }, 'commands': [ + 'apk add mailcap', 'mkdir -p /srv/app/tmp/reva', 'bin/ocis-reva gateway &', 'bin/ocis-reva users &', From 4072fb5241ecd5830455903f0dbc6d2e7e081299 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 20 May 2020 09:31:12 +0200 Subject: [PATCH 100/346] Prepare for 0.3.0 release --- .../update-reva-to-20200518061204.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased/update-reva-to-20200520150229.md => 0.3.0_2020-05-20/update-reva-to-20200518061204.md} (100%) diff --git a/changelog/unreleased/update-reva-to-20200520150229.md b/changelog/0.3.0_2020-05-20/update-reva-to-20200518061204.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200520150229.md rename to changelog/0.3.0_2020-05-20/update-reva-to-20200518061204.md From 754fdfc93a201111259155baf5d13bae1ee6a17e Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 25 May 2020 10:00:54 +0000 Subject: [PATCH 101/346] Automated changelog update [skip ci] --- CHANGELOG.md | 67 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b7c9ed168..8da73e2fbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,34 +6,62 @@ The following sections list the changes in ocis-reva unreleased. ## Summary -* Enhancement - Update reva to v0.1.1-0.20200518061204: [#161](https://github.com/owncloud/ocis-reva/pull/161) +* Enhancement - Update reva to v0.1.1-0.20200520150229: [#161](https://github.com/owncloud/ocis-reva/pull/161) ## Details -* Enhancement - Update reva to v0.1.1-0.20200518061204: [#161](https://github.com/owncloud/ocis-reva/pull/161) +* Enhancement - Update reva to v0.1.1-0.20200520150229: [#161](https://github.com/owncloud/ocis-reva/pull/161) - - Update reva to v0.1.1-0.20200518061204 (#161, #180, #192, #207) - Fix custom property XML - parsing in PROPPATCH handler (#203, reva/#743) - Fix PROPPATCH response for removed - properties (#186, reva/#742) - Local fs: metadata handling and share persistence - (reva/#732) - Local fs: return file owner info in stat (#750) - Fixed regression when uploading - empty files to OCFS or EOS with PUT and TUS (#188, reva/#734) - On delete move the file versions to - the trashbin (#94, reva/#731) - Fix OCFS move operation (#182, reva/#729) - Fix OCFS custom - property / xattr removal (reva/#728) - Retry trashbin in case of timestamp collision - (reva/#730) - Disable chunking v1 by default (reva/#678) - Implement ocs to http status code - mapping (#26, reva/#696, reva/#707, reva/#711) - Handle the case if directory already exists - (reva/#695) - Added TUS upload support (reva/#674, reva/#725, reva/#717) - Always return - file sizes in Webdav PROPFIND (reva/#712) - Use default mime type when none was detected - (reva/#713) - Fixed Webdav shallow COPY (reva/#714) - Fixed arbitrary namespace usage for - custom properties in PROPFIND (#57, reva/#720) - Implement returning Webdav custom - properties from xattr (#57, reva/#721) - Minor fix in OCM share pkg (reva/#718) + - Update reva to v0.1.1-0.20200520150229 (#161, #180, #192, #207, #221) - Return arbitrary + metadata with stat, upload without TUS (reva/#766) - Stat file before returning datagateway + URL when initiating download (reva/#765) - REST driver for user package (reva/#747) - Sharing + behavior now consistent with the old backend (#20, #26, #43, #44, #46, #94 ,reva/#748) - Mentix + service (reva/#755) - meshdirectory: add mentix driver for gocdb sites integration + (reva/#754) - Add functionality to commit to storage for OCM shares (reva/#760) - Add option in + config to disable tus (reva/#759) - ocdav: fix custom property XML parsing in PROPPATCH + handler (#203, reva/#743) - ocdav: fix PROPPATCH response for removed properties (#186, + reva/#742) - ocdav: implement PROPFIND infinity depth (#212, reva/#758) - Local fs: Allow + setting of arbitrary metadata, minor bug fixes (reva/#764) - Local fs: metadata handling and + share persistence (reva/#732) - Local fs: return file owner info in stat (reva/#750) - Fixed + regression when uploading empty files to OCFS or EOS with PUT and TUS (#188, reva/#734) - On + delete move the file versions to the trashbin (#94, reva/#731) - Fix OCFS move operation (#182, + reva/#729) - Fix OCFS custom property / xattr removal (reva/#728) - Retry trashbin in case of + timestamp collision (reva/#730) - Disable chunking v1 by default (reva/#678) - Implement ocs + to http status code mapping (#26, reva/#696, reva/#707, reva/#711) - Handle the case if + directory already exists (reva/#695) - Added TUS upload support (reva/#674, reva/#725, + reva/#717) - Always return file sizes in Webdav PROPFIND (reva/#712) - Use default mime type + when none was detected (reva/#713) - Fixed Webdav shallow COPY (reva/#714) - Fixed arbitrary + namespace usage for custom properties in PROPFIND (#57, reva/#720) - Implement returning + Webdav custom properties from xattr (#57, reva/#721) - Minor fix in OCM share pkg (reva/#718) + https://github.com/owncloud/ocis-reva/issues/20 + https://github.com/owncloud/ocis-reva/issues/26 + https://github.com/owncloud/ocis-reva/issues/43 + https://github.com/owncloud/ocis-reva/issues/44 + https://github.com/owncloud/ocis-reva/issues/46 + https://github.com/owncloud/ocis-reva/issues/94 https://github.com/owncloud/ocis-reva/issues/26 https://github.com/owncloud/ocis-reva/issues/67 https://github.com/owncloud/ocis-reva/issues/57 + https://github.com/owncloud/ocis-reva/issues/94 + https://github.com/owncloud/ocis-reva/issues/188 + https://github.com/owncloud/ocis-reva/issues/182 + https://github.com/owncloud/ocis-reva/issues/212 + https://github.com/owncloud/ocis-reva/issues/186 + https://github.com/owncloud/ocis-reva/issues/203 https://github.com/owncloud/ocis-reva/pull/161 https://github.com/owncloud/ocis-reva/pull/180 https://github.com/owncloud/ocis-reva/pull/192 https://github.com/owncloud/ocis-reva/pull/207 + https://github.com/owncloud/ocis-reva/pull/221 + https://github.com/cs3org/reva/pull/766 + https://github.com/cs3org/reva/pull/765 + https://github.com/cs3org/reva/pull/755 + https://github.com/cs3org/reva/pull/754 + https://github.com/cs3org/reva/pull/747 + https://github.com/cs3org/reva/pull/748 + https://github.com/cs3org/reva/pull/760 + https://github.com/cs3org/reva/pull/759 https://github.com/cs3org/reva/pull/678 https://github.com/cs3org/reva/pull/696 https://github.com/cs3org/reva/pull/707 @@ -51,15 +79,12 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/cs3org/reva/pull/729 https://github.com/cs3org/reva/pull/728 https://github.com/cs3org/reva/pull/730 + https://github.com/cs3org/reva/pull/758 https://github.com/cs3org/reva/pull/742 + https://github.com/cs3org/reva/pull/764 https://github.com/cs3org/reva/pull/743 https://github.com/cs3org/reva/pull/732 https://github.com/cs3org/reva/pull/750 - https://github.com/owncloud/ocis-reva/issue/94 - https://github.com/owncloud/ocis-reva/issue/188 - https://github.com/owncloud/ocis-reva/issue/182 - https://github.com/owncloud/ocis-reva/issue/186 - https://github.com/owncloud/ocis-reva/issue/203 # Changelog for [0.2.1] (2020-04-28) From f92a2f30e97e32c6280d34703244aac034a8cf6a Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Mon, 25 May 2020 13:10:51 +0000 Subject: [PATCH 102/346] Automated changelog update [skip ci] --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8da73e2fbc..658fcd2cda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.3.0] (2020-05-20) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.3.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.2.1...master +[0.3.0]: https://github.com/owncloud/ocis-reva/compare/v0.2.1...v0.3.0 ## Summary From 7081d47ecd78b79575f8f1523d25d3c82d51efd9 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 22 May 2020 10:38:46 +0200 Subject: [PATCH 103/346] Add docs for updating reva and releasing ocis-reva --- docs/releasing.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ docs/updating.md | 19 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 docs/releasing.md create mode 100644 docs/updating.md diff --git a/docs/releasing.md b/docs/releasing.md new file mode 100644 index 0000000000..df622ea410 --- /dev/null +++ b/docs/releasing.md @@ -0,0 +1,46 @@ +--- +title: "Releasing" +date: 2020-05-22T00:00:00+00:00 +weight: 60 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: releasing.md +--- + +{{< toc >}} + +To release a new version of ocis-reva, you have to follow a few simple steps. + +## Preparation + +1. Before releasing, make sure that reva has been [updated to the desired version]({{< ref "updating.md" >}}) +2. Create a new branch e.g. `release-x.x.x` where `x.x.x` is the version you want to release. +3. Checkout the preparation branch. +4. Create a new changelog folder and move the unreleased snippets there. +{{< highlight txt >}} +mkdir changelog/x.x.x_yyyy-MM-dd/ # yyyy-MM-dd is the current date +mv changelog/unreleased/* changelog/x.x.x_yyyy-MM-dd/ +{{< / highlight >}} +5. Commit and push the changes +{{< highlight txt >}} +git add --all +git commit -m "prepare release x.x.x" +git push +{{< / highlight >}} +6. Create a pull request to the master branch. + +## Release +1. After the preparation branch has been merged update your local master. +{{< highlight txt >}} +git checkout master +git pull +{{< / highlight >}} +2. Create a new tag (preferably signed). +{{< highlight txt >}} +git tag -s vx.x.x -m "release vx.x.x" +git push --tags +{{< / highlight >}} +3. Wait for CI and check that the GitHub release was published. + + +Congratulations, you just released ocis-reva! diff --git a/docs/updating.md b/docs/updating.md new file mode 100644 index 0000000000..569c646f35 --- /dev/null +++ b/docs/updating.md @@ -0,0 +1,19 @@ +--- +title: "Updating reva" +date: 2020-05-22T00:00:00+00:00 +weight: 50 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: updating.md +--- + +{{< toc >}} + +## Updating reva + +1. Run `go get github.com/cs3org/reva@master` +2. Create a changelog entry containing changes that were done in [reva](https://github.com/cs3org/reva/commits/master) +3. Create a Pull Request to ocis-reva master with those changes +4. If test issues appear, you might need to [adjust the tests]({{< ref "testing.md" >}}) +5. After the PR is merged, consider doing a [release of ocis-reva]({{< ref "releasing.md" >}}) + From d344d09d424fbbd3858cd33cff0dab2fde070fd8 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 25 May 2020 15:11:41 +0200 Subject: [PATCH 104/346] Adjust release docs with more waiting for CI --- docs/releasing.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/releasing.md b/docs/releasing.md index df622ea410..b233ca59c6 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -25,22 +25,23 @@ mv changelog/unreleased/* changelog/x.x.x_yyyy-MM-dd/ {{< highlight txt >}} git add --all git commit -m "prepare release x.x.x" -git push +git push origin release-x.x.x {{< / highlight >}} 6. Create a pull request to the master branch. ## Release 1. After the preparation branch has been merged update your local master. +2. [Wait for CI](https://cloud.drone.io/owncloud/ocis-reva) to generate a commit for the changelog update +3. Check out master (or make sure to check out the generated changelog commit in case of subsequent merges) {{< highlight txt >}} git checkout master -git pull +git pull origin master {{< / highlight >}} -2. Create a new tag (preferably signed). +4. Create a new tag (preferably signed) and replace the version number accordingly. {{< highlight txt >}} git tag -s vx.x.x -m "release vx.x.x" -git push --tags +git push origin vx.x.x {{< / highlight >}} -3. Wait for CI and check that the GitHub release was published. - +5. Wait for CI and check that the GitHub release was published. Congratulations, you just released ocis-reva! From f5d1bca47315d9c98deb77acb1ad95f3eeb2dcbc Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Thu, 28 May 2020 20:55:47 +0200 Subject: [PATCH 105/346] rework PR --- docs/releasing.md | 47 +++ docs/updating.md | 19 ++ go.mod | 7 +- go.sum | 540 +++++++++++++++++++++++-------- pkg/command/frontend.go | 2 +- pkg/command/gateway.go | 29 +- pkg/command/root.go | 1 + pkg/command/storagepubliclink.go | 175 ++++++++++ pkg/config/config.go | 12 + pkg/flagset/gateway.go | 15 + pkg/flagset/sharing.go | 2 +- pkg/flagset/storagepubliclink.go | 177 ++++++++++ 12 files changed, 878 insertions(+), 148 deletions(-) create mode 100644 docs/releasing.md create mode 100644 docs/updating.md create mode 100644 pkg/command/storagepubliclink.go create mode 100644 pkg/flagset/storagepubliclink.go diff --git a/docs/releasing.md b/docs/releasing.md new file mode 100644 index 0000000000..b233ca59c6 --- /dev/null +++ b/docs/releasing.md @@ -0,0 +1,47 @@ +--- +title: "Releasing" +date: 2020-05-22T00:00:00+00:00 +weight: 60 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: releasing.md +--- + +{{< toc >}} + +To release a new version of ocis-reva, you have to follow a few simple steps. + +## Preparation + +1. Before releasing, make sure that reva has been [updated to the desired version]({{< ref "updating.md" >}}) +2. Create a new branch e.g. `release-x.x.x` where `x.x.x` is the version you want to release. +3. Checkout the preparation branch. +4. Create a new changelog folder and move the unreleased snippets there. +{{< highlight txt >}} +mkdir changelog/x.x.x_yyyy-MM-dd/ # yyyy-MM-dd is the current date +mv changelog/unreleased/* changelog/x.x.x_yyyy-MM-dd/ +{{< / highlight >}} +5. Commit and push the changes +{{< highlight txt >}} +git add --all +git commit -m "prepare release x.x.x" +git push origin release-x.x.x +{{< / highlight >}} +6. Create a pull request to the master branch. + +## Release +1. After the preparation branch has been merged update your local master. +2. [Wait for CI](https://cloud.drone.io/owncloud/ocis-reva) to generate a commit for the changelog update +3. Check out master (or make sure to check out the generated changelog commit in case of subsequent merges) +{{< highlight txt >}} +git checkout master +git pull origin master +{{< / highlight >}} +4. Create a new tag (preferably signed) and replace the version number accordingly. +{{< highlight txt >}} +git tag -s vx.x.x -m "release vx.x.x" +git push origin vx.x.x +{{< / highlight >}} +5. Wait for CI and check that the GitHub release was published. + +Congratulations, you just released ocis-reva! diff --git a/docs/updating.md b/docs/updating.md new file mode 100644 index 0000000000..569c646f35 --- /dev/null +++ b/docs/updating.md @@ -0,0 +1,19 @@ +--- +title: "Updating reva" +date: 2020-05-22T00:00:00+00:00 +weight: 50 +geekdocRepo: https://github.com/owncloud/ocis-reva +geekdocEditPath: edit/master/docs +geekdocFilePath: updating.md +--- + +{{< toc >}} + +## Updating reva + +1. Run `go get github.com/cs3org/reva@master` +2. Create a changelog entry containing changes that were done in [reva](https://github.com/cs3org/reva/commits/master) +3. Create a Pull Request to ocis-reva master with those changes +4. If test issues appear, you might need to [adjust the tests]({{< ref "testing.md" >}}) +5. After the PR is merged, consider doing a [release of ocis-reva]({{< ref "releasing.md" >}}) + diff --git a/go.mod b/go.mod index 31e8cec217..20caa455d7 100644 --- a/go.mod +++ b/go.mod @@ -11,6 +11,7 @@ require ( github.com/micro/cli/v2 v2.1.1 github.com/micro/go-micro v1.18.0 github.com/micro/go-micro/v2 v2.0.0 + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect github.com/oklog/run v1.0.0 github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203 github.com/owncloud/ocis-pkg/v2 v2.2.1 @@ -18,11 +19,9 @@ require ( github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee // indirect github.com/prometheus/procfs v0.0.8 // indirect github.com/restic/calens v0.2.0 - github.com/spf13/afero v1.2.2 // indirect - github.com/spf13/cast v1.3.1 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/viper v1.6.1 github.com/uber/jaeger-client-go v2.20.1+incompatible // indirect - golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7 // indirect gopkg.in/ini.v1 v1.51.1 // indirect ) + +replace github.com/cs3org/reva => ../../refs/reva diff --git a/go.sum b/go.sum index 0e4fd24fc3..c525bda007 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.40.0/go.mod h1:Tk58MuI9rbLMKlAjeO/bDnteAx7tX2gJIXw4T5Jwlro= +cloud.google.com/go v0.41.0/go.mod h1:OauMR7DV8fzvZIl2qg6rkaIhD/vmgk4iwEw/h6ercmg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= @@ -34,8 +35,10 @@ github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvd github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver/v3 v3.0.2 h1:tRi7ENs+AaOUCH+j6qwNQgPYfV26dX3JNonq+V4mhqc= @@ -44,16 +47,18 @@ github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZC github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Masterminds/sprig/v3 v3.0.1 h1:RuaOafp+8qOLUPX1lInLfUrLc1MEVbnz7a40RLoixKY= github.com/Masterminds/sprig/v3 v3.0.1/go.mod h1:Cp7HwZjmqKrC+Y7XqSJOU2yRvAJRGLiohfgz5ZJj8+4= +github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/Microsoft/hcsshim v0.8.7-0.20191101173118-65519b62243c/go.mod h1:7xhjOwRV2+0HXGmM0jxaEu+ZiXJFoVZOTfL/dmqbrD8= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87/go.mod h1:iGLljf5n9GjT6kc0HBvyI1nOKnGQbNB66VzSNbK5iks= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/ajg/form v0.0.0-20160822230020-523a5da1a92f/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/akamai/AkamaiOPEN-edgegrid-golang v0.9.0/go.mod h1:zpDJeKyp9ScW4NNrbdr+Eyxvry3ilGPewKoXw3XGN1k= -github.com/alangpierce/go-forceexport v0.0.0-20160317203124-8f1d6941cd75 h1:3ILjVyslFbc4jl1w5TWuvvslFD/nDfR2H8tVaMVLrEY= github.com/alangpierce/go-forceexport v0.0.0-20160317203124-8f1d6941cd75/go.mod h1:uAXEEpARkRhCZfEvy/y0Jcc888f9tHCc1W7/UeEtreE= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -73,16 +78,10 @@ github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee h1:3T/l+vMotQ7c github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt4WATGGgae9mURNGQQqxAudPKrxfsbSDSGOso+g= github.com/aws/aws-sdk-go v1.20.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.30.7 h1:IaXfqtioP6p9SFAnNfsqdNczbR5UNbYqvcZUSsCAdTY= -github.com/aws/aws-sdk-go v1.30.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.30.12 h1:KrjyosZvkpJjcwMk0RNxMZewQ47v7+ZkbQDXjWsJMs8= -github.com/aws/aws-sdk-go v1.30.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.30.21 h1:19EO1Jr80+jLwJyITzH8c79C/6EwY5mMyasqDbBiCuc= -github.com/aws/aws-sdk-go v1.30.21/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.30.22/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.30.25/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.30.29/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.31.1 h1:5tv3VtTS/IM1yZ6lxMQQVmH28SkkR3b3w+6u+9rcLx4= github.com/aws/aws-sdk-go v1.31.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -92,26 +91,30 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40 h1:y4B3+GPxKlrigF1ha5FFErxK+sr6sWxQovRMzwMhejo= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.2/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= +github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.0 h1:yTUvW7Vhb89inJ+8irsUqiWjh8iT6sQPZiQzI6ReGkA= github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/cheggaaa/pb v1.0.28/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/cloudflare-go v0.10.2/go.mod h1:qhVI5MKwBGhdNU89ZRz2plgYutcJ5PCekLxXn56w6SY= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= +github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= +github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= @@ -123,48 +126,27 @@ github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/bbolt v1.3.3 h1:n6AiVyVRKQFNb6mJlwESEvvLoDyiTzXX7ORAUlkeBdY= github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.17+incompatible h1:f/Z3EoDSx1yjaIjLQGo1diYUlQYSBrrAQ5vP8NjwXwo= github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.18+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk= github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMElOWxok= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cs3org/go-cs3apis v0.0.0-20200408065125-6e23f3ecec0a h1:+enFdliTCV/aaLAvLmeka/r9wUoEypngV4JD5Gy92Uc= -github.com/cs3org/go-cs3apis v0.0.0-20200408065125-6e23f3ecec0a/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/go-cs3apis v0.0.0-20200423154403-462ce7762d4a h1:+ucCukFjYS+L7Sg3GbXoD0M0Pz6CQEhJ9HC97GHc9TU= -github.com/cs3org/go-cs3apis v0.0.0-20200423154403-462ce7762d4a/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v0.1.1-0.20200416050838-5fc8adf27f83 h1:UScjXmYUPW0XSolajvxoBixIRVQRldYPmfeF1TI/CuY= -github.com/cs3org/reva v0.1.1-0.20200416050838-5fc8adf27f83/go.mod h1:baGkmcec/4WxTux30nbIz05RWKaueMGTkDihcVxLp8Y= -github.com/cs3org/reva v0.1.1-0.20200427161359-c1549a8110eb h1:NmIewIBHshEpn8q1pezRDoG2B7hRVgnWYLX1XSVjx1E= -github.com/cs3org/reva v0.1.1-0.20200427161359-c1549a8110eb/go.mod h1:I20R3mjgLU9y9Ol3pIckY3M948l7mkJORdpfSR9w9tM= -github.com/cs3org/reva v0.1.1-0.20200430155102-09edd2b1a3cc h1:Qojq6MZ1Fl+NJGvnzOFlEBnSlP8LpqDnM3lAWgitWG8= -github.com/cs3org/reva v0.1.1-0.20200430155102-09edd2b1a3cc/go.mod h1:zukbLPBlk3jMQGnmJp7V0QEcp3dgqYc0id9ctzjqJKM= -github.com/cs3org/reva v0.1.1-0.20200506094053-4da63dd518a5 h1:hvrRJsQ89TP7y1Yq+50Cy7NcJ0+SglQ5MeZgy/G4b50= -github.com/cs3org/reva v0.1.1-0.20200506094053-4da63dd518a5/go.mod h1:BOxqZjt8eyD0S+w5yXXAPhqJptno3f3HmslCL7/CacI= -github.com/cs3org/reva v0.1.1-0.20200507093219-c853e65a5c10 h1:hSwIn8HT6Y0HW7eOAR5XXvo+169bYyK+fQ+8StNjz8k= -github.com/cs3org/reva v0.1.1-0.20200507093219-c853e65a5c10/go.mod h1:8CEZ2Vg0IQQEF/4rHe4l1KYsNYB9TehC79l5cFdY/zo= -github.com/cs3org/reva v0.1.1-0.20200512135421-3aa67e818a8d h1:lDNY2AnYNY2RLlKebaeHBsqfepXvg8k5ntYvEZ/zjxA= -github.com/cs3org/reva v0.1.1-0.20200512135421-3aa67e818a8d/go.mod h1:YIgUciBl5fg6xhV+ZPWkfWlc5H4wjXg/8+ngIYPzvKI= -github.com/cs3org/reva v0.1.1-0.20200518061204-dd26e9bf62cd h1:Q9/Va5jNmHH7msuSOHxIz3fZXv2FLLHZrGjOb5d6wgg= -github.com/cs3org/reva v0.1.1-0.20200518061204-dd26e9bf62cd/go.mod h1:XGcK/IC3PQ+C8pKlkfDbGbFKSeN8D2FV6qlwaR35rCY= -github.com/cs3org/reva v0.1.1-0.20200520150229-ce94fda7436f h1:SXxBH0dzdQMRkvKqVUdKPoVszngCmJQgYhy0xtCN9qk= -github.com/cs3org/reva v0.1.1-0.20200520150229-ce94fda7436f/go.mod h1:fVZ7IXTQaxNit5Q9yA+x6ciJmUpEHgBrxtwmiGGBY40= +github.com/cs3org/go-cs3apis v0.0.0-20200515145316-7048e6a5a73d h1:toZvBLH1cbHT65kv6xYPd9QqwLUHwOAVHqe9j4obAq4= +github.com/cs3org/go-cs3apis v0.0.0-20200515145316-7048e6a5a73d/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -179,7 +161,10 @@ github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4Kfc github.com/docker/docker v1.4.2-0.20190710153559-aa8249ae1b8b/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/dustin/go-humanize v0.0.0-20180713052910-9f541cc9db5d/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= @@ -193,6 +178,7 @@ github.com/eventials/go-tus v0.0.0-20190617130015-9db47421f6a0 h1:iJijjXGuAFvYA8 github.com/eventials/go-tus v0.0.0-20190617130015-9db47421f6a0/go.mod h1:CfBfpEHiX55nX/EXkG3bOskUPrYe51D/guFiBupNSik= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/forestgiant/sliceutil v0.0.0-20160425183142-94783f95db6c/go.mod h1:pFdJbAhRf7rh6YYMUdIQGyzne6zYL1tCUW8QV2B3UfY= @@ -204,6 +190,7 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-acme/lego/v3 v3.1.0/go.mod h1:074uqt+JS6plx+c9Xaiz6+L+GBb+7itGtzfcDM2AhEE= github.com/go-acme/lego/v3 v3.3.0/go.mod h1:iGSY2vQrvQs3WezicSB/oVbO2eCrD88dpWPwb1qLqu0= +github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-chi/chi v4.0.2+incompatible h1:maB6vn6FqCxrpz4FqWdh4+lwpyZIQS7YEAUcHlgXVRs= github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-cmd/cmd v1.0.5/go.mod h1:y8q8qlK5wQibcw63djSl/ntiHUHXHGdCkPk0j4QeW4s= @@ -222,13 +209,182 @@ github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3yg github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM= github.com/go-test/deep v1.0.1 h1:UQhStjbkDClarlmv0am7OXXO4/GaPdCGiUiMTvi28sg= github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/gobuffalo/buffalo v0.12.8-0.20181004233540-fac9bb505aa8/go.mod h1:sLyT7/dceRXJUxSsE813JTQtA3Eb1vjxWfo/N//vXIY= +github.com/gobuffalo/buffalo v0.13.0/go.mod h1:Mjn1Ba9wpIbpbrD+lIDMy99pQ0H0LiddMIIDGse7qT4= +github.com/gobuffalo/buffalo-plugins v1.0.2/go.mod h1:pOp/uF7X3IShFHyobahTkTLZaeUXwb0GrUTb9ngJWTs= +github.com/gobuffalo/buffalo-plugins v1.0.4/go.mod h1:pWS1vjtQ6uD17MVFWf7i3zfThrEKWlI5+PYLw/NaDB4= +github.com/gobuffalo/buffalo-plugins v1.4.3/go.mod h1:uCzTY0woez4nDMdQjkcOYKanngeUVRO2HZi7ezmAjWY= +github.com/gobuffalo/buffalo-plugins v1.5.1/go.mod h1:jbmwSZK5+PiAP9cC09VQOrGMZFCa/P0UMlIS3O12r5w= +github.com/gobuffalo/buffalo-plugins v1.6.4/go.mod h1:/+N1aophkA2jZ1ifB2O3Y9yGwu6gKOVMtUmJnbg+OZI= +github.com/gobuffalo/buffalo-plugins v1.6.5/go.mod h1:0HVkbgrVs/MnPZ/FOseDMVanCTm2RNcdM0PuXcL1NNI= +github.com/gobuffalo/buffalo-plugins v1.6.7/go.mod h1:ZGZRkzz2PiKWHs0z7QsPBOTo2EpcGRArMEym6ghKYgk= +github.com/gobuffalo/buffalo-plugins v1.6.9/go.mod h1:yYlYTrPdMCz+6/+UaXg5Jm4gN3xhsvsQ2ygVatZV5vw= +github.com/gobuffalo/buffalo-plugins v1.6.11/go.mod h1:eAA6xJIL8OuynJZ8amXjRmHND6YiusVAaJdHDN1Lu8Q= +github.com/gobuffalo/buffalo-plugins v1.8.2/go.mod h1:9te6/VjEQ7pKp7lXlDIMqzxgGpjlKoAcAANdCgoR960= +github.com/gobuffalo/buffalo-plugins v1.8.3/go.mod h1:IAWq6vjZJVXebIq2qGTLOdlXzmpyTZ5iJG5b59fza5U= +github.com/gobuffalo/buffalo-plugins v1.9.4/go.mod h1:grCV6DGsQlVzQwk6XdgcL3ZPgLm9BVxlBmXPMF8oBHI= +github.com/gobuffalo/buffalo-plugins v1.10.0/go.mod h1:4osg8d9s60txLuGwXnqH+RCjPHj9K466cDFRl3PErHI= +github.com/gobuffalo/buffalo-plugins v1.11.0/go.mod h1:rtIvAYRjYibgmWhnjKmo7OadtnxuMG5ZQLr25ozAzjg= +github.com/gobuffalo/buffalo-pop v1.0.5/go.mod h1:Fw/LfFDnSmB/vvQXPvcXEjzP98Tc+AudyNWUBWKCwQ8= +github.com/gobuffalo/envy v1.6.4/go.mod h1:Abh+Jfw475/NWtYMEt+hnJWRiC8INKWibIMyNt1w2Mc= +github.com/gobuffalo/envy v1.6.5/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= +github.com/gobuffalo/envy v1.6.6/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= +github.com/gobuffalo/envy v1.6.7/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= +github.com/gobuffalo/envy v1.6.8/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= +github.com/gobuffalo/envy v1.6.9/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= +github.com/gobuffalo/envy v1.6.10/go.mod h1:X0CFllQjTV5ogsnUrg+Oks2yTI+PU2dGYBJOEI2D1Uo= +github.com/gobuffalo/envy v1.6.11/go.mod h1:Fiq52W7nrHGDggFPhn2ZCcHw4u/rqXkqo+i7FB6EAcg= +github.com/gobuffalo/envy v1.6.12/go.mod h1:qJNrJhKkZpEW0glh5xP2syQHH5kgdmgsKss2Kk8PTP0= +github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/events v1.0.3/go.mod h1:Txo8WmqScapa7zimEQIwgiJBvMECMe9gJjsKNPN3uZw= +github.com/gobuffalo/events v1.0.7/go.mod h1:z8txf6H9jWhQ5Scr7YPLWg/cgXBRj8Q4uYI+rsVCCSQ= +github.com/gobuffalo/events v1.0.8/go.mod h1:A5KyqT1sA+3GJiBE4QKZibse9mtOcI9nw8gGrDdqYGs= +github.com/gobuffalo/events v1.1.3/go.mod h1:9yPGWYv11GENtzrIRApwQRMYSbUgCsZ1w6R503fCfrk= +github.com/gobuffalo/events v1.1.4/go.mod h1:09/YRRgZHEOts5Isov+g9X2xajxdvOAcUuAHIX/O//A= +github.com/gobuffalo/events v1.1.5/go.mod h1:3YUSzgHfYctSjEjLCWbkXP6djH2M+MLaVRzb4ymbAK0= +github.com/gobuffalo/events v1.1.7/go.mod h1:6fGqxH2ing5XMb3EYRq9LEkVlyPGs4oO/eLzh+S8CxY= +github.com/gobuffalo/events v1.1.8/go.mod h1:UFy+W6X6VbCWS8k2iT81HYX65dMtiuVycMy04cplt/8= +github.com/gobuffalo/events v1.1.9/go.mod h1:/0nf8lMtP5TkgNbzYxR6Bl4GzBy5s5TebgNTdRfRbPM= +github.com/gobuffalo/fizz v1.0.12/go.mod h1:C0sltPxpYK8Ftvf64kbsQa2yiCZY4RZviurNxXdAKwc= +github.com/gobuffalo/flect v0.0.0-20180907193754-dc14d8acaf9f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= +github.com/gobuffalo/flect v0.0.0-20181002182613-4571df4b1daf/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= +github.com/gobuffalo/flect v0.0.0-20181007231023-ae7ed6bfe683/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= +github.com/gobuffalo/flect v0.0.0-20181018182602-fd24a256709f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= +github.com/gobuffalo/flect v0.0.0-20181019110701-3d6f0b585514/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= +github.com/gobuffalo/flect v0.0.0-20181024204909-8f6be1a8c6c2/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= +github.com/gobuffalo/flect v0.0.0-20181104133451-1f6e9779237a/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= +github.com/gobuffalo/flect v0.0.0-20181114183036-47375f6d8328/go.mod h1:0HvNbHdfh+WOvDSIASqJOSxTOWSxCCUF++k/Y53v9rI= +github.com/gobuffalo/flect v0.0.0-20181210151238-24a2b68e0316/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk= +github.com/gobuffalo/flect v0.0.0-20190104192022-4af577e09bf2/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk= +github.com/gobuffalo/flect v0.0.0-20190117212819-a62e61d96794/go.mod h1:397QT6v05LkZkn07oJXXT6y9FCfwC8Pug0WA2/2mE9k= +github.com/gobuffalo/genny v0.0.0-20180924032338-7af3a40f2252/go.mod h1:tUTQOogrr7tAQnhajMSH6rv1BVev34H2sa1xNHMy94g= +github.com/gobuffalo/genny v0.0.0-20181003150629-3786a0744c5d/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM= +github.com/gobuffalo/genny v0.0.0-20181005145118-318a41a134cc/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM= +github.com/gobuffalo/genny v0.0.0-20181007153042-b8de7d566757/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA= +github.com/gobuffalo/genny v0.0.0-20181012161047-33e5f43d83a6/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA= +github.com/gobuffalo/genny v0.0.0-20181017160347-90a774534246/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA= +github.com/gobuffalo/genny v0.0.0-20181024195656-51392254bf53/go.mod h1:o9GEH5gn5sCKLVB5rHFC4tq40rQ3VRUzmx6WwmaqISE= +github.com/gobuffalo/genny v0.0.0-20181025145300-af3f81d526b8/go.mod h1:uZ1fFYvdcP8mu0B/Ynarf6dsGvp7QFIpk/QACUuFUVI= +github.com/gobuffalo/genny v0.0.0-20181027191429-94d6cfb5c7fc/go.mod h1:x7SkrQQBx204Y+O9EwRXeszLJDTaWN0GnEasxgLrQTA= +github.com/gobuffalo/genny v0.0.0-20181027195209-3887b7171c4f/go.mod h1:JbKx8HSWICu5zyqWOa0dVV1pbbXOHusrSzQUprW6g+w= +github.com/gobuffalo/genny v0.0.0-20181106193839-7dcb0924caf1/go.mod h1:x61yHxvbDCgQ/7cOAbJCacZQuHgB0KMSzoYcw5debjU= +github.com/gobuffalo/genny v0.0.0-20181107223128-f18346459dbe/go.mod h1:utQD3aKKEsdb03oR+Vi/6ztQb1j7pO10N3OBoowRcSU= +github.com/gobuffalo/genny v0.0.0-20181114215459-0a4decd77f5d/go.mod h1:kN2KZ8VgXF9VIIOj/GM0Eo7YK+un4Q3tTreKOf0q1ng= +github.com/gobuffalo/genny v0.0.0-20181119162812-e8ff4adce8bb/go.mod h1:BA9htSe4bZwBDJLe8CUkoqkypq3hn3+CkoHqVOW718E= +github.com/gobuffalo/genny v0.0.0-20181127225641-2d959acc795b/go.mod h1:l54xLXNkteX/PdZ+HlgPk1qtcrgeOr3XUBBPDbH+7CQ= +github.com/gobuffalo/genny v0.0.0-20181128191930-77e34f71ba2a/go.mod h1:FW/D9p7cEEOqxYA71/hnrkOWm62JZ5ZNxcNIVJEaWBU= +github.com/gobuffalo/genny v0.0.0-20181203165245-fda8bcce96b1/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM= +github.com/gobuffalo/genny v0.0.0-20181203201232-849d2c9534ea/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM= +github.com/gobuffalo/genny v0.0.0-20181206121324-d6fb8a0dbe36/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM= +github.com/gobuffalo/genny v0.0.0-20181207164119-84844398a37d/go.mod h1:y0ysCHGGQf2T3vOhCrGHheYN54Y/REj0ayd0Suf4C/8= +github.com/gobuffalo/genny v0.0.0-20181211165820-e26c8466f14d/go.mod h1:sHnK+ZSU4e2feXP3PA29ouij6PUEiN+RCwECjCTB3yM= +github.com/gobuffalo/genny v0.0.0-20190104222617-a71664fc38e7/go.mod h1:QPsQ1FnhEsiU8f+O0qKWXz2RE4TiDqLVChWkBuh1WaY= +github.com/gobuffalo/genny v0.0.0-20190112155932-f31a84fcacf5/go.mod h1:CIaHCrSIuJ4il6ka3Hub4DR4adDrGoXGEEt2FbBxoIo= +github.com/gobuffalo/github_flavored_markdown v1.0.4/go.mod h1:uRowCdK+q8d/RF0Kt3/DSalaIXbb0De/dmTqMQdkQ4I= +github.com/gobuffalo/github_flavored_markdown v1.0.5/go.mod h1:U0643QShPF+OF2tJvYNiYDLDGDuQmJZXsf/bHOJPsMY= +github.com/gobuffalo/github_flavored_markdown v1.0.7/go.mod h1:w93Pd9Lz6LvyQXEG6DktTPHkOtCbr+arAD5mkwMzXLI= +github.com/gobuffalo/httptest v1.0.2/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E= +github.com/gobuffalo/licenser v0.0.0-20180924033006-eae28e638a42/go.mod h1:Ubo90Np8gpsSZqNScZZkVXXAo5DGhTb+WYFIjlnog8w= +github.com/gobuffalo/licenser v0.0.0-20181025145548-437d89de4f75/go.mod h1:x3lEpYxkRG/XtGCUNkio+6RZ/dlOvLzTI9M1auIwFcw= +github.com/gobuffalo/licenser v0.0.0-20181027200154-58051a75da95/go.mod h1:BzhaaxGd1tq1+OLKObzgdCV9kqVhbTulxOpYbvMQWS0= +github.com/gobuffalo/licenser v0.0.0-20181109171355-91a2a7aac9a7/go.mod h1:m+Ygox92pi9bdg+gVaycvqE8RVSjZp7mWw75+K5NPHk= +github.com/gobuffalo/licenser v0.0.0-20181128165715-cc7305f8abed/go.mod h1:oU9F9UCE+AzI/MueCKZamsezGOOHfSirltllOVeRTAE= +github.com/gobuffalo/licenser v0.0.0-20181203160806-fe900bbede07/go.mod h1:ph6VDNvOzt1CdfaWC+9XwcBnlSTBz2j49PBwum6RFaU= +github.com/gobuffalo/licenser v0.0.0-20181211173111-f8a311c51159/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM= +github.com/gobuffalo/logger v0.0.0-20181022175615-46cfb361fc27/go.mod h1:8sQkgyhWipz1mIctHF4jTxmJh1Vxhp7mP8IqbljgJZo= +github.com/gobuffalo/logger v0.0.0-20181027144941-73d08d2bb969/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8= +github.com/gobuffalo/logger v0.0.0-20181027193913-9cf4dd0efe46/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8= +github.com/gobuffalo/logger v0.0.0-20181109185836-3feeab578c17/go.mod h1:oNErH0xLe+utO+OW8ptXMSA5DkiSEDW1u3zGIt8F9Ew= +github.com/gobuffalo/logger v0.0.0-20181117211126-8e9b89b7c264/go.mod h1:5etB91IE0uBlw9k756fVKZJdS+7M7ejVhmpXXiSFj0I= +github.com/gobuffalo/logger v0.0.0-20181127160119-5b956e21995c/go.mod h1:+HxKANrR9VGw9yN3aOAppJKvhO05ctDi63w4mDnKv2U= +github.com/gobuffalo/makr v1.1.5/go.mod h1:Y+o0btAH1kYAMDJW/TX3+oAXEu0bmSLLoC9mIFxtzOw= +github.com/gobuffalo/mapi v1.0.0/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/meta v0.0.0-20181018155829-df62557efcd3/go.mod h1:XTTOhwMNryif3x9LkTTBO/Llrveezd71u3quLd0u7CM= +github.com/gobuffalo/meta v0.0.0-20181018192820-8c6cef77dab3/go.mod h1:E94EPzx9NERGCY69UWlcj6Hipf2uK/vnfrF4QD0plVE= +github.com/gobuffalo/meta v0.0.0-20181025145500-3a985a084b0a/go.mod h1:YDAKBud2FP7NZdruCSlmTmDOZbVSa6bpK7LJ/A/nlKg= +github.com/gobuffalo/meta v0.0.0-20181114191255-b130ebedd2f7/go.mod h1:K6cRZ29ozr4Btvsqkjvg5nDFTLOgTqf03KA70Ks0ypE= +github.com/gobuffalo/meta v0.0.0-20181127070345-0d7e59dd540b/go.mod h1:RLO7tMvE0IAKAM8wny1aN12pvEKn7EtkBLkUZR00Qf8= +github.com/gobuffalo/meta v0.0.0-20190120163247-50bbb1fa260d/go.mod h1:KKsH44nIK2gA8p0PJmRT9GvWJUdphkDUA8AJEvFWiqM= +github.com/gobuffalo/mw-basicauth v1.0.3/go.mod h1:dg7+ilMZOKnQFHDefUzUHufNyTswVUviCBgF244C1+0= +github.com/gobuffalo/mw-contenttype v0.0.0-20180802152300-74f5a47f4d56/go.mod h1:7EvcmzBbeCvFtQm5GqF9ys6QnCxz2UM1x0moiWLq1No= +github.com/gobuffalo/mw-csrf v0.0.0-20180802151833-446ff26e108b/go.mod h1:sbGtb8DmDZuDUQoxjr8hG1ZbLtZboD9xsn6p77ppcHo= +github.com/gobuffalo/mw-forcessl v0.0.0-20180802152810-73921ae7a130/go.mod h1:JvNHRj7bYNAMUr/5XMkZaDcw3jZhUZpsmzhd//FFWmQ= +github.com/gobuffalo/mw-i18n v0.0.0-20180802152014-e3060b7e13d6/go.mod h1:91AQfukc52A6hdfIfkxzyr+kpVYDodgAeT5cjX1UIj4= +github.com/gobuffalo/mw-paramlogger v0.0.0-20181005191442-d6ee392ec72e/go.mod h1:6OJr6VwSzgJMqWMj7TYmRUqzNe2LXu/W1rRW4MAz/ME= +github.com/gobuffalo/mw-tokenauth v0.0.0-20181001105134-8545f626c189/go.mod h1:UqBF00IfKvd39ni5+yI5MLMjAf4gX7cDKN/26zDOD6c= +github.com/gobuffalo/packd v0.0.0-20181027182251-01ad393492c8/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc= +github.com/gobuffalo/packd v0.0.0-20181027190505-aafc0d02c411/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc= +github.com/gobuffalo/packd v0.0.0-20181027194105-7ae579e6d213/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc= +github.com/gobuffalo/packd v0.0.0-20181031195726-c82734870264/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI= +github.com/gobuffalo/packd v0.0.0-20181104210303-d376b15f8e96/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI= +github.com/gobuffalo/packd v0.0.0-20181111195323-b2e760a5f0ff/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI= +github.com/gobuffalo/packd v0.0.0-20181114190715-f25c5d2471d7/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI= +github.com/gobuffalo/packd v0.0.0-20181124090624-311c6248e5fb/go.mod h1:Foenia9ZvITEvG05ab6XpiD5EfBHPL8A6hush8SJ0o8= +github.com/gobuffalo/packd v0.0.0-20181207120301-c49825f8f6f4/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA= +github.com/gobuffalo/packd v0.0.0-20181212173646-eca3b8fd6687/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA= +github.com/gobuffalo/packr v1.13.7/go.mod h1:KkinLIn/n6+3tVXMwg6KkNvWwVsrRAz4ph+jgpk3Z24= +github.com/gobuffalo/packr v1.15.0/go.mod h1:t5gXzEhIviQwVlNx/+3SfS07GS+cZ2hn76WLzPp6MGI= +github.com/gobuffalo/packr v1.15.1/go.mod h1:IeqicJ7jm8182yrVmNbM6PR4g79SjN9tZLH8KduZZwE= +github.com/gobuffalo/packr v1.19.0/go.mod h1:MstrNkfCQhd5o+Ct4IJ0skWlxN8emOq8DsoT1G98VIU= +github.com/gobuffalo/packr v1.20.0/go.mod h1:JDytk1t2gP+my1ig7iI4NcVaXr886+N0ecUga6884zw= +github.com/gobuffalo/packr v1.21.0/go.mod h1:H00jGfj1qFKxscFJSw8wcL4hpQtPe1PfU2wa6sg/SR0= +github.com/gobuffalo/packr v1.22.0/go.mod h1:Qr3Wtxr3+HuQEwWqlLnNW4t1oTvK+7Gc/Rnoi/lDFvA= +github.com/gobuffalo/packr/v2 v2.0.0-rc.8/go.mod h1:y60QCdzwuMwO2R49fdQhsjCPv7tLQFR0ayzxxla9zes= +github.com/gobuffalo/packr/v2 v2.0.0-rc.9/go.mod h1:fQqADRfZpEsgkc7c/K7aMew3n4aF1Kji7+lIZeR98Fc= +github.com/gobuffalo/packr/v2 v2.0.0-rc.10/go.mod h1:4CWWn4I5T3v4c1OsJ55HbHlUEKNWMITG5iIkdr4Px4w= +github.com/gobuffalo/packr/v2 v2.0.0-rc.11/go.mod h1:JoieH/3h3U4UmatmV93QmqyPUdf4wVM9HELaHEu+3fk= +github.com/gobuffalo/packr/v2 v2.0.0-rc.12/go.mod h1:FV1zZTsVFi1DSCboO36Xgs4pzCZBjB/tDV9Cz/lSaR8= +github.com/gobuffalo/packr/v2 v2.0.0-rc.13/go.mod h1:2Mp7GhBFMdJlOK8vGfl7SYtfMP3+5roE39ejlfjw0rA= +github.com/gobuffalo/packr/v2 v2.0.0-rc.14/go.mod h1:06otbrNvDKO1eNQ3b8hst+1010UooI2MFg+B2Ze4MV8= +github.com/gobuffalo/packr/v2 v2.0.0-rc.15/go.mod h1:IMe7H2nJvcKXSF90y4X1rjYIRlNMJYCxEhssBXNZwWs= +github.com/gobuffalo/plush v3.7.16+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= +github.com/gobuffalo/plush v3.7.20+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= +github.com/gobuffalo/plush v3.7.21+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= +github.com/gobuffalo/plush v3.7.22+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= +github.com/gobuffalo/plush v3.7.23+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= +github.com/gobuffalo/plush v3.7.30+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= +github.com/gobuffalo/plush v3.7.31+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= +github.com/gobuffalo/plush v3.7.32+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= +github.com/gobuffalo/plushgen v0.0.0-20181128164830-d29dcb966cb2/go.mod h1:r9QwptTFnuvSaSRjpSp4S2/4e2D3tJhARYbvEBcKSb4= +github.com/gobuffalo/plushgen v0.0.0-20181203163832-9fc4964505c2/go.mod h1:opEdT33AA2HdrIwK1aibqnTJDVVKXC02Bar/GT1YRVs= +github.com/gobuffalo/plushgen v0.0.0-20181207152837-eedb135bd51b/go.mod h1:Lcw7HQbEVm09sAQrCLzIxuhFbB3nAgp4c55E+UlynR0= +github.com/gobuffalo/plushgen v0.0.0-20190104222512-177cd2b872b3/go.mod h1:tYxCozi8X62bpZyKXYHw1ncx2ZtT2nFvG42kuLwYjoc= +github.com/gobuffalo/pop v4.8.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= +github.com/gobuffalo/pop v4.8.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= +github.com/gobuffalo/pop v4.8.4+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= +github.com/gobuffalo/release v1.0.35/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4= +github.com/gobuffalo/release v1.0.38/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4= +github.com/gobuffalo/release v1.0.42/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug= +github.com/gobuffalo/release v1.0.52/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug= +github.com/gobuffalo/release v1.0.53/go.mod h1:FdF257nd8rqhNaqtDWFGhxdJ/Ig4J7VcS3KL7n/a+aA= +github.com/gobuffalo/release v1.0.54/go.mod h1:Pe5/RxRa/BE8whDpGfRqSI7D1a0evGK1T4JDm339tJc= +github.com/gobuffalo/release v1.0.61/go.mod h1:mfIO38ujUNVDlBziIYqXquYfBF+8FDHUjKZgYC1Hj24= +github.com/gobuffalo/release v1.0.72/go.mod h1:NP5NXgg/IX3M5XmHmWR99D687/3Dt9qZtTK/Lbwc1hU= +github.com/gobuffalo/release v1.1.1/go.mod h1:Sluak1Xd6kcp6snkluR1jeXAogdJZpFFRzTYRs/2uwg= +github.com/gobuffalo/release v1.1.3/go.mod h1:CuXc5/m+4zuq8idoDt1l4va0AXAn/OSs08uHOfMVr8E= +github.com/gobuffalo/release v1.1.6/go.mod h1:18naWa3kBsqO0cItXZNJuefCKOENpbbUIqRL1g+p6z0= +github.com/gobuffalo/shoulders v1.0.1/go.mod h1:V33CcVmaQ4gRUmHKwq1fiTXuf8Gp/qjQBUL5tHPmvbA= +github.com/gobuffalo/syncx v0.0.0-20181120191700-98333ab04150/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= +github.com/gobuffalo/syncx v0.0.0-20181120194010-558ac7de985f/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= +github.com/gobuffalo/tags v2.0.11+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY= +github.com/gobuffalo/tags v2.0.14+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY= +github.com/gobuffalo/tags v2.0.15+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY= +github.com/gobuffalo/uuid v2.0.3+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE= +github.com/gobuffalo/uuid v2.0.4+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE= +github.com/gobuffalo/uuid v2.0.5+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE= +github.com/gobuffalo/validate v2.0.3+incompatible/go.mod h1:N+EtDe0J8252BgfzQUChBgfd6L93m9weay53EWFVsMM= +github.com/gobuffalo/x v0.0.0-20181003152136-452098b06085/go.mod h1:WevpGD+5YOreDJznWevcn8NTmQEW5STSBgIkpkjzqXc= +github.com/gobuffalo/x v0.0.0-20181007152206-913e47c59ca7/go.mod h1:9rDPXaB3kXdKWzMc4odGQQdG2e2DIEmANy5aSJ9yesY= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= -github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= +github.com/gofrs/uuid v3.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v3.3.0+incompatible h1:8K4tyRfvU1CYPgJsveYFQMhpFd/wXNM7iK6rR7UHz84= github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= @@ -236,45 +392,40 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= +github.com/golang/gddo v0.0.0-20180828051604-96d2a289f41e/go.mod h1:xEhNfoBDX1hzLm2Nf80qUvZ2sVwoMZ8d6IE2SrsQfh4= +github.com/golang/gddo v0.0.0-20190904175337-72a348e765d2/go.mod h1:xEhNfoBDX1hzLm2Nf80qUvZ2sVwoMZ8d6IE2SrsQfh4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc h1:55rEp52jU6bkyslZ1+C/7NGfpQsEc6pxGLAGDOctqbw= github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.3 h1:GV+pQPG/EUUbkh47niozDcADz6go/dUwhVzdUQHIVRw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1 h1:ZFgWrT+bLgsYPirOnRfKLYJLvssAegOj/hgyMFdJZe0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -285,6 +436,7 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -297,19 +449,20 @@ github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORR github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= +github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1/go.mod h1:YeAe0gNeiNT5hoiZRI4yiOky6jVdNvfO2N6Kav/HmxY= +github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= +github.com/gorilla/sessions v1.1.2/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= +github.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 h1:THDBEeQ9xZ8JEaCLyLQqXMMdRqNr0QAUJTIkQAUtFjg= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE= github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 h1:0IKlLyQ3Hs9nDaiK5cSHAGmcQEIC8l2Ts1u6x5Dfrqg= github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= @@ -321,11 +474,8 @@ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 h1:FdBGmSkD2QpQzRWup//SGObvWf2nq89zj9+ta9OvI3A= github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5/go.mod h1:0YZ2wQSuwviXXXGUiK6zXzskyBLAbLXhamxzcFHSLoM= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.2.0 h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/huandu/xstrings v1.3.0 h1:gvV6jG9dTgFEncxo+AF7PH6MZXi/vZl25owA/8Dg8Wo= github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= @@ -334,20 +484,25 @@ github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwP github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= +github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4FwCTKeG3oo7hrHJAoznj9nag= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2yCeUc= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= -github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= +github.com/jmoiron/sqlx v0.0.0-20180614180643-0dae4fefe7c0/go.mod h1:IiEW3SEiiErVyFdH8NTuWjSifiEQKUoyK3LNqr2kCHU= +github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= +github.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/joncalhoun/qson v0.0.0-20170526102502-8a9cab3a62b1/go.mod h1:DFXrEwSRX0p/aSvxE21319menCBFeQO0jXpRj7LEZUA= github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= @@ -357,18 +512,23 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/justinas/alice v1.2.0 h1:+MHSA/vccVCF4Uq37S42jwlkvI2Xzl7zTPCN5BnZNVo= github.com/justinas/alice v1.2.0/go.mod h1:fN5HRH/reO/zrUflLfTN43t3vXvKzvZIENsNEe7i7qA= +github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= +github.com/karrick/godirwalk v1.7.7/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= +github.com/karrick/godirwalk v1.7.8/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/kolo/xmlrpc v0.0.0-20190717152603-07c4ee3fd181/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ= +github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -376,31 +536,54 @@ github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HK github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA= github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= github.com/lucas-clemente/quic-go v0.12.1/go.mod h1:UXJJPE4RfFef/xPO5wQm0tITK8gNfqwTxjbE7s3Vb8s= -github.com/lucas-clemente/quic-go v0.13.1 h1:CxtJTXQIh2aboCPk0M6vf530XOov6DZjVBiSE3nSj8s= github.com/lucas-clemente/quic-go v0.13.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= github.com/lucas-clemente/quic-go v0.14.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= +github.com/luna-duclos/instrumentedsql v1.1.2/go.mod h1:4LGbEqDnopzNAiyxPPDXhLspyunZxgPTMJBKtC6U0BQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/marten-seemann/chacha20 v0.2.0 h1:f40vqzzx+3GdOmzQoItkLX5WLvHgPgyYqFFIO5Gh4hQ= +github.com/markbates/deplist v1.0.4/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM= +github.com/markbates/deplist v1.0.5/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM= +github.com/markbates/going v1.0.2/go.mod h1:UWCk3zm0UKefHZ7l8BNqi26UyiEMniznk8naLdTcy6c= +github.com/markbates/grift v1.0.4/go.mod h1:wbmtW74veyx+cgfwFhlnnMWqhoz55rnHR47oMXzsyVs= +github.com/markbates/hmax v1.0.0/go.mod h1:cOkR9dktiESxIMu+65oc/r/bdY4bE8zZw3OLhLx0X2c= +github.com/markbates/inflect v1.0.0/go.mod h1:oTeZL2KHA7CUX6X+fovmK9OvIOFuqu0TwdQrZjLTh88= +github.com/markbates/inflect v1.0.1/go.mod h1:uv3UVNBe5qBIfCm8O8Q+DW+S1EopeyINj+Ikhc7rnCk= +github.com/markbates/inflect v1.0.3/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs= +github.com/markbates/inflect v1.0.4/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs= +github.com/markbates/oncer v0.0.0-20180924031910-e862a676800b/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/oncer v0.0.0-20180924034138-723ad0170a46/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/oncer v0.0.0-20181014194634-05fccaae8fc4/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/refresh v1.4.10/go.mod h1:NDPHvotuZmTmesXxr95C9bjlw1/0frJwtME2dzcVKhc= +github.com/markbates/safe v1.0.0/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= +github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= +github.com/markbates/sigtx v1.0.0/go.mod h1:QF1Hv6Ic6Ca6W+T+DL0Y/ypborFKyvUY9HmuCD4VeTc= +github.com/markbates/willie v1.0.9/go.mod h1:fsrFVWl91+gXpx/6dv715j7i11fYPfZ9ZGfH0DQzY7w= github.com/marten-seemann/chacha20 v0.2.0/go.mod h1:HSdjFau7GzYRj+ahFNwsO3ouVJr1HFkWoEwNDb4TMtE= github.com/marten-seemann/qpack v0.1.0/go.mod h1:LFt1NU/Ptjip0C2CPkhimBz5CGE3WGDAUWqna+CNTrI= github.com/marten-seemann/qtls v0.3.2/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/marten-seemann/qtls v0.4.1 h1:YlT8QP3WCCvvok7MGEZkMldXbyqgr8oFg5/n8Gtbkks= github.com/marten-seemann/qtls v0.4.1/go.mod h1:pxVXcHHw1pNIt8Qo0pwSYQEoZ8yYOOPXTCZLQQunvRc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/mattn/goveralls v0.0.5 h1:spfq8AyZ0cCk57Za6/juJ5btQxeE1FaEGMdfcI+XO48= +github.com/mattn/goveralls v0.0.5/go.mod h1:Xg2LHi51faXLyKXwsndxiW6uxEEQT9+3sjGzzwU4xy0= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mholt/certmagic v0.7.5/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= @@ -419,54 +602,50 @@ github.com/micro/go-plugins/wrapper/trace/opencensus/v2 v2.0.1/go.mod h1:QrkcwcD github.com/micro/mdns v0.3.0 h1:bYycYe+98AXR3s8Nq5qvt6C573uFTDPIYzJemWON0QE= github.com/micro/mdns v0.3.0/go.mod h1:KJ0dW7KmicXU2BV++qkLlmHYcVv7/hHnbtguSWt9Aoc= github.com/micro/protoc-gen-micro v1.0.0/go.mod h1:C8ij4DJhapBmypcT00AXdb0cZ675/3PqUO02buWWqbE= +github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= +github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.22 h1:Jm64b3bO9kP43ddLjL2EY3Io6bmy1qGb9Xxz6TqS6rc= github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.27 h1:aEH/kqUzUxGJ/UHcEKdJY+ugH6WEzsEBBSPa8zuy1aM= github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-vnc v0.0.0-20150629162542-723ed9867aed/go.mod h1:3rdaFaCv4AyBgu5ALFM0+tSuHrBh6v692nyQe3ikrq0= -github.com/mitchellh/hashstructure v1.0.0 h1:ZkRJX1CyOoTkar7p/mLS5TZU4nJ1Rn/F8u9dGS02Q3Y= github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= +github.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.2.2 h1:dxe5oCinTXiTIcfgmZecdCzPmAJKd46KsCWc35r0TV4= -github.com/mitchellh/mapstructure v1.2.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.0 h1:iDwIio/3gk2QtLLEsqU5lInaMzos0hDTz8a6lazSFVw= github.com/mitchellh/mapstructure v1.3.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q= github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/moul/http2curl v0.0.0-20170919181001-9ac6cf4d929b/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04/go.mod h1:5sN+Lt1CaY4wsPvgQH/jsuJi4XO2ssZbdsIizr4CVC8= -github.com/nats-io/jwt v0.3.0 h1:xdnzwFETV++jNc4W1mw//qFyJGb2ABOombmZJQS4+Qo= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/nats-server/v2 v2.1.0 h1:Yi0+ZhRPtPAGeIxFn5erIeJIV9wXA+JznfSxK621Fbk= github.com/nats-io/nats-server/v2 v2.1.0/go.mod h1:r5y0WgCag0dTj/qiHkHrXAcKQ/f5GMOZaEGdoxxnJ4I= github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= -github.com/nats-io/nats.go v1.9.1 h1:ik3HbLhZ0YABLto7iX80pZLPw/6dx3T+++MZJwLnMrQ= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= -github.com/nats-io/nkeys v0.1.0 h1:qMd4+pRHgdr1nAClu+2h/2a5F2TmKcCzjCDazVgRoX4= github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= +github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nlopes/slack v0.6.0/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk= github.com/nlopes/slack v0.6.1-0.20191106133607-d06c2a2b3249/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk= github.com/nrdcg/auroradns v1.0.0/go.mod h1:6JPXKzIRzZzMqtTDgueIhTi6rFf1QvYE/HzqidhOhjw= @@ -481,6 +660,8 @@ github.com/oleiade/reflections v1.0.0/go.mod h1:RbATFBbKYkVdqmSFtx13Bb/tVhR0lgOB github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -489,36 +670,45 @@ github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5X github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= -github.com/ory/fosite v0.31.0 h1:NZ0FA4ywPEYrCGLNVBAz2dq8vTacLDbbO4Iiy68WCKQ= -github.com/ory/fosite v0.31.0/go.mod h1:lSSqjo8Kr/U1P3kJWxsNGHmq7TnH/7pS1ijvQRT7G+g= +github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= +github.com/ory/fosite v0.29.0/go.mod h1:0atSZmXO7CAcs6NPMI/Qtot8tmZYj04Nddoold4S2h0= +github.com/ory/fosite v0.31.3 h1:5WjLwfs+yUALZjzKUKGN/M+ddBJ5Ol6NawxuCO2TuAg= +github.com/ory/fosite v0.31.3/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= +github.com/ory/go-acc v0.0.0-20181118080137-ddc355013f90/go.mod h1:sxnvPCxChFuSmTJGj8FdMupeq1BezCiEpDjTUXQ4hf4= +github.com/ory/go-acc v0.2.1 h1:Pwcmwd/cSnwJsYN76+w3HU7oXeWFTkwj/KUj1qGDrVw= +github.com/ory/go-acc v0.2.1/go.mod h1:0omgy2aa3nDBJ45VAKeLHH8ccPBudxLeic4xiDRtug0= github.com/ory/go-convenience v0.1.0 h1:zouLKfF2GoSGnJwGq+PE/nJAE6dj2Zj5QlTgmMTsTS8= github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= +github.com/ory/gojsonreference v0.0.0-20190720135523-6b606c2d8ee8/go.mod h1:wsH1C4nIeeQClDtD5AH7kF1uTS6zWyqfjVDTmB0Em7A= +github.com/ory/gojsonschema v1.1.1-0.20190919112458-f254ca73d5e9/go.mod h1:BNZpdJgB74KOLSsWFvzw6roXg1I6O51WO8roMmW+T7Y= +github.com/ory/herodot v0.6.2/go.mod h1:3BOneqcyBsVybCPAJoi92KN2BpJHcmDqAMcAAaJiJow= +github.com/ory/viper v1.5.6/go.mod h1:TYmpFpKLxjQwvT4f0QPpkOn4sDXU1kDgAwJpgLYiQ28= +github.com/ory/x v0.0.85 h1:AslLr2Efv6f7AT1tzn0RuX+sOri6h74phSh5lSeMqC4= +github.com/ory/x v0.0.85/go.mod h1:s44V8t3xyjWZREcU+mWlp4h302rTuM4aLXcW+y5FbQ8= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203 h1:sXVTQ94GWeiBhlgN0kSbcyXQNmwzPuuhWyObxgTu/xE= github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203/go.mod h1:jip86t4OVURJTf8CM/0e2qcji/Y4NG3l2lR8kex4JWw= -github.com/owncloud/ocis-pkg/v2 v2.0.1 h1:3ISEtfjAz4pDFczTggIJwKuft3bVsAp1C7dFY9BBPEs= -github.com/owncloud/ocis-pkg/v2 v2.0.1/go.mod h1:7bVnn3VUaqdmvpMkXF0QVEF1fRugs35hSkuVTAq9yjk= github.com/owncloud/ocis-pkg/v2 v2.2.1 h1:LK7WxHYugEFQ9NHTOz0EP8DRjbt51wXhyqruV03z6zI= github.com/owncloud/ocis-pkg/v2 v2.2.1/go.mod h1:MXv7QzsYsu4YWuyJxhq1kLLmJa/r5gbqHe1FXulMHaw= -github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4= github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/xattr v0.4.1 h1:dhclzL6EqOXNaPDWqoeb9tIxATfBSmjqL0b4DpSjwRw= github.com/pkg/xattr v0.4.1/go.mod h1:W2cGD0TBEus7MkUgv0tNZ9JutLtVO3cXu+IBRuHqnFs= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -536,7 +726,6 @@ github.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNk github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee h1:iBZPTYkGLvdu6+A5TsMUJQkQX9Ad4aCEnSQtdxPuTCQ= github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -554,35 +743,54 @@ github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQlL8= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKcyumwBO6qip7RNQ5r77yrssm9bfCowcLEBcU5IA= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/restic/calens v0.1.0 h1:RHGokdZ72dICyIz1EjEsfZwUhvNZz/zy2SawxJktdWA= -github.com/restic/calens v0.1.0/go.mod h1:u67f5msOjCTDYNzOf/NoAUSdmXP03YXPCwIQLYADy5M= github.com/restic/calens v0.2.0 h1:LVNAtmFc+Pb4ODX66qdX1T3Di1P0OTLyUsVyvM/xD7E= github.com/restic/calens v0.2.0/go.mod h1:UXwyAKS4wsgUZGEc7NrzzygJbLsQZIo3wl+62Q1wvmU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-internal v1.0.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/zerolog v1.17.2 h1:RMRHFw2+wF7LO0QqtELQwo8hqSmqISyCJeFeAAuWcRo= github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= github.com/rs/zerolog v1.18.0 h1:CbAm3kP2Tptby1i9sYy2MGRg0uxIN9cyDb59Ys7W8z8= github.com/rs/zerolog v1.18.0/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= +github.com/rubenv/sql-migrate v0.0.0-20190212093014-1007f53448d7/go.mod h1:WS0rl9eEliYI8DPnr3TOwz4439pay+qNgzJoVya/DmY= +github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sacloud/libsacloud v1.26.1/go.mod h1:79ZwATmHLIFZIMd7sxA3LwzVy/B77uj3LDoToVTxDoQ= +github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4= +github.com/santhosh-tekuri/jsonschema/v2 v2.1.0/go.mod h1:yzJzKUGV4RbWqWIBBP4wSOBqavX5saE02yirLS0OTyg= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/segmentio/analytics-go v3.0.1+incompatible/go.mod h1:C7CYBtQWk4vRk2RyLu0qOcbHJ18E3F1HV2C/8JvKN48= +github.com/segmentio/backo-go v0.0.0-20160424052352-204274ad699c/go.mod h1:kJ9mm9YmoWSkk+oQ+5Cj8DEoRCX2JT6As4kEtIIOp1M= +github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sethgrid/pester v0.0.0-20190127155807-68a33a018ad0/go.mod h1:Ad7IjTpvzZO8Fl0vh9AzQ+j/jYZfyp2diGwI8m5q+ns= +github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= +github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= +github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= +github.com/shurcooL/highlight_go v0.0.0-20170515013102-78fb10f4a5f8/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= +github.com/shurcooL/octicon v0.0.0-20180602230221-c42b0e3b24d9/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= +github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.1.0/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A= +github.com/sirupsen/logrus v1.1.1/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= @@ -593,23 +801,30 @@ github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:X github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= +github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI= +github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.6.1 h1:VPZzIkznI1YhVMRi6vNFLHSwhnhReBfgTxIPccpfdZk= github.com/spf13/viper v1.6.1/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= @@ -618,34 +833,39 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/subosito/gotenv v1.1.1/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= +github.com/tidwall/gjson v1.3.2/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls= +github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tidwall/sjson v1.0.4/go.mod h1:bURseu1nuBkFpIES5cz6zBtjmYeOQmEESshn7VpF15Y= github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4o2HM0m3DZYQWsj6/MEowD57VzoH0v3d7igeFY= -github.com/tus/tusd v1.1.0 h1:y2oBFGeOyqlGgyqD0CloH8FuBrjDk0Tq1IQWvAZnyG8= -github.com/tus/tusd v1.1.0/go.mod h1:3DWPOdeCnjBwKtv98y5dSws3itPqfce5TVa0s59LRiA= github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2 h1:rcji4q9wMuSrz0tZt3kgIr/3WsB5kUqFja6RrgeCGEo= github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2/go.mod h1:ygrT4B9ZSb27dx3uTnobX5nOFDnutBL6iWKLH4+KpA0= +github.com/tus/tusd v1.3.0 h1:fGxm7iCUHHP2fxmV+3u7ZQcGMBWR23Y/Suxiri66+hA= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= -github.com/uber/jaeger-client-go v2.15.0+incompatible h1:NP3qsSqNxh8VYr956ur1N/1C1PjvOJnJykCzcD5QHbk= github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.20.1+incompatible h1:HgqpYBng0n7tLJIlyT4kPCIv5XgCsF+kai1NnnrJzEU= github.com/uber/jaeger-client-go v2.20.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/unrolled/secure v0.0.0-20180918153822-f340ee86eb8b/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA= +github.com/unrolled/secure v0.0.0-20181005190816-ff9db2ff917f/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA= github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/vimeo/go-util v1.2.0/go.mod h1:s13SMDTSO7AjH1nbgp707mfN5JFIWUFDU5MDDuRRtKs= github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= @@ -653,47 +873,55 @@ github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2 github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= github.com/xeipuuv/gojsonschema v1.1.0/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c/go.mod h1:UrdRz5enIKZ63MEE3IF9l2/ebyx59GyGgPi+tICQdmM= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2 h1:75k/FF0Q2YM8QYo07VPddOLBslDt1MZOdEslOHvmzAs= +go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.5.0 h1:OI5t8sDa1Or+q8AeE+yKeB/SDYioSHAgcVljj9JIETY= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.2.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.3.0 h1:sFPn2GLc3poCkfrpIXGhBD2X0CMIo4Q/zSULXrj/+uc= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.12.0 h1:dySoUQPFBGj6xwjmBzageVL8jGi8uxc6bEmJQjA06bw= go.uber.org/zap v1.12.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= golang.org/x/crypto v0.0.0-20180621125126-a49355c7e3f8/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180830192347-182538f80094/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181024171144-74cb1d3d52f4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181025113841-85e1b3f9139a/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181106171534-e4dc69e5b2fd/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -703,9 +931,7 @@ golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a h1:R/qVym5WAxsZWQqZCwDY/8sdVKV1m1WgU4/S5IRQAzc= golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200117160349-530e935923ad h1:Jh8cai0fqIK+f6nG0UgPW5wFk8wmiMhM3AyciDBdtQg= golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200320181102-891825fb96df h1:lDWgvUvNnaTnNBc/dwOty86cFeKoKWbwy2wQj0gIxbU= golang.org/x/crypto v0.0.0-20200320181102-891825fb96df/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -722,9 +948,7 @@ golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTk golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f h1:J5lckAjkw6qYlOZNj90mLYNTEKDvWeuc1yieZ8qUzUE= golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= @@ -733,10 +957,20 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180816102801-aaf60122140d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180921000356-2f5d2388922f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180926154720-4dfa2610cdf3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181017193950-04a2e542c03f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -750,37 +984,55 @@ golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191011234655-491137f69257/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191027093000-83d349e8ac1a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191109021931-daa7c04131f5/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa h1:F+8P+gmewFQYRk6JoLQLwjBCTu3mcIURZfNkVweuRKA= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180831094639-fa5fdf94c789/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180906133057-8cf3aee42992/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180921163948-d47a0f339242/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180927150500-dad3d9fb7b6e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181011152604-fa43e7bc11ba/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181021155630-eda9bb28ed51/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181022134430-8a28ead16f52/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181024145615-5cd93ef61a7c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181025063200-d989b31c8746/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026064943-731415f00dce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181106135930-3a76605856fd/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181206074257-70b957f3b65e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190116161447-11f53e031339/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -804,10 +1056,11 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4 h1:Hynbrlo6LbYI3H1IqXpkVDOcX/3HiPdhVEuyj5a59RM= +golang.org/x/sys v0.0.0-20191105231009-c1f44814a5cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7 h1:/W9OPMnnpmFXHYkcp2rQsbFUbRlRzfECQjmAFiOyHE8= golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -815,12 +1068,33 @@ golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0 h1:xQwXv67TxFo9nC1GJFyab5eq/5B590r6RlnL/G8Sz7w= golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181003024731-2f84ea8ef872/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181006002542-f60d9635b16a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181008205924-a2b3f7f249e9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181013182035-5e66757b835f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181017214349-06f26fdaaa28/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181024171208-a2dc47679d30/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181026183834-f60e5f99f081/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181105230042-78dc5bac0cac/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181107215632-34b416bd17b3/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181114190951-94339b83286c/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181119130350-139d099f6620/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181127195227-b4e97c0ed882/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181127232545-e782529d0ddd/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181203210056-e5f3ab76ea4b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181205224935-3576414c54a4/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181206194817-bcd4e47d0288/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181207183836-8bc39b988060/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181212172921-837e80568c09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190102213336-ca9055ed7d04/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190104182027-498d95493402/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190111214448-fc1d57b08d7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190118193359-16909d206f00/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -831,7 +1105,9 @@ golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190624190245-7f2218787638/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190711191110-9a621aea19f8/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -839,13 +1115,13 @@ golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 h1:hKsoRgsbwY1NafxrwTs+k64bikrLBkAgPir1TNCj3Zs= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361 h1:RIIXAeV6GvDBuADKumTODatUqANFZ+5BPMnzsy4hulY= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200113040837-eac381796e91 h1:OOkytthzFBKHY5EfEgLUabprb0LtJVkQtNxAQ02+UE4= +golang.org/x/tools v0.0.0-20200113040837-eac381796e91/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= @@ -862,8 +1138,9 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -872,6 +1149,8 @@ google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190626174449-989357319d63/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190708153700-3bdd9d9f5532/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -889,13 +1168,8 @@ google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.28.1 h1:C1QC6KzgSiLyBabDi87BbjaGreoRgGUF5nOyvfrAZ1k= -google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.0 h1:2pJjwYOdkZ9HlN4sWRYBg9ttH5bCOlsueaM+b/oYjwo= -google.golang.org/grpc v1.29.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -903,22 +1177,27 @@ google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0 h1:cJv5/xdbk1NnMPR1VP9+HU6gupuG9MLBoH1r6RHZ2MY= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= gopkg.in/Acconut/lockfile.v1 v1.1.0/go.mod h1:6UCz3wJ8tSFUsPR6uP/j8uegEtDuEEqFxlpi0JI4Umw= +gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/validator.v9 v9.30.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/go-playground/validator.v9 v9.31.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= +gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= +gopkg.in/gorp.v1 v1.7.2/go.mod h1:Wo3h+DBQZIxATwftsglhdD/62zRFPhGhTiu5jUJmCaw= gopkg.in/h2non/gock.v1 v1.0.14/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE= gopkg.in/h2non/gock.v1 v1.0.15/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE= gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -928,13 +1207,15 @@ gopkg.in/ini.v1 v1.51.1 h1:GyboHr4UqMiLUybYjd22ZjQIKEJEpgtLXtuGbR21Oho= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU= gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= +gopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw= gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw= gopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.1.9/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.5.0 h1:OZ4sdq+Y+SHfYB7vfthi1Ei8b0vkP8ZPQgUfUwdUSqo= +gopkg.in/square/go-jose.v2 v2.5.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= @@ -954,7 +1235,6 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3U= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index b9dfe2b857..dd271311e6 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -186,7 +186,7 @@ func Frontend(cfg *config.Config) *cli.Command { }, }, "notifications": map[string]interface{}{ - "endpoints": []string{"list", "get", "delete"}, + "endpoints": []string{"disable"}, }, }, "version": map[string]interface{}{ diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index 65d12e5d45..d4802dd6c2 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -104,6 +104,8 @@ func Gateway(cfg *config.Config) *cli.Command { "commit_share_to_storage_grant": cfg.Reva.Gateway.CommitShareToStorageGrant, "commit_share_to_storage_ref": cfg.Reva.Gateway.CommitShareToStorageRef, "share_folder": cfg.Reva.Gateway.ShareFolder, // ShareFolder is the location where to create shares in the recipient's storage provider. + // public links + "link_grants_file": cfg.Reva.Gateway.LinkGrants, // other "disable_home_creation_on_login": cfg.Reva.Gateway.DisableHomeCreationOnLogin, "datagateway": cfg.Reva.Frontend.URL, @@ -115,8 +117,9 @@ func Gateway(cfg *config.Config) *cli.Command { "drivers": map[string]interface{}{ "static": map[string]interface{}{ "rules": map[string]interface{}{ - "basic": cfg.Reva.AuthBasic.URL, - "bearer": cfg.Reva.AuthBearer.URL, + "basic": cfg.Reva.AuthBasic.URL, + "bearer": cfg.Reva.AuthBearer.URL, + "publicshares": cfg.Reva.StoragePublicLink.URL, }, }, }, @@ -131,16 +134,18 @@ func Gateway(cfg *config.Config) *cli.Command { cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, cfg.Reva.StorageHome.MountPath: cfg.Reva.StorageHome.URL, // the home storage has no mount id. In responses it returns the mount id of the actual storage - cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL, - cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL, - cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL, - cfg.Reva.StorageOC.MountID: cfg.Reva.StorageOC.URL, - cfg.Reva.StorageS3.MountPath: cfg.Reva.StorageS3.URL, - cfg.Reva.StorageS3.MountID: cfg.Reva.StorageS3.URL, - cfg.Reva.StorageWND.MountPath: cfg.Reva.StorageWND.URL, - cfg.Reva.StorageWND.MountID: cfg.Reva.StorageWND.URL, - cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL, - cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL, + cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL, + cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL, + cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL, + cfg.Reva.StorageOC.MountID: cfg.Reva.StorageOC.URL, + cfg.Reva.StorageS3.MountPath: cfg.Reva.StorageS3.URL, + cfg.Reva.StorageS3.MountID: cfg.Reva.StorageS3.URL, + cfg.Reva.StorageWND.MountPath: cfg.Reva.StorageWND.URL, + cfg.Reva.StorageWND.MountID: cfg.Reva.StorageWND.URL, + cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL, + cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL, + "/public/": "localhost:10054", + "e1a73ede-549b-4226-abdf-40e69ca8230d": "localhost:10054", }, }, }, diff --git a/pkg/command/root.go b/pkg/command/root.go index 036c5a6979..8748cb0c17 100644 --- a/pkg/command/root.go +++ b/pkg/command/root.go @@ -83,6 +83,7 @@ func Execute() error { StorageRoot(cfg), StorageHome(cfg), StorageHomeData(cfg), + StoragePublicLink(cfg), StorageOC(cfg), StorageOCData(cfg), StorageEOS(cfg), diff --git a/pkg/command/storagepubliclink.go b/pkg/command/storagepubliclink.go new file mode 100644 index 0000000000..d40313156f --- /dev/null +++ b/pkg/command/storagepubliclink.go @@ -0,0 +1,175 @@ +package command + +import ( + "context" + "os" + "os/signal" + "path" + "time" + + "github.com/cs3org/reva/cmd/revad/runtime" + "github.com/gofrs/uuid" + "github.com/micro/cli/v2" + "github.com/oklog/run" + "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis-reva/pkg/flagset" + "github.com/owncloud/ocis-reva/pkg/server/debug" +) + +// StoragePublicLink is the entrypoint for the reva-storage-public-link command. +func StoragePublicLink(cfg *config.Config) *cli.Command { + return &cli.Command{ + Name: "reva-storage-public-link", + Usage: "Start reva storage-public-link service", + Flags: flagset.StoragePublicLink(cfg), + Category: "Extensions", + Action: func(c *cli.Context) error { + logger := NewLogger(cfg) + + if cfg.Tracing.Enabled { + switch t := cfg.Tracing.Type; t { + case "agent": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + case "jaeger": + logger.Info(). + Str("type", t). + Msg("configuring reva to use the jaeger tracing backend") + + case "zipkin": + logger.Error(). + Str("type", t). + Msg("Reva only supports the jaeger tracing backend") + + default: + logger.Warn(). + Str("type", t). + Msg("Unknown tracing backend") + } + + } else { + logger.Debug(). + Msg("Tracing is not enabled") + } + + var ( + gr = run.Group{} + ctx, cancel = context.WithCancel(context.Background()) + //metrics = metrics.New() + ) + + defer cancel() + + { + uuid := uuid.Must(uuid.NewV4()) + pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + + rcfg := map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.StoragePublicLink.MaxCPUs, + "tracing_enabled": true, + }, + "shared": map[string]interface{}{ + "jwt_secret": cfg.Reva.JWTSecret, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.StoragePublicLink.Network, + "address": cfg.Reva.StoragePublicLink.Addr, + "interceptors": map[string]interface{}{ + "log": map[string]interface{}{}, + }, + "services": map[string]interface{}{ + "publicstorageprovider": map[string]interface{}{ + "mount_path": cfg.Reva.StoragePublicLink.MountPath, + "mount_id": cfg.Reva.StoragePublicLink.MountID, + "driver_addr": cfg.Reva.StoragePublicLink.PublicShareProviderAddr, + "gateway_addr": cfg.Reva.Gateway.URL, + }, + "authprovider": map[string]interface{}{ + "auth_manager": "publicshares", + "auth_managers": map[string]interface{}{ + "publicshares": map[string]interface{}{ + "gateway_addr": cfg.Reva.Gateway.URL, + }, + }, + }, + }, + }, + } + + gr.Add(func() error { + runtime.RunWithOptions( + rcfg, + pidFile, + runtime.WithLogger(&logger.Logger), + ) + return nil + }, func(_ error) { + logger.Info(). + Str("server", c.Command.Name). + Msg("Shutting down server") + + cancel() + }) + } + + { + server, err := debug.Server( + debug.Name(c.Command.Name+"-debug"), + debug.Addr(cfg.Reva.StoragePublicLink.DebugAddr), + debug.Logger(logger), + debug.Context(ctx), + debug.Config(cfg), + ) + + if err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to initialize server") + + return err + } + + gr.Add(func() error { + return server.ListenAndServe() + }, func(_ error) { + ctx, timeout := context.WithTimeout(ctx, 5*time.Second) + + defer timeout() + defer cancel() + + if err := server.Shutdown(ctx); err != nil { + logger.Info(). + Err(err). + Str("server", c.Command.Name+"-debug"). + Msg("Failed to shutdown server") + } else { + logger.Info(). + Str("server", c.Command.Name+"-debug"). + Msg("Shutting down server") + } + }) + } + + { + stop := make(chan os.Signal, 1) + + gr.Add(func() error { + signal.Notify(stop, os.Interrupt) + + <-stop + + return nil + }, func(err error) { + close(stop) + cancel() + }) + } + + return gr.Run() + }, + } +} diff --git a/pkg/config/config.go b/pkg/config/config.go index 3de35cc4d1..6641c20db0 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -21,6 +21,7 @@ type Gateway struct { CommitShareToStorageGrant bool CommitShareToStorageRef bool ShareFolder string + LinkGrants string DisableHomeCreationOnLogin bool // include the home folder config for the storage registry // HomeProvider is the path in the global namespace that the static storage registry uses to determine the home storage @@ -79,6 +80,16 @@ type StoragePort struct { TempFolder string } +// PublicStorage configures a public storage provider +type PublicStorage struct { + StoragePort + + PublicShareProviderAddr string + StorageProviderAddr string + UserProviderAddr string + MountID string +} + // StorageConfig combines all available storage driver configuration parts. type StorageConfig struct { EOS DriverEOS @@ -238,6 +249,7 @@ type Reva struct { StorageWNDData StoragePort StorageCustom StoragePort StorageCustomData StoragePort + StoragePublicLink PublicStorage // Configs can be used to configure the reva instance. // Services and Ports will be ignored if this is used Configs map[string]interface{} diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index 20c4fe6f11..87101ffdc3 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -159,6 +159,14 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_GATEWAY_SHARE_FOLDER"}, Destination: &cfg.Reva.Gateway.ShareFolder, }, + // TODO(refs) temporary workaround needed for storing link grants. + &cli.StringFlag{ + Name: "link_grants_file", + Value: "/var/tmp/reva/link_grants.json", + Usage: "when using a json manager, file to use as json serialized database", + EnvVars: []string{"REVA_GATEWAY_LINK_GRANTS_FILE"}, + Destination: &cfg.Reva.Gateway.LinkGrants, + }, &cli.BoolFlag{ Name: "disable-home-creation-on-login", Usage: "Disable creation of home folder on login", @@ -295,5 +303,12 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_MOUNT_ID"}, Destination: &cfg.Reva.StorageOC.MountID, }, + &cli.StringFlag{ + Name: "public-links-url", + Value: "localhost:10054", + Usage: "URL to use for the public links service", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_URL"}, + Destination: &cfg.Reva.StoragePublicLink.URL, + }, } } diff --git a/pkg/flagset/sharing.go b/pkg/flagset/sharing.go index 61586af48d..b6f5420c2e 100644 --- a/pkg/flagset/sharing.go +++ b/pkg/flagset/sharing.go @@ -136,7 +136,7 @@ func SharingWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "public-driver", - Value: "memory", + Value: "json", Usage: "driver to use for the PublicShareProvider", EnvVars: []string{"REVA_SHARING_PUBLIC_DRIVER"}, Destination: &cfg.Reva.Sharing.PublicDriver, diff --git a/pkg/flagset/storagepubliclink.go b/pkg/flagset/storagepubliclink.go new file mode 100644 index 0000000000..27837cc7dc --- /dev/null +++ b/pkg/flagset/storagepubliclink.go @@ -0,0 +1,177 @@ +package flagset + +import ( + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// StoragePublicLink applies cfg to the root flagset +func StoragePublicLink(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:10053", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DEBUG_ADDR"}, + Destination: &cfg.Reva.StoragePublicLink.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, + &cli.StringFlag{ + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_NETWORK"}, + Destination: &cfg.Reva.StoragePublicLink.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "grpc", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_PROTOCOL"}, + Destination: &cfg.Reva.StoragePublicLink.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "localhost:10054", + Usage: "Address to bind reva service", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_ADDR"}, + Destination: &cfg.Reva.StoragePublicLink.Addr, + }, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("storageprovider"), + Usage: "--service storageprovider [--service otherservice]", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_SERVICES"}, + }, + + &cli.StringFlag{ + Name: "public_share_provider_addr", + Value: "localhost:9150", + Usage: "public share provider service address", + EnvVars: []string{"REVA_STORAGE_PUBLICLINK_PUBLIC_SHARE_PROVIDER_ADDR"}, + Destination: &cfg.Reva.StoragePublicLink.PublicShareProviderAddr, + }, + &cli.StringFlag{ + Name: "user_provider_addr", + Value: "localhost:9144", + Usage: "user provider service address", + EnvVars: []string{"REVA_STORAGE_PUBLICLINK_USER_PROVIDER_ADDR"}, + Destination: &cfg.Reva.StoragePublicLink.UserProviderAddr, + }, + &cli.StringFlag{ + Name: "storage_provider_addr", + Value: "localhost:9154", + Usage: "storage provider service address", + EnvVars: []string{"REVA_STORAGE_PUBLICLINK_STORAGE_PROVIDER_ADDR"}, + Destination: &cfg.Reva.StoragePublicLink.StorageProviderAddr, + }, + &cli.StringFlag{ + Name: "driver", + Value: "owncloud", + Usage: "storage driver, eg. local, eos, owncloud or s3", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DRIVER"}, + Destination: &cfg.Reva.StoragePublicLink.Driver, + }, + &cli.StringFlag{ + Name: "mount-id", + Value: "e1a73ede-549b-4226-abdf-40e69ca8230d", + Usage: "mount id", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_ID"}, + Destination: &cfg.Reva.StoragePublicLink.MountID, + }, + &cli.BoolFlag{ + Name: "expose-data-server", + Value: true, + Usage: "exposes a dedicated data server", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_EXPOSE_DATA_SERVER"}, + Destination: &cfg.Reva.StoragePublicLink.ExposeDataServer, + }, + &cli.StringFlag{ + Name: "data-server-url", + Value: "http://localhost:9156/data", + Usage: "data server url", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DATA_SERVER_URL"}, + Destination: &cfg.Reva.StoragePublicLink.DataServerURL, + }, + &cli.BoolFlag{ + Name: "enable-home-creation", + Value: true, + Usage: "if enabled home dirs will be automatically created", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_ENABLE_HOME_CREATION"}, + Destination: &cfg.Reva.StoragePublicLink.EnableHomeCreation, + }, + &cli.StringFlag{ + Name: "mount-path", + Value: "/public/", + Usage: "mount path", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH"}, + Destination: &cfg.Reva.StoragePublicLink.MountPath, + }, + &cli.StringFlag{ + Name: "gateway-url", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_GATEWAY_URL"}, + Destination: &cfg.Reva.Gateway.URL, + }, + } +} From b1aedb9f609518b38fe9717921d82c60824e5ce6 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Thu, 28 May 2020 20:59:17 +0200 Subject: [PATCH 106/346] remove local replace --- go.mod | 4 +--- go.sum | 8 ++++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 20caa455d7..ebd231ffb8 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200520150229-ce94fda7436f + github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect @@ -23,5 +23,3 @@ require ( github.com/uber/jaeger-client-go v2.20.1+incompatible // indirect gopkg.in/ini.v1 v1.51.1 // indirect ) - -replace github.com/cs3org/reva => ../../refs/reva diff --git a/go.sum b/go.sum index c525bda007..a69897af6d 100644 --- a/go.sum +++ b/go.sum @@ -81,6 +81,7 @@ github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.31.1 h1:5tv3VtTS/IM1yZ6lxMQQVmH28SkkR3b3w+6u+9rcLx4= github.com/aws/aws-sdk-go v1.31.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -145,8 +146,12 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/cs3org/go-cs3apis v0.0.0-20200423154403-462ce7762d4a/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/go-cs3apis v0.0.0-20200515145316-7048e6a5a73d h1:toZvBLH1cbHT65kv6xYPd9QqwLUHwOAVHqe9j4obAq4= github.com/cs3org/go-cs3apis v0.0.0-20200515145316-7048e6a5a73d/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/reva v0.1.1-0.20200520150229-ce94fda7436f/go.mod h1:fVZ7IXTQaxNit5Q9yA+x6ciJmUpEHgBrxtwmiGGBY40= +github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928 h1:6dIWlFuZNGz3tmK8IF/1JQ/TkmTj0/v3dSt0Zi1zrX0= +github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928/go.mod h1:ig/TuMCG/l6vjOvFkj/4tU27PBvcig+Kfjc4mF++BwQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -619,6 +624,7 @@ github.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.3.0 h1:iDwIio/3gk2QtLLEsqU5lInaMzos0hDTz8a6lazSFVw= github.com/mitchellh/mapstructure v1.3.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -676,6 +682,7 @@ github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJ github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/ory/fosite v0.29.0/go.mod h1:0atSZmXO7CAcs6NPMI/Qtot8tmZYj04Nddoold4S2h0= +github.com/ory/fosite v0.31.0/go.mod h1:lSSqjo8Kr/U1P3kJWxsNGHmq7TnH/7pS1ijvQRT7G+g= github.com/ory/fosite v0.31.3 h1:5WjLwfs+yUALZjzKUKGN/M+ddBJ5Ol6NawxuCO2TuAg= github.com/ory/fosite v0.31.3/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= github.com/ory/go-acc v0.0.0-20181118080137-ddc355013f90/go.mod h1:sxnvPCxChFuSmTJGj8FdMupeq1BezCiEpDjTUXQ4hf4= @@ -922,6 +929,7 @@ golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= From 5d98f98a3a6d4b74fb48f6fce06bfaf677f4772f Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 29 May 2020 15:22:30 +0200 Subject: [PATCH 107/346] Update reva to v0.1.1-0.20200529120551-4f2d9c85d3c9 --- go.mod | 2 +- go.sum | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index ebd231ffb8..1caa91f5d7 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928 + github.com/cs3org/reva v0.1.1-0.20200529120551-4f2d9c85d3c9 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index a69897af6d..7385ea4f00 100644 --- a/go.sum +++ b/go.sum @@ -82,6 +82,7 @@ github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpi github.com/aws/aws-sdk-go v1.31.1 h1:5tv3VtTS/IM1yZ6lxMQQVmH28SkkR3b3w+6u+9rcLx4= github.com/aws/aws-sdk-go v1.31.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.31.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -152,6 +153,8 @@ github.com/cs3org/go-cs3apis v0.0.0-20200515145316-7048e6a5a73d/go.mod h1:UXha4T github.com/cs3org/reva v0.1.1-0.20200520150229-ce94fda7436f/go.mod h1:fVZ7IXTQaxNit5Q9yA+x6ciJmUpEHgBrxtwmiGGBY40= github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928 h1:6dIWlFuZNGz3tmK8IF/1JQ/TkmTj0/v3dSt0Zi1zrX0= github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928/go.mod h1:ig/TuMCG/l6vjOvFkj/4tU27PBvcig+Kfjc4mF++BwQ= +github.com/cs3org/reva v0.1.1-0.20200529120551-4f2d9c85d3c9 h1:j1jhTTKkXyRL4mZrfXn86poq8z3lRVV7N/KcuDVEudo= +github.com/cs3org/reva v0.1.1-0.20200529120551-4f2d9c85d3c9/go.mod h1:FOU15UeWYXIckxEOwqjjoNAK/1EQrdRTuiX6x66b3Ts= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -685,6 +688,7 @@ github.com/ory/fosite v0.29.0/go.mod h1:0atSZmXO7CAcs6NPMI/Qtot8tmZYj04Nddoold4S github.com/ory/fosite v0.31.0/go.mod h1:lSSqjo8Kr/U1P3kJWxsNGHmq7TnH/7pS1ijvQRT7G+g= github.com/ory/fosite v0.31.3 h1:5WjLwfs+yUALZjzKUKGN/M+ddBJ5Ol6NawxuCO2TuAg= github.com/ory/fosite v0.31.3/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= +github.com/ory/fosite v0.32.0/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= github.com/ory/go-acc v0.0.0-20181118080137-ddc355013f90/go.mod h1:sxnvPCxChFuSmTJGj8FdMupeq1BezCiEpDjTUXQ4hf4= github.com/ory/go-acc v0.2.1 h1:Pwcmwd/cSnwJsYN76+w3HU7oXeWFTkwj/KUj1qGDrVw= github.com/ory/go-acc v0.2.1/go.mod h1:0omgy2aa3nDBJ45VAKeLHH8ccPBudxLeic4xiDRtug0= From 403325948423a45012ceb761d113a350c9a16b81 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 29 May 2020 15:36:18 +0200 Subject: [PATCH 108/346] Add changelog for reva update + public shares --- changelog/unreleased/public-shares.md | 7 ++++ .../update-reva-to-20200529120551.md | 32 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 changelog/unreleased/public-shares.md create mode 100644 changelog/unreleased/update-reva-to-20200529120551.md diff --git a/changelog/unreleased/public-shares.md b/changelog/unreleased/public-shares.md new file mode 100644 index 0000000000..ee6736eecf --- /dev/null +++ b/changelog/unreleased/public-shares.md @@ -0,0 +1,7 @@ +Enhancement: Add public shares service + +Added Public Shares service with CRUD operations and File Public Shares Manager + +https://github.com/owncloud/ocis-reva/issues/49 +https://github.com/owncloud/ocis-reva/pull/232 + diff --git a/changelog/unreleased/update-reva-to-20200529120551.md b/changelog/unreleased/update-reva-to-20200529120551.md new file mode 100644 index 0000000000..55801a5be3 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200529120551.md @@ -0,0 +1,32 @@ +Enhancement: update reva to v0.1.1-0.20200529120551-4f2d9c85d3c9 + +- Updated reva to v0.1.1-0.20200529120551 (#232) +- Public Shares CRUD, File Public Shares Manager (#49, #232, reva/#681, reva/#788) +- Disable HTTP-KeepAlives to reduce fd count (ocis/#268, reva/#787) +- Fix trashbin listing (#229, reva/#782) +- Create PUT wrapper for TUS uploads (reva/#770) +- Add security access headers for ocdav requests (#66, reva/#780) +- Add option to revad cmd to specify logging level (reva/#772) +- New metrics package (reva/#740) +- Remove implicit data member from memory store (reva/#774) +- Added TUS global capabilities (#177, reva/#775) +- Fix PROPFIND with Depth 1 for cross-storage operations (reva/#779) + +https://github.com/owncloud/ocis-reva/issues/49 +https://github.com/owncloud/ocis-reva/pull/232 +https://github.com/cs3org/reva/pull/787 +https://github.com/cs3org/reva/pull/681 +https://github.com/cs3org/reva/pull/788 +https://github.com/owncloud/ocis-reva/issues/229 +https://github.com/cs3org/reva/pull/782 +https://github.com/cs3org/reva/pull/770 +https://github.com/owncloud/ocis-reva/issues/66 +https://github.com/cs3org/reva/pull/780 +https://github.com/cs3org/reva/pull/772 +https://github.com/cs3org/reva/pull/740 +https://github.com/cs3org/reva/pull/774 +https://github.com/owncloud/ocis-reva/issues/177 +https://github.com/cs3org/reva/pull/775 +https://github.com/cs3org/reva/pull/779 +https://github.com/owncloud/ocis/issues/268 + From e948ae24362df3f2c698559d42dfce593c83b3cd Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 29 May 2020 14:46:05 +0000 Subject: [PATCH 109/346] Automated changelog update [skip ci] --- CHANGELOG.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 658fcd2cda..c344f193d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,52 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.3.0...master + +## Summary + +* Enhancement - Add public shares service: [#49](https://github.com/owncloud/ocis-reva/issues/49) +* Enhancement - Update reva to v0.1.1-0.20200529120551-4f2d9c85d3c9: [#49](https://github.com/owncloud/ocis-reva/issues/49) + +## Details + +* Enhancement - Add public shares service: [#49](https://github.com/owncloud/ocis-reva/issues/49) + + Added Public Shares service with CRUD operations and File Public Shares Manager + + https://github.com/owncloud/ocis-reva/issues/49 + https://github.com/owncloud/ocis-reva/pull/232 + + +* Enhancement - Update reva to v0.1.1-0.20200529120551-4f2d9c85d3c9: [#49](https://github.com/owncloud/ocis-reva/issues/49) + + - Updated reva to v0.1.1-0.20200529120551 (#232) - Public Shares CRUD, File Public Shares + Manager (#49, #232, reva/#681, reva/#788) - Disable HTTP-KeepAlives to reduce fd count + (ocis/#268, reva/#787) - Fix trashbin listing (#229, reva/#782) - Create PUT wrapper for TUS + uploads (reva/#770) - Add security access headers for ocdav requests (#66, reva/#780) - Add + option to revad cmd to specify logging level (reva/#772) - New metrics package (reva/#740) - + Remove implicit data member from memory store (reva/#774) - Added TUS global capabilities + (#177, reva/#775) - Fix PROPFIND with Depth 1 for cross-storage operations (reva/#779) + + https://github.com/owncloud/ocis-reva/issues/49 + https://github.com/owncloud/ocis-reva/issues/229 + https://github.com/owncloud/ocis-reva/issues/66 + https://github.com/owncloud/ocis-reva/issues/177 + https://github.com/owncloud/ocis/issues/268 + https://github.com/owncloud/ocis-reva/pull/232 + https://github.com/cs3org/reva/pull/787 + https://github.com/cs3org/reva/pull/681 + https://github.com/cs3org/reva/pull/788 + https://github.com/cs3org/reva/pull/782 + https://github.com/cs3org/reva/pull/770 + https://github.com/cs3org/reva/pull/780 + https://github.com/cs3org/reva/pull/772 + https://github.com/cs3org/reva/pull/740 + https://github.com/cs3org/reva/pull/774 + https://github.com/cs3org/reva/pull/775 + https://github.com/cs3org/reva/pull/779 + # Changelog for [0.3.0] (2020-05-20) The following sections list the changes in ocis-reva 0.3.0. From d1ca4275d5249b572d960685833f7d96960284d1 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 29 May 2020 16:32:39 +0200 Subject: [PATCH 110/346] Prepare release 0.4.0 --- changelog/{unreleased => 0.4.0_2020-05-29}/public-shares.md | 0 .../update-reva-to-20200529120551.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.4.0_2020-05-29}/public-shares.md (100%) rename changelog/{unreleased => 0.4.0_2020-05-29}/update-reva-to-20200529120551.md (100%) diff --git a/changelog/unreleased/public-shares.md b/changelog/0.4.0_2020-05-29/public-shares.md similarity index 100% rename from changelog/unreleased/public-shares.md rename to changelog/0.4.0_2020-05-29/public-shares.md diff --git a/changelog/unreleased/update-reva-to-20200529120551.md b/changelog/0.4.0_2020-05-29/update-reva-to-20200529120551.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200529120551.md rename to changelog/0.4.0_2020-05-29/update-reva-to-20200529120551.md From f5272f3828155db505e8f5932b4f5ae24dd88be6 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Fri, 29 May 2020 16:52:01 +0000 Subject: [PATCH 111/346] Automated changelog update [skip ci] --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c344f193d9..5b16a439d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.4.0] (2020-05-29) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.4.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.3.0...master +[0.4.0]: https://github.com/owncloud/ocis-reva/compare/v0.3.0...v0.4.0 ## Summary From 699f3c4d4ead81bd4ac94e4dfc800a5735a1b231 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 26 May 2020 16:18:21 +0200 Subject: [PATCH 112/346] Add global TUS capability + some config Added global TUS capability in the config structure. Added config switches for the advertised max chunk size and http method override. --- .../unreleased/add-tus-global-capabilities.md | 9 +++++++++ pkg/command/frontend.go | 7 +++++++ pkg/config/config.go | 3 +++ pkg/flagset/frontend.go | 16 ++++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 changelog/unreleased/add-tus-global-capabilities.md diff --git a/changelog/unreleased/add-tus-global-capabilities.md b/changelog/unreleased/add-tus-global-capabilities.md new file mode 100644 index 0000000000..8b825b07b8 --- /dev/null +++ b/changelog/unreleased/add-tus-global-capabilities.md @@ -0,0 +1,9 @@ +Enhancement: Add TUS global capability + +The TUS global capabilities from Reva are now exposed. + +The advertised max chunk size can be configured using the "--upload-max-chunk-size" CLI switch or "REVA_FRONTEND_UPLOAD_MAX_CHUNK_SIZE" environment variable. +The advertised http method override can be configured using the "--upload-http-method-override" CLI switch or "REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE" environment variable. + +https://github.com/owncloud/ocis-reva/issues/177 +https://github.com/owncloud/ocis-reva/pull/228 diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index dd271311e6..0cc77fce4a 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -143,6 +143,13 @@ func Frontend(cfg *config.Config) *cli.Command { "blacklisted_files": []string{}, "undelete": true, "versioning": true, + "tus_support": map[string]interface{}{ + "version": "1.0.0", + "resumable": "1.0.0", + "extension": "creation,creation-with-upload", + "http_method_override": cfg.Reva.UploadHttpMethodOverride, + "max_chunk_size": int(cfg.Reva.UploadMaxChunkSize), + }, }, "dav": map[string]interface{}{}, "files_sharing": map[string]interface{}{ diff --git a/pkg/config/config.go b/pkg/config/config.go index 6641c20db0..671d046010 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -253,6 +253,9 @@ type Reva struct { // Configs can be used to configure the reva instance. // Services and Ports will be ignored if this is used Configs map[string]interface{} + // chunking and resumable upload config (TUS) + UploadMaxChunkSize int + UploadHttpMethodOverride string } // Tracing defines the available tracing configuration. diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index ac660f3383..974a083e35 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -157,5 +157,21 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_GATEWAY_URL"}, Destination: &cfg.Reva.Gateway.URL, }, + + // Chunking + &cli.IntFlag{ + Name: "upload-max-chunk-size", + Value: 0, + Usage: "Max chunk size in bytes to advertise to clients through capabilities", + EnvVars: []string{"REVA_FRONTEND_UPLOAD_MAX_CHUNK_SIZE"}, + Destination: &cfg.Reva.UploadMaxChunkSize, + }, + &cli.StringFlag{ + Name: "upload-http-method-override", + Value: "", + Usage: "Specify an HTTP method (ex: POST) to use when uploading in case OPTIONS and PATCH are not available", + EnvVars: []string{"REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE"}, + Destination: &cfg.Reva.UploadHttpMethodOverride, + }, } } From 32306dc6b49947ca0c6a47e264ffaf4630df1f08 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 29 May 2020 16:00:34 +0200 Subject: [PATCH 113/346] Add flag for disabling TUS in capabilities --- pkg/command/frontend.go | 37 ++++++++++++++++++++++--------------- pkg/config/config.go | 3 ++- pkg/flagset/frontend.go | 9 ++++++++- 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index 0cc77fce4a..15789286ad 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -78,6 +78,24 @@ func Frontend(cfg *config.Config) *cli.Command { desktopRedirectURIs[port] = fmt.Sprintf("http://localhost:%d", (port + 1024)) } + filesCfg := map[string]interface{}{ + "private_links": false, + "bigfilechunking": false, + "blacklisted_files": []string{}, + "undelete": true, + "versioning": true, + } + + if !cfg.Reva.UploadDisableTus { + filesCfg["tus_support"] = map[string]interface{}{ + "version": "1.0.0", + "resumable": "1.0.0", + "extension": "creation,creation-with-upload", + "http_method_override": cfg.Reva.UploadHTTPMethodOverride, + "max_chunk_size": int(cfg.Reva.UploadMaxChunkSize), + } + } + rcfg := map[string]interface{}{ "core": map[string]interface{}{ "max_cpus": cfg.Reva.Users.MaxCPUs, @@ -108,6 +126,7 @@ func Frontend(cfg *config.Config) *cli.Command { "chunk_folder": "/var/tmp/reva/chunks", "files_namespace": cfg.Reva.OCDav.DavFilesNamespace, "webdav_namespace": cfg.Reva.OCDav.WebdavNamespace, + "disable_tus": cfg.Reva.UploadDisableTus, }, "ocs": map[string]interface{}{ "config": map[string]interface{}{ @@ -117,6 +136,7 @@ func Frontend(cfg *config.Config) *cli.Command { "contact": "admin@localhost", "ssl": "false", }, + "disable_tus": cfg.Reva.UploadDisableTus, "capabilities": map[string]interface{}{ "capabilities": map[string]interface{}{ "core": map[string]interface{}{ @@ -137,21 +157,8 @@ func Frontend(cfg *config.Config) *cli.Command { "supported_types": []string{"SHA256"}, "preferred_upload_type": "SHA256", }, - "files": map[string]interface{}{ - "private_links": false, - "bigfilechunking": false, - "blacklisted_files": []string{}, - "undelete": true, - "versioning": true, - "tus_support": map[string]interface{}{ - "version": "1.0.0", - "resumable": "1.0.0", - "extension": "creation,creation-with-upload", - "http_method_override": cfg.Reva.UploadHttpMethodOverride, - "max_chunk_size": int(cfg.Reva.UploadMaxChunkSize), - }, - }, - "dav": map[string]interface{}{}, + "files": filesCfg, + "dav": map[string]interface{}{}, "files_sharing": map[string]interface{}{ "api_enabled": true, "resharing": true, diff --git a/pkg/config/config.go b/pkg/config/config.go index 671d046010..66ac115d9b 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -255,7 +255,8 @@ type Reva struct { Configs map[string]interface{} // chunking and resumable upload config (TUS) UploadMaxChunkSize int - UploadHttpMethodOverride string + UploadHTTPMethodOverride string + UploadDisableTus bool } // Tracing defines the available tracing configuration. diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index 974a083e35..a53370fc4d 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -159,6 +159,13 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { }, // Chunking + &cli.BoolFlag{ + Name: "upload-disable-tus", + Value: false, + Usage: "Tells clients to not use TUS by disabling the capability (this doesn't disable the endpoints)", + EnvVars: []string{"REVA_FRONTEND_UPLOAD_DISABLE_TUS"}, + Destination: &cfg.Reva.UploadDisableTus, + }, &cli.IntFlag{ Name: "upload-max-chunk-size", Value: 0, @@ -171,7 +178,7 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { Value: "", Usage: "Specify an HTTP method (ex: POST) to use when uploading in case OPTIONS and PATCH are not available", EnvVars: []string{"REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE"}, - Destination: &cfg.Reva.UploadHttpMethodOverride, + Destination: &cfg.Reva.UploadHTTPMethodOverride, }, } } From 1feef604fdff8389b8a5a88e20ecb1da621ebdac Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 3 Jun 2020 08:06:13 +0000 Subject: [PATCH 114/346] Automated changelog update [skip ci] --- CHANGELOG.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b16a439d6..f145339202 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,27 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.4.0...master + +## Summary + +* Enhancement - Add TUS global capability: [#177](https://github.com/owncloud/ocis-reva/issues/177) + +## Details + +* Enhancement - Add TUS global capability: [#177](https://github.com/owncloud/ocis-reva/issues/177) + + The TUS global capabilities from Reva are now exposed. + + The advertised max chunk size can be configured using the "--upload-max-chunk-size" CLI + switch or "REVA_FRONTEND_UPLOAD_MAX_CHUNK_SIZE" environment variable. The advertised + http method override can be configured using the "--upload-http-method-override" CLI + switch or "REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE" environment variable. + + https://github.com/owncloud/ocis-reva/issues/177 + https://github.com/owncloud/ocis-reva/pull/228 + # Changelog for [0.4.0] (2020-05-29) The following sections list the changes in ocis-reva 0.4.0. From 16e428210fd5664b876af2ce2c83b563a8740a84 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 3 Jun 2020 10:03:10 +0200 Subject: [PATCH 115/346] Update reva to v0.1.1-0.20200603071553-e05a87521618 Brings in additions to TUS --- .../unreleased/update-reva-to-20200603071553.md | 12 ++++++++++++ go.mod | 2 +- go.sum | 4 ++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/update-reva-to-20200603071553.md diff --git a/changelog/unreleased/update-reva-to-20200603071553.md b/changelog/unreleased/update-reva-to-20200603071553.md new file mode 100644 index 0000000000..f59a6ac982 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200603071553.md @@ -0,0 +1,12 @@ +Enhancement: update reva to v0.1.1-0.20200603071553-e05a87521618 + +- Updated reva to v0.1.1-0.20200603071553-e05a87521618 (#244) +- Add option to disable TUS on OC layer (#177, reva/#791) +- Dataprovider now supports method override (#177, reva/#792) +- OCS fixes for create public link (reva/#798) + +https://github.com/owncloud/ocis-reva/issues/244 +https://github.com/owncloud/ocis-reva/issues/177 +https://github.com/cs3org/reva/pull/791 +https://github.com/cs3org/reva/pull/792 +https://github.com/cs3org/reva/pull/798 diff --git a/go.mod b/go.mod index 1caa91f5d7..c2767733d5 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200529120551-4f2d9c85d3c9 + github.com/cs3org/reva v0.1.1-0.20200603124923-9b9f2e5af0e9 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 7385ea4f00..8828ed7a6a 100644 --- a/go.sum +++ b/go.sum @@ -155,6 +155,10 @@ github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928 h1:6dIWlFuZNGz3tmK8I github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928/go.mod h1:ig/TuMCG/l6vjOvFkj/4tU27PBvcig+Kfjc4mF++BwQ= github.com/cs3org/reva v0.1.1-0.20200529120551-4f2d9c85d3c9 h1:j1jhTTKkXyRL4mZrfXn86poq8z3lRVV7N/KcuDVEudo= github.com/cs3org/reva v0.1.1-0.20200529120551-4f2d9c85d3c9/go.mod h1:FOU15UeWYXIckxEOwqjjoNAK/1EQrdRTuiX6x66b3Ts= +github.com/cs3org/reva v0.1.1-0.20200603071553-e05a87521618 h1:W9qBdHKhY2PE5e//dWgHB/j3r8DDORImt0VvYZ7vtA0= +github.com/cs3org/reva v0.1.1-0.20200603071553-e05a87521618/go.mod h1:FOU15UeWYXIckxEOwqjjoNAK/1EQrdRTuiX6x66b3Ts= +github.com/cs3org/reva v0.1.1-0.20200603124923-9b9f2e5af0e9 h1:aYxzZ3anTavS2xyxEuPNFvUtbwmv0f+raWbRd/YE2yE= +github.com/cs3org/reva v0.1.1-0.20200603124923-9b9f2e5af0e9/go.mod h1:FOU15UeWYXIckxEOwqjjoNAK/1EQrdRTuiX6x66b3Ts= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From ea5fe585d6e3076296fc0bca3bedc105eff611dc Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 4 Jun 2020 09:46:22 +0200 Subject: [PATCH 116/346] Prepare release 0.5.0 Brings in TUS capabilities + config switches and some bugfixes for public sharing --- .../add-tus-global-capabilities.md | 0 .../update-reva-to-20200603071553.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.5.0_2020-06-04}/add-tus-global-capabilities.md (100%) rename changelog/{unreleased => 0.5.0_2020-06-04}/update-reva-to-20200603071553.md (100%) diff --git a/changelog/unreleased/add-tus-global-capabilities.md b/changelog/0.5.0_2020-06-04/add-tus-global-capabilities.md similarity index 100% rename from changelog/unreleased/add-tus-global-capabilities.md rename to changelog/0.5.0_2020-06-04/add-tus-global-capabilities.md diff --git a/changelog/unreleased/update-reva-to-20200603071553.md b/changelog/0.5.0_2020-06-04/update-reva-to-20200603071553.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200603071553.md rename to changelog/0.5.0_2020-06-04/update-reva-to-20200603071553.md From 1a0f630813c1efa18c6e411bc1bd0195486285c3 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 4 Jun 2020 08:01:21 +0000 Subject: [PATCH 117/346] Automated changelog update [skip ci] --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f145339202..0823619afb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ The following sections list the changes in ocis-reva unreleased. ## Summary * Enhancement - Add TUS global capability: [#177](https://github.com/owncloud/ocis-reva/issues/177) +* Enhancement - Update reva to v0.1.1-0.20200603071553-e05a87521618: [#244](https://github.com/owncloud/ocis-reva/issues/244) ## Details @@ -22,6 +23,19 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/owncloud/ocis-reva/issues/177 https://github.com/owncloud/ocis-reva/pull/228 + +* Enhancement - Update reva to v0.1.1-0.20200603071553-e05a87521618: [#244](https://github.com/owncloud/ocis-reva/issues/244) + + - Updated reva to v0.1.1-0.20200603071553-e05a87521618 (#244) - Add option to disable TUS on + OC layer (#177, reva/#791) - Dataprovider now supports method override (#177, reva/#792) - + OCS fixes for create public link (reva/#798) + + https://github.com/owncloud/ocis-reva/issues/244 + https://github.com/owncloud/ocis-reva/issues/177 + https://github.com/cs3org/reva/pull/791 + https://github.com/cs3org/reva/pull/792 + https://github.com/cs3org/reva/pull/798 + # Changelog for [0.4.0] (2020-05-29) The following sections list the changes in ocis-reva 0.4.0. From 3d926507c0969ff7bb100830a5e5180544f001c2 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 4 Jun 2020 08:37:23 +0000 Subject: [PATCH 118/346] Automated changelog update [skip ci] --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0823619afb..b2db60d90b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.5.0] (2020-06-04) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.5.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.4.0...master +[0.5.0]: https://github.com/owncloud/ocis-reva/compare/v0.4.0...v0.5.0 ## Summary From 6dcb5622f797f838328c93dd8574345f621ac69c Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 5 Jun 2020 16:28:00 +0200 Subject: [PATCH 119/346] Update config docs for TUS and others (#251) --- docs/configuration.md | 1259 +++++++++++++++++++++------------------ pkg/flagset/frontend.go | 6 +- 2 files changed, 676 insertions(+), 589 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index f5fb58ac0d..cf2d29eb25 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,6 +1,6 @@ --- title: "Configuration" -date: "2020-04-15T16:26:55+0200" +date: "2020-06-05T14:07:06+0200" weight: 20 geekdocRepo: https://github.com/owncloud/ocis-reva geekdocEditPath: edit/master/docs @@ -57,249 +57,6 @@ Usage: `ocis-reva [global options] command [command options] [arguments...]` ## Sub Commands -### ocis-reva gateway - -Start reva gateway - -Usage: `ocis-reva gateway [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_GATEWAY_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9143`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---transfer-secret | $REVA_TRANSFER_SECRET -: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. - ---network | $REVA_GATEWAY_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_GATEWAY_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_GATEWAY_ADDR -: Address to bind reva service. Default: `0.0.0.0:9142`. - ---url | $REVA_GATEWAY_URL -: URL to use for the reva service. Default: `localhost:9142`. - ---commit-share-to-storage-grant | $REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_GRANT -: Commit shares to the share manager. Default: `true`. - ---commit-share-to-storage-ref | $REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_REF -: Commit shares to the storage. Default: `true`. - ---share-folder | $REVA_GATEWAY_SHARE_FOLDER -: mount shares in this folder of the home storage provider. Default: `Shares`. - ---disable-home-creation-on-login | $REVA_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN -: Disable creation of home folder on login. - ---storage-home-provider | $REVA_STORAGE_HOME_PROVIDER -: mount point of the storage provider for user homes in the global namespace. Default: `/home`. - ---frontend-url | $REVA_FRONTEND_URL -: URL to use for the reva service. Default: `localhost:9140`. - ---users-url | $REVA_USERS_URL -: URL to use for the reva service. Default: `localhost:9144`. - ---auth-basic-url | $REVA_AUTH_BASIC_URL -: URL to use for the reva service. Default: `localhost:9146`. - ---auth-bearer-url | $REVA_AUTH_BEARER_URL -: URL to use for the reva service. Default: `localhost:9148`. - ---sharing-url | $REVA_SHARING_URL -: URL to use for the reva service. Default: `localhost:9150`. - ---storage-root-url | $REVA_STORAGE_ROOT_URL -: URL to use for the reva service. Default: `localhost:9152`. - ---storage-root-mount-path | $REVA_STORAGE_ROOT_MOUNT_PATH -: mount path. Default: `/`. - ---storage-root-mount-id | $REVA_STORAGE_ROOT_MOUNT_ID -: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009152`. - ---storage-home-url | $REVA_STORAGE_HOME_URL -: URL to use for the reva service. Default: `localhost:9154`. - ---storage-home-mount-path | $REVA_STORAGE_HOME_MOUNT_PATH -: mount path. Default: `/home`. - ---storage-eos-url | $REVA_STORAGE_EOS_URL -: URL to use for the reva service. Default: `localhost:9158`. - ---storage-eos-mount-path | $REVA_STORAGE_EOS_MOUNT_PATH -: mount path. Default: `/eos`. - ---storage-eos-mount-id | $REVA_STORAGE_EOS_MOUNT_ID -: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009158`. - ---storage-oc-url | $REVA_STORAGE_OC_URL -: URL to use for the reva service. Default: `localhost:9162`. - ---storage-oc-mount-path | $REVA_STORAGE_OC_MOUNT_PATH -: mount path. Default: `/oc`. - ---storage-oc-mount-id | $REVA_STORAGE_OC_MOUNT_ID -: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. - -### ocis-reva storage-oc-data - -Start reva storage-oc-data service - -Usage: `ocis-reva storage-oc-data [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9165`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---network | $REVA_STORAGE_OC_DATA_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_STORAGE_OC_DATA_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. - ---addr | $REVA_STORAGE_OC_DATA_ADDR -: Address to bind reva service. Default: `0.0.0.0:9164`. - ---url | $REVA_STORAGE_OC_DATA_URL -: URL to use for the reva service. Default: `localhost:9164`. - ---driver | $REVA_STORAGE_OC_DATA_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. - ---prefix | $REVA_STORAGE_OC_DATA_PREFIX -: prefix for the http endpoint, without leading slash. Default: `data`. - ---temp-folder | $REVA_STORAGE_OC_DATA_TEMP_FOLDER -: temp folder. Default: `/var/tmp/`. - ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. - ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. - ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. - ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. - ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. - ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-example.org`. - ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-example.org`. - ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. - ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. - ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. - ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. - ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. - ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. - ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. - ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. - ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. - ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. - ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. - ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. - ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. - ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. - ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `false`. - ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. - ---gateway-url | $REVA_GATEWAY_URL -: URL to use for the reva gateway service. Default: `localhost:9142`. - ### ocis-reva sharing Start reva sharing service @@ -355,145 +112,7 @@ Usage: `ocis-reva sharing [command options] [arguments...]` : file used to persist shares for the UserShareProvider. Default: `/var/tmp/reva/shares.json`. --public-driver | $REVA_SHARING_PUBLIC_DRIVER -: driver to use for the PublicShareProvider. Default: `memory`. - -### ocis-reva health - -Check health status - -Usage: `ocis-reva health [command options] [arguments...]` - ---debug-addr | $REVA_DEBUG_ADDR -: Address to debug endpoint. Default: `0.0.0.0:9109`. - -### ocis-reva storage-home-data - -Start reva storage-home-data service - -Usage: `ocis-reva storage-home-data [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_STORAGE_HOME_DATA_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9157`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---network | $REVA_STORAGE_HOME_DATA_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_STORAGE_HOME_DATA_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. - ---addr | $REVA_STORAGE_HOME_DATA_ADDR -: Address to bind reva service. Default: `0.0.0.0:9156`. - ---url | $REVA_STORAGE_HOME_DATA_URL -: URL to use for the reva service. Default: `localhost:9156`. - ---driver | $REVA_STORAGE_HOME_DATA_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. - ---prefix | $REVA_STORAGE_HOME_DATA_PREFIX -: prefix for the http endpoint, without leading slash. Default: `data`. - ---temp-folder | $REVA_STORAGE_HOME_DATA_TEMP_FOLDER -: temp folder. Default: `/var/tmp/`. - ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. Default: `/eos/dockertest/reva/users`. - ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. - ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. Default: `/Shares`. - ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. - ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. - ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. - ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. - ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. - ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. - ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. - ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. Default: `true`. - ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. - ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. - ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. - ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. - ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. - ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. - ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. - ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. - ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `true`. - ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. - ---gateway-url | $REVA_GATEWAY_URL -: URL to use for the reva gateway service. Default: `localhost:9142`. +: driver to use for the PublicShareProvider. Default: `json`. ### ocis-reva storage-oc @@ -630,11 +249,11 @@ Usage: `ocis-reva storage-oc [command options] [arguments...]` --storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT : `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. -### ocis-reva users +### ocis-reva storage-oc-data -Start reva users service +Start reva storage-oc-data service -Usage: `ocis-reva users [command options] [arguments...]` +Usage: `ocis-reva storage-oc-data [command options] [arguments...]` --tracing-enabled | $REVA_TRACING_ENABLED : Enable sending traces. @@ -651,8 +270,8 @@ Usage: `ocis-reva users [command options] [arguments...]` --tracing-service | $REVA_TRACING_SERVICE : Service name for tracing. Default: `reva`. ---debug-addr | $REVA_SHARING_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9145`. +--debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9165`. --debug-token | $REVA_DEBUG_TOKEN : Token to grant metrics access. @@ -666,143 +285,98 @@ Usage: `ocis-reva users [command options] [arguments...]` --jwt-secret | $REVA_JWT_SECRET : Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. ---ldap-hostname | $REVA_LDAP_HOSTNAME -: LDAP hostname. Default: `localhost`. - ---ldap-base-dn | $REVA_LDAP_BASE_DN -: LDAP basedn. Default: `dc=example,dc=org`. - ---ldap-userfilter | $REVA_LDAP_USERFILTER -: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s*))`. - ---ldap-groupfilter | $REVA_LDAP_GROUPFILTER -: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s*))`. - ---ldap-bind-dn | $REVA_LDAP_BIND_DN -: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. - ---ldap-bind-password | $REVA_LDAP_BIND_PASSWORD -: LDAP bind password. Default: `reva`. - ---ldap-idp | $REVA_LDAP_IDP -: Identity provider to use for users. Default: `https://localhost:9200`. - ---ldap-schema-uid | $REVA_LDAP_SCHEMA_UID -: LDAP schema uid. Default: `uid`. - ---ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL -: LDAP schema mail. Default: `mail`. - ---ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME -: LDAP schema displayName. Default: `sn`. - ---ldap-schema-cn | $REVA_LDAP_SCHEMA_CN -: LDAP schema cn. Default: `cn`. - ---network | $REVA_USERS_NETWORK +--network | $REVA_STORAGE_OC_DATA_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---protocol | $REVA_USERS_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. +--protocol | $REVA_STORAGE_OC_DATA_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. ---addr | $REVA_USERS_ADDR -: Address to bind reva service. Default: `0.0.0.0:9144`. +--addr | $REVA_STORAGE_OC_DATA_ADDR +: Address to bind reva service. Default: `0.0.0.0:9164`. ---url | $REVA_USERS_URL -: URL to use for the reva service. Default: `localhost:9144`. +--url | $REVA_STORAGE_OC_DATA_URL +: URL to use for the reva service. Default: `localhost:9164`. ---driver | $REVA_USERS_DRIVER -: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. +--driver | $REVA_STORAGE_OC_DATA_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. ---json-config | $REVA_USERS_JSON -: Path to users.json file. +--prefix | $REVA_STORAGE_OC_DATA_PREFIX +: prefix for the http endpoint, without leading slash. Default: `data`. -### ocis-reva auth-basic +--temp-folder | $REVA_STORAGE_OC_DATA_TEMP_FOLDER +: temp folder. Default: `/var/tmp/`. -Start reva authprovider for basic auth +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. -Usage: `ocis-reva auth-basic [command options] [arguments...]` +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-example.org`. ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-example.org`. ---debug-addr | $REVA_AUTH_BASIC_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9147`. +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. ---users-driver | $REVA_USERS_DRIVER -: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. ---users-json | $REVA_USERS_JSON -: Path to users.json file. +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. ---ldap-hostname | $REVA_LDAP_HOSTNAME -: LDAP hostname. Default: `localhost`. +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. ---ldap-base-dn | $REVA_LDAP_BASE_DN -: LDAP basedn. Default: `dc=example,dc=org`. +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. ---ldap-userfilter | $REVA_LDAP_USERFILTER -: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s))`. +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. ---ldap-groupfilter | $REVA_LDAP_GROUPFILTER -: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s))`. +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. ---ldap-bind-dn | $REVA_LDAP_BIND_DN -: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. ---ldap-bind-password | $REVA_LDAP_BIND_PASSWORD -: LDAP bind password. Default: `reva`. +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. ---ldap-idp | $REVA_LDAP_IDP -: Identity provider to use for users. Default: `https://localhost:9200`. +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. ---ldap-schema-uid | $REVA_LDAP_SCHEMA_UID -: LDAP schema uid. Default: `uid`. +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `false`. ---ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL -: LDAP schema mail. Default: `mail`. +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. ---ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME -: LDAP schema displayName. Default: `sn`. - ---ldap-schema-cn | $REVA_LDAP_SCHEMA_CN -: LDAP schema cn. Default: `cn`. - ---network | $REVA_AUTH_BASIC_NETWORK -: Network to use for the reva auth-basic service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_AUTH_BASIC_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_AUTH_BASIC_ADDR -: Address to bind reva service. Default: `0.0.0.0:9146`. - ---url | $REVA_AUTH_BASIC_URL -: URL to use for the reva service. Default: `localhost:9146`. +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. ### ocis-reva storage-root @@ -933,62 +507,14 @@ Usage: `ocis-reva storage-root [command options] [arguments...]` --storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT : `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. -### ocis-reva auth-bearer +### ocis-reva health -Start reva authprovider for bearer auth +Check health status -Usage: `ocis-reva auth-bearer [command options] [arguments...]` +Usage: `ocis-reva health [command options] [arguments...]` ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_AUTH_BEARER_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9149`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---oidc-issuer | $REVA_OIDC_ISSUER -: OIDC issuer. Default: `https://localhost:9200`. - ---oidc-insecure | $REVA_OIDC_INSECURE -: OIDC allow insecure communication. Default: `true`. - ---oidc-id-claim | $REVA_OIDC_ID_CLAIM -: OIDC id claim. Default: `preferred_username`. - ---network | $REVA_AUTH_BEARER_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_AUTH_BEARER_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_AUTH_BEARER_ADDR -: Address to bind reva service. Default: `0.0.0.0:9148`. - ---url | $REVA_AUTH_BEARER_URL -: URL to use for the reva service. Default: `localhost:9148`. +--debug-addr | $REVA_DEBUG_ADDR +: Address to debug endpoint. Default: `0.0.0.0:9109`. ### ocis-reva storage-eos @@ -1125,11 +651,11 @@ Usage: `ocis-reva storage-eos [command options] [arguments...]` --storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT : `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. -### ocis-reva frontend +### ocis-reva storage-eos-data -Start reva frontend service +Start reva storage-eos-data service -Usage: `ocis-reva frontend [command options] [arguments...]` +Usage: `ocis-reva storage-eos-data [command options] [arguments...]` --tracing-enabled | $REVA_TRACING_ENABLED : Enable sending traces. @@ -1146,8 +672,8 @@ Usage: `ocis-reva frontend [command options] [arguments...]` --tracing-service | $REVA_TRACING_SERVICE : Service name for tracing. Default: `reva`. ---debug-addr | $REVA_FRONTEND_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9141`. +--debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9161`. --debug-token | $REVA_DEBUG_TOKEN : Token to grant metrics access. @@ -1161,26 +687,95 @@ Usage: `ocis-reva frontend [command options] [arguments...]` --jwt-secret | $REVA_JWT_SECRET : Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. ---transfer-secret | $REVA_TRANSFER_SECRET -: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. - ---webdav-namespace | $WEBDAV_NAMESPACE -: Namespace prefix for the /webdav endpoint. Default: `/home/`. - ---dav-files-namespace | $DAV_FILES_NAMESPACE -: Namespace prefix for the webdav /dav/files endpoint. Default: `/oc/`. - ---network | $REVA_FRONTEND_NETWORK +--network | $REVA_STORAGE_EOS_DATA_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---protocol | $REVA_FRONTEND_PROTOCOL +--protocol | $REVA_STORAGE_EOS_DATA_PROTOCOL : protocol for reva service, can be 'http' or 'grpc'. Default: `http`. ---addr | $REVA_FRONTEND_ADDR -: Address to bind reva service. Default: `0.0.0.0:9140`. +--addr | $REVA_STORAGE_EOS_DATA_ADDR +: Address to bind reva service. Default: `0.0.0.0:9160`. ---url | $REVA_FRONTEND_URL -: URL to use for the reva service. Default: `localhost:9140`. +--url | $REVA_STORAGE_EOS_DATA_URL +: URL to use for the reva service. Default: `localhost:9160`. + +--driver | $REVA_STORAGE_EOS_DATA_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. + +--prefix | $REVA_STORAGE_EOS_DATA_PREFIX +: prefix for the http endpoint, without leading slash. Default: `data`. + +--temp-folder | $REVA_STORAGE_EOS_DATA_TEMP_FOLDER +: temp folder. Default: `/var/tmp/`. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. Default: `/eos/dockertest/reva`. + +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. + +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. Default: `/Shares`. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `false`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. --gateway-url | $REVA_GATEWAY_URL : URL to use for the reva gateway service. Default: `localhost:9142`. @@ -1320,11 +915,11 @@ Usage: `ocis-reva storage-home [command options] [arguments...]` --storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT : `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. -### ocis-reva storage-oc-data +### ocis-reva reva-storage-public-link -Start reva storage-oc-data service +Start reva storage-public-link service -Usage: `ocis-reva storage-oc-data [command options] [arguments...]` +Usage: `ocis-reva reva-storage-public-link [command options] [arguments...]` --tracing-enabled | $REVA_TRACING_ENABLED : Enable sending traces. @@ -1341,8 +936,8 @@ Usage: `ocis-reva storage-oc-data [command options] [arguments...]` --tracing-service | $REVA_TRACING_SERVICE : Service name for tracing. Default: `reva`. ---debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9161`. +--debug-addr | $REVA_STORAGE_PUBLIC_LINK_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:10053`. --debug-token | $REVA_DEBUG_TOKEN : Token to grant metrics access. @@ -1356,29 +951,521 @@ Usage: `ocis-reva storage-oc-data [command options] [arguments...]` --jwt-secret | $REVA_JWT_SECRET : Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. ---network | $REVA_STORAGE_EOS_DATA_NETWORK +--network | $REVA_STORAGE_PUBLIC_LINK_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---protocol | $REVA_STORAGE_EOS_DATA_PROTOCOL +--protocol | $REVA_STORAGE_PUBLIC_LINK_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_STORAGE_PUBLIC_LINK_ADDR +: Address to bind reva service. Default: `localhost:10054`. + +--public_share_provider_addr | $REVA_STORAGE_PUBLICLINK_PUBLIC_SHARE_PROVIDER_ADDR +: public share provider service address. Default: `localhost:9150`. + +--user_provider_addr | $REVA_STORAGE_PUBLICLINK_USER_PROVIDER_ADDR +: user provider service address. Default: `localhost:9144`. + +--storage_provider_addr | $REVA_STORAGE_PUBLICLINK_STORAGE_PROVIDER_ADDR +: storage provider service address. Default: `localhost:9154`. + +--driver | $REVA_STORAGE_PUBLIC_LINK_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. + +--mount-id | $REVA_STORAGE_PUBLIC_LINK_MOUNT_ID +: mount id. Default: `e1a73ede-549b-4226-abdf-40e69ca8230d`. + +--expose-data-server | $REVA_STORAGE_PUBLIC_LINK_EXPOSE_DATA_SERVER +: exposes a dedicated data server. Default: `true`. + +--data-server-url | $REVA_STORAGE_PUBLIC_LINK_DATA_SERVER_URL +: data server url. Default: `http://localhost:9156/data`. + +--enable-home-creation | $REVA_STORAGE_PUBLIC_LINK_ENABLE_HOME_CREATION +: if enabled home dirs will be automatically created. Default: `true`. + +--mount-path | $REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH +: mount path. Default: `/public/`. + +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. + +### ocis-reva users + +Start reva users service + +Usage: `ocis-reva users [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_SHARING_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9145`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--ldap-hostname | $REVA_LDAP_HOSTNAME +: LDAP hostname. Default: `localhost`. + +--ldap-base-dn | $REVA_LDAP_BASE_DN +: LDAP basedn. Default: `dc=example,dc=org`. + +--ldap-userfilter | $REVA_LDAP_USERFILTER +: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s*))`. + +--ldap-groupfilter | $REVA_LDAP_GROUPFILTER +: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s*))`. + +--ldap-bind-dn | $REVA_LDAP_BIND_DN +: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. + +--ldap-bind-password | $REVA_LDAP_BIND_PASSWORD +: LDAP bind password. Default: `reva`. + +--ldap-idp | $REVA_LDAP_IDP +: Identity provider to use for users. Default: `https://localhost:9200`. + +--ldap-schema-uid | $REVA_LDAP_SCHEMA_UID +: LDAP schema uid. Default: `uid`. + +--ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL +: LDAP schema mail. Default: `mail`. + +--ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME +: LDAP schema displayName. Default: `sn`. + +--ldap-schema-cn | $REVA_LDAP_SCHEMA_CN +: LDAP schema cn. Default: `cn`. + +--network | $REVA_USERS_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_USERS_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_USERS_ADDR +: Address to bind reva service. Default: `0.0.0.0:9144`. + +--url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. + +--driver | $REVA_USERS_DRIVER +: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. + +--json-config | $REVA_USERS_JSON +: Path to users.json file. + +### ocis-reva gateway + +Start reva gateway + +Usage: `ocis-reva gateway [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_GATEWAY_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9143`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--transfer-secret | $REVA_TRANSFER_SECRET +: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. + +--network | $REVA_GATEWAY_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_GATEWAY_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_GATEWAY_ADDR +: Address to bind reva service. Default: `0.0.0.0:9142`. + +--url | $REVA_GATEWAY_URL +: URL to use for the reva service. Default: `localhost:9142`. + +--commit-share-to-storage-grant | $REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_GRANT +: Commit shares to the share manager. Default: `true`. + +--commit-share-to-storage-ref | $REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_REF +: Commit shares to the storage. Default: `true`. + +--share-folder | $REVA_GATEWAY_SHARE_FOLDER +: mount shares in this folder of the home storage provider. Default: `Shares`. + +--link_grants_file | $REVA_GATEWAY_LINK_GRANTS_FILE +: when using a json manager, file to use as json serialized database. Default: `/var/tmp/reva/link_grants.json`. + +--disable-home-creation-on-login | $REVA_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN +: Disable creation of home folder on login. + +--storage-home-provider | $REVA_STORAGE_HOME_PROVIDER +: mount point of the storage provider for user homes in the global namespace. Default: `/home`. + +--frontend-url | $REVA_FRONTEND_URL +: URL to use for the reva service. Default: `localhost:9140`. + +--users-url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. + +--auth-basic-url | $REVA_AUTH_BASIC_URL +: URL to use for the reva service. Default: `localhost:9146`. + +--auth-bearer-url | $REVA_AUTH_BEARER_URL +: URL to use for the reva service. Default: `localhost:9148`. + +--sharing-url | $REVA_SHARING_URL +: URL to use for the reva service. Default: `localhost:9150`. + +--storage-root-url | $REVA_STORAGE_ROOT_URL +: URL to use for the reva service. Default: `localhost:9152`. + +--storage-root-mount-path | $REVA_STORAGE_ROOT_MOUNT_PATH +: mount path. Default: `/`. + +--storage-root-mount-id | $REVA_STORAGE_ROOT_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009152`. + +--storage-home-url | $REVA_STORAGE_HOME_URL +: URL to use for the reva service. Default: `localhost:9154`. + +--storage-home-mount-path | $REVA_STORAGE_HOME_MOUNT_PATH +: mount path. Default: `/home`. + +--storage-eos-url | $REVA_STORAGE_EOS_URL +: URL to use for the reva service. Default: `localhost:9158`. + +--storage-eos-mount-path | $REVA_STORAGE_EOS_MOUNT_PATH +: mount path. Default: `/eos`. + +--storage-eos-mount-id | $REVA_STORAGE_EOS_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009158`. + +--storage-oc-url | $REVA_STORAGE_OC_URL +: URL to use for the reva service. Default: `localhost:9162`. + +--storage-oc-mount-path | $REVA_STORAGE_OC_MOUNT_PATH +: mount path. Default: `/oc`. + +--storage-oc-mount-id | $REVA_STORAGE_OC_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. + +--public-links-url | $REVA_STORAGE_PUBLIC_LINK_URL +: URL to use for the public links service. Default: `localhost:10054`. + +### ocis-reva frontend + +Start reva frontend service + +Usage: `ocis-reva frontend [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_FRONTEND_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9141`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--transfer-secret | $REVA_TRANSFER_SECRET +: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. + +--webdav-namespace | $WEBDAV_NAMESPACE +: Namespace prefix for the /webdav endpoint. Default: `/home/`. + +--dav-files-namespace | $DAV_FILES_NAMESPACE +: Namespace prefix for the webdav /dav/files endpoint. Default: `/oc/`. + +--network | $REVA_FRONTEND_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_FRONTEND_PROTOCOL : protocol for reva service, can be 'http' or 'grpc'. Default: `http`. ---addr | $REVA_STORAGE_EOS_DATA_ADDR -: Address to bind reva service. Default: `0.0.0.0:9160`. +--addr | $REVA_FRONTEND_ADDR +: Address to bind reva service. Default: `0.0.0.0:9140`. ---url | $REVA_STORAGE_EOS_DATA_URL -: URL to use for the reva service. Default: `localhost:9160`. +--url | $REVA_FRONTEND_URL +: URL to use for the reva service. Default: `localhost:9140`. ---driver | $REVA_STORAGE_EOS_DATA_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. ---prefix | $REVA_STORAGE_EOS_DATA_PREFIX +--upload-disable-tus | $REVA_FRONTEND_UPLOAD_DISABLE_TUS +: Disables TUS upload mechanism. Default: `false`. + +--upload-http-method-override | $REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE +: Specify an HTTP method (ex: POST) that clients should to use when uploading instead of PATCH. + +### ocis-reva auth-basic + +Start reva authprovider for basic auth + +Usage: `ocis-reva auth-basic [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_AUTH_BASIC_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9147`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--users-driver | $REVA_USERS_DRIVER +: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. + +--users-json | $REVA_USERS_JSON +: Path to users.json file. + +--ldap-hostname | $REVA_LDAP_HOSTNAME +: LDAP hostname. Default: `localhost`. + +--ldap-base-dn | $REVA_LDAP_BASE_DN +: LDAP basedn. Default: `dc=example,dc=org`. + +--ldap-userfilter | $REVA_LDAP_USERFILTER +: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s))`. + +--ldap-groupfilter | $REVA_LDAP_GROUPFILTER +: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s))`. + +--ldap-bind-dn | $REVA_LDAP_BIND_DN +: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. + +--ldap-bind-password | $REVA_LDAP_BIND_PASSWORD +: LDAP bind password. Default: `reva`. + +--ldap-idp | $REVA_LDAP_IDP +: Identity provider to use for users. Default: `https://localhost:9200`. + +--ldap-schema-uid | $REVA_LDAP_SCHEMA_UID +: LDAP schema uid. Default: `uid`. + +--ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL +: LDAP schema mail. Default: `mail`. + +--ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME +: LDAP schema displayName. Default: `sn`. + +--ldap-schema-cn | $REVA_LDAP_SCHEMA_CN +: LDAP schema cn. Default: `cn`. + +--network | $REVA_AUTH_BASIC_NETWORK +: Network to use for the reva auth-basic service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_AUTH_BASIC_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_AUTH_BASIC_ADDR +: Address to bind reva service. Default: `0.0.0.0:9146`. + +--url | $REVA_AUTH_BASIC_URL +: URL to use for the reva service. Default: `localhost:9146`. + +### ocis-reva auth-bearer + +Start reva authprovider for bearer auth + +Usage: `ocis-reva auth-bearer [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_AUTH_BEARER_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9149`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--oidc-issuer | $REVA_OIDC_ISSUER +: OIDC issuer. Default: `https://localhost:9200`. + +--oidc-insecure | $REVA_OIDC_INSECURE +: OIDC allow insecure communication. Default: `true`. + +--oidc-id-claim | $REVA_OIDC_ID_CLAIM +: OIDC id claim. Default: `preferred_username`. + +--network | $REVA_AUTH_BEARER_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_AUTH_BEARER_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_AUTH_BEARER_ADDR +: Address to bind reva service. Default: `0.0.0.0:9148`. + +--url | $REVA_AUTH_BEARER_URL +: URL to use for the reva service. Default: `localhost:9148`. + +### ocis-reva storage-home-data + +Start reva storage-home-data service + +Usage: `ocis-reva storage-home-data [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_HOME_DATA_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9157`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_HOME_DATA_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_HOME_DATA_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. + +--addr | $REVA_STORAGE_HOME_DATA_ADDR +: Address to bind reva service. Default: `0.0.0.0:9156`. + +--url | $REVA_STORAGE_HOME_DATA_URL +: URL to use for the reva service. Default: `localhost:9156`. + +--driver | $REVA_STORAGE_HOME_DATA_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. + +--prefix | $REVA_STORAGE_HOME_DATA_PREFIX : prefix for the http endpoint, without leading slash. Default: `data`. ---temp-folder | $REVA_STORAGE_EOS_DATA_TEMP_FOLDER +--temp-folder | $REVA_STORAGE_HOME_DATA_TEMP_FOLDER : temp folder. Default: `/var/tmp/`. --storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. Default: `/eos/dockertest/reva`. +: Namespace for metadata operations. Default: `/eos/dockertest/reva/users`. --storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE : Shadow namespace where share references are stored. @@ -1414,7 +1501,7 @@ Usage: `ocis-reva storage-oc-data [command options] [arguments...]` : authenticate requests by using an EOS keytab. --storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. +: enable the creation of home directories. Default: `true`. --storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL : the xrootd security protocol to use between the server and EOS. @@ -1426,7 +1513,7 @@ Usage: `ocis-reva storage-oc-data [command options] [arguments...]` : the username to use when SingleUserMode is enabled. --storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. --storage-local-root | $REVA_STORAGE_LOCAL_ROOT : the path to the local storage root. Default: `/var/tmp/reva/root`. @@ -1441,7 +1528,7 @@ Usage: `ocis-reva storage-oc-data [command options] [arguments...]` : the address of the redis server. Default: `:6379`. --storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `false`. +: enable the creation of home storages. Default: `true`. --storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT : `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index a53370fc4d..e0484fbcec 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -162,21 +162,21 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "upload-disable-tus", Value: false, - Usage: "Tells clients to not use TUS by disabling the capability (this doesn't disable the endpoints)", + Usage: "Disables TUS upload mechanism", EnvVars: []string{"REVA_FRONTEND_UPLOAD_DISABLE_TUS"}, Destination: &cfg.Reva.UploadDisableTus, }, &cli.IntFlag{ Name: "upload-max-chunk-size", Value: 0, - Usage: "Max chunk size in bytes to advertise to clients through capabilities", + Usage: "Max chunk size in bytes to advertise to clients through capabilities, or 0 for unlimited", EnvVars: []string{"REVA_FRONTEND_UPLOAD_MAX_CHUNK_SIZE"}, Destination: &cfg.Reva.UploadMaxChunkSize, }, &cli.StringFlag{ Name: "upload-http-method-override", Value: "", - Usage: "Specify an HTTP method (ex: POST) to use when uploading in case OPTIONS and PATCH are not available", + Usage: "Specify an HTTP method (ex: POST) that clients should to use when uploading instead of PATCH", EnvVars: []string{"REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE"}, Destination: &cfg.Reva.UploadHTTPMethodOverride, }, From 6f29c156f49740276dc41ad5d4b38ac8d9cac703 Mon Sep 17 00:00:00 2001 From: jasson99 <40829116+jasson99@users.noreply.github.com> Date: Fri, 5 Jun 2020 10:24:38 +0545 Subject: [PATCH 120/346] update testing.md Include environment variable for skeleton_dir for running tests on ocis --- docs/testing.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/testing.md b/docs/testing.md index 79e2d27240..f776967255 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -82,10 +82,11 @@ TEST_SERVER_URL=http://localhost:9140 \ TEST_EXTERNAL_USER_BACKENDS=true \ TEST_OCIS=true \ OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ -BEHAT_FILTER_TAGS='~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage' +BEHAT_FILTER_TAGS='~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage' \ +SKELETON_DIR=apps/testing/data/apiSkeleton ``` -Make sure to adjust the settings `TEST_SERVER_URL` and `OCIS_REVA_DATA_ROOT` according to your environment +Make sure to adjust the settings `TEST_SERVER_URL`,`OCIS_REVA_DATA_ROOT` and `SKELETON_DIR` according to your environment This will run all tests that can work with LDAP and are not skipped on OCIS From cea1a7bff7934e0d58f059fabc0833f0b60cb565 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 15 Jun 2020 15:51:31 +0545 Subject: [PATCH 121/346] Remove UI tests from drone CI --- .drone.star | 257 ---------------------------------------------------- 1 file changed, 257 deletions(-) diff --git a/.drone.star b/.drone.star index 744e3eaef1..19e90d354d 100644 --- a/.drone.star +++ b/.drone.star @@ -2,7 +2,6 @@ def main(ctx): before = [ testing(ctx), apiTests(ctx), - uiTests(ctx), ] stages = [ @@ -369,262 +368,6 @@ def testing(ctx): }, } -def uiTests(ctx): - return { - 'kind': 'pipeline', - 'type': 'docker', - 'name': 'Phoenix-UI-Tests', - 'platform': { - 'os': 'linux', - 'arch': 'amd64', - }, - 'steps': [ - { - 'name': 'build', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make build', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'copy-config', - 'image': 'webhippie/golang:1.13', - 'commands': [ - 'mkdir -p /srv/config/drone', - 'ls -la tests/config', - 'cp -r tests/config/config.json /srv/config/drone', - 'cp -r tests/config/identifier-registration.yml /srv/config/drone', - 'ls -la /srv/config/drone', - ], - 'volumes': [ - { - 'name': 'config', - 'path': '/srv/config', - }, - ] - }, - { - 'name': 'konnectd', - 'image': 'owncloud/ocis-konnectd', - 'pull': 'always', - 'detach': True, - 'environment': { - 'LDAP_BASEDN': 'ou=TestUsers,dc=owncloud,dc=com', - 'LDAP_BINDDN': 'cn=admin,dc=owncloud,dc=com', - 'LDAP_URI': 'ldap://ldap:389', - 'KONNECTD_IDENTIFIER_REGISTRATION_CONF': '/srv/config/drone/identifier-registration.yml', - 'KONNECTD_ISS': 'https://konnectd:9130', - 'KONNECTD_TLS': 'true', - 'LDAP_BINDPW': 'admin', - 'LDAP_SCOPE': 'sub', - 'LDAP_LOGIN_ATTRIBUTE': 'uid', - 'LDAP_EMAIL_ATTRIBUTE': 'mail', - 'LDAP_NAME_ATTRIBUTE': 'givenName', - 'LDAP_UUID_ATTRIBUTE': 'uid', - 'LDAP_UUID_ATTRIBUTE_TYPE': 'text', - 'LDAP_FILTER': "(objectClass=posixaccount)" - }, - 'volumes': [ - { - 'name': 'config', - 'path': '/srv/config', - }, - ] - }, - { - 'name': 'clone-build-phoenix', - 'image': 'owncloudci/nodejs:10', - 'pull': 'always', - 'commands': [ - 'git clone -b master --depth=1 https://github.com/owncloud/phoenix.git /srv/app/uitestrunner', - 'cd /srv/app/uitestrunner', - 'mkdir -p filesForUpload', - 'cp -r tests/acceptance/filesForUpload/* /filesForUpload/', - 'yarn install --all', - 'yarn dist', - ], - 'volumes': [ - { - 'name': 'config', - 'path': '/srv/config', - }, - { - 'name': 'uploads', - 'path': '/filesForUpload', - }, - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ] - }, - { - 'name': 'phoenix', - 'image': 'owncloud/ocis-phoenix', - 'pull': 'always', - 'detach': True, - 'environment': { - 'PHOENIX_WEB_CONFIG': '/srv/config/drone/config.json', - 'PHOENIX_OIDC_CLIENT_ID': 'phoenix', - 'PHOENIX_ASSET_PATH': '/srv/app/uitestrunner/dist' - }, - 'volumes': [ - { - 'name': 'config', - 'path': '/srv/config', - }, - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ] - }, - { - 'name': 'reva-server', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'detach': True, - 'environment' : { - 'REVA_LDAP_HOSTNAME': 'ldap', - 'REVA_LDAP_PORT': 636, - 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', - 'REVA_LDAP_BIND_PASSWORD': 'admin', - 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', - 'REVA_LDAP_SCHEMA_DISPLAYNAME': 'displayName', - 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', - 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', - 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', - 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', - 'REVA_STORAGE_OC_DATA_URL': 'reva-server:9164', - 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', - 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', - 'REVA_OIDC_ISSUER': 'https://konnectd:9130', - 'REVA_STORAGE_LOCAL_ROOT': '/srv/app/tmp/reva/root', - 'REVA_USERS_DRIVER': 'ldap', - 'REVA_STORAGE_HOME_EXPOSE_DATA_SERVER': '1', - 'REVA_STORAGE_OC_EXPOSE_DATA_SERVER': '1', - }, - 'commands': [ - 'mkdir -p /srv/app/tmp/reva', - 'bin/ocis-reva gateway &', - 'bin/ocis-reva users &', - 'bin/ocis-reva auth-basic &', - 'bin/ocis-reva auth-bearer &', - 'bin/ocis-reva sharing &', - 'bin/ocis-reva storage-home &', - 'bin/ocis-reva storage-home-data &', - 'bin/ocis-reva storage-oc &', - 'bin/ocis-reva storage-oc-data &', - 'bin/ocis-reva frontend' - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ] - }, - { - 'name': 'ui-tests', - 'image': 'owncloudci/nodejs:11', - 'pull': 'always', - 'environment' : { - 'TEST_TAGS': 'not @skipOnOCIS and not @skip', - 'REVA_LDAP_HOSTNAME':'ldap', - 'SERVER_HOST': 'http://phoenix:9100', - 'BACKEND_HOST': 'http://reva-server:9140', - 'SELENIUM_PORT': '4444', - 'RUN_ON_OCIS': 'true', - 'OCIS_SKELETON_DIR': '/srv/app/testingapp/data/webUISkeleton', - 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', - 'LDAP_SERVER_URL': 'ldap://ldap', - 'PHOENIX_CONFIG': '/srv/config/drone/config.json', - 'TEST_CONTEXT': '', - 'LOCAL_UPLOAD_DIR': '/uploads', - }, - 'commands': [ - 'ls -la /srv/config/drone', - 'git clone https://github.com/owncloud/testing.git /srv/app/testingapp', - 'cd /srv/app/uitestrunner', - 'yarn run acceptance-tests-drone' - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - { - 'name': 'config', - 'path': '/srv/config', - }, - { - 'name': 'uploads', - 'path': '/srv/app/phoenix/tests/acceptance/uitestrunner', - }, - ] - }, - ], - 'services': [ - { - 'name': 'ldap', - 'image': 'osixia/openldap', - 'pull': 'always', - 'environment': { - 'LDAP_DOMAIN': 'owncloud.com', - 'LDAP_ORGANISATION': 'owncloud', - 'LDAP_ADMIN_PASSWORD': 'admin', - 'LDAP_TLS_VERIFY_CLIENT': 'never', - 'HOSTNAME': 'ldap' - }, - }, - { - 'name': 'selenium', - 'image': 'selenium/standalone-chrome-debug:3.141.59-20200326', - 'pull': 'always', - 'volumes': [{ - 'name': 'uploads', - 'path': '/uploads' - }], - }, - { - 'name': 'redis', - 'image': 'webhippie/redis', - 'pull': 'always', - 'environment': { - 'REDIS_DATABASES': 1 - }, - }, - ], - 'volumes': [ - { - 'name': 'gopath', - 'temp': {}, - }, - { - 'name': 'config', - 'temp': {}, - }, - { - 'name': 'uploads', - 'temp': {}, - }, - ], - 'trigger': { - 'ref': [ - 'refs/heads/master', - 'refs/tags/**', - 'refs/pull/**', - ], - }, - } - def docker(ctx, arch): return { 'kind': 'pipeline', From bc787c521db57621bc80388e0f79bf06cfd42835 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 15 Jun 2020 16:17:00 +0545 Subject: [PATCH 122/346] Fetch API testrunner from specific branch and commit --- .drone.star | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.drone.star b/.drone.star index 19e90d354d..cc02520185 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx), + apiTests(ctx, 'master', '158bd976047ea8abd137e2c61905d9dd63dc977d'), ] stages = [ @@ -23,7 +23,7 @@ def main(ctx): return before + stages + after -def apiTests(ctx): +def apiTests(ctx, coreBranch, coreCommit): return { 'kind': 'pipeline', 'type': 'docker', @@ -103,8 +103,9 @@ def apiTests(ctx): }, 'commands': [ 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', - 'git clone -b master --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner', + 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), 'cd /srv/app/testrunner', + 'git checkout %s' % (coreCommit), 'make test-acceptance-api' ], 'volumes': [ From 0f7cc3bf2554fd11136711e46e75642c21c6bef5 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 15 Jun 2020 16:57:12 +0545 Subject: [PATCH 123/346] Adjust indent in .drone.star --- .drone.star | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/.drone.star b/.drone.star index cc02520185..e445a985e1 100644 --- a/.drone.star +++ b/.drone.star @@ -100,20 +100,20 @@ def apiTests(ctx, coreBranch, coreCommit): 'TEST_OCIS':'true', 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton' - }, - 'commands': [ - 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', - 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), - 'cd /srv/app/testrunner', - 'git checkout %s' % (coreCommit), - 'make test-acceptance-api' - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ] + }, + 'commands': [ + 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', + 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), + 'cd /srv/app/testrunner', + 'git checkout %s' % (coreCommit), + 'make test-acceptance-api' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] }, ], 'services': [ @@ -321,7 +321,7 @@ def testing(ctx): 'LITMUS_USERNAME': 'tu1', 'LITMUS_PASSWORD': '1234', 'TESTS': 'basic http copymove props' - }, + }, }, ], 'services': [ @@ -335,7 +335,7 @@ def testing(ctx): 'LDAP_ADMIN_PASSWORD': 'admin', 'LDAP_TLS_VERIFY_CLIENT': 'never', 'HOSTNAME': 'ldap' - }, + }, }, { 'name': 'redis', @@ -343,7 +343,7 @@ def testing(ctx): 'pull': 'always', 'environment': { 'REDIS_DATABASES': 1 - }, + }, }, ], 'volumes': [ From 557015de68ea46f9820c642e33d167f186d2858d Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 15 Jun 2020 17:07:40 +0545 Subject: [PATCH 124/346] Only checkout a commit if it is specified --- .drone.star | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.drone.star b/.drone.star index e445a985e1..1d403e0fc5 100644 --- a/.drone.star +++ b/.drone.star @@ -23,7 +23,7 @@ def main(ctx): return before + stages + after -def apiTests(ctx, coreBranch, coreCommit): +def apiTests(ctx, coreBranch = 'master', coreCommit = ''): return { 'kind': 'pipeline', 'type': 'docker', @@ -105,7 +105,9 @@ def apiTests(ctx, coreBranch, coreCommit): 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), 'cd /srv/app/testrunner', - 'git checkout %s' % (coreCommit), + ] + ([ + 'git checkout %s' % (coreCommit) + ] if coreCommit != '' else []) + [ 'make test-acceptance-api' ], 'volumes': [ From e711c865df71095c2d1a247393d17fb350d42f66 Mon Sep 17 00:00:00 2001 From: jasson99 Date: Tue, 16 Jun 2020 10:56:56 +0545 Subject: [PATCH 125/346] [Tests-Only] Use openldap:1.3.0 --- .drone.star | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.star b/.drone.star index 1d403e0fc5..0a78af913a 100644 --- a/.drone.star +++ b/.drone.star @@ -121,7 +121,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'services': [ { 'name': 'ldap', - 'image': 'osixia/openldap', + 'image': 'osixia/openldap:1.3.0', 'pull': 'always', 'environment': { 'LDAP_DOMAIN': 'owncloud.com', @@ -329,7 +329,7 @@ def testing(ctx): 'services': [ { 'name': 'ldap', - 'image': 'osixia/openldap', + 'image': 'osixia/openldap:1.3.0', 'pull': 'always', 'environment': { 'LDAP_DOMAIN': 'owncloud.com', From 8f75863efbe69738b8fa6106c1280c8239aac40d Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 18 Jun 2020 16:45:26 +0545 Subject: [PATCH 126/346] skip tests that are tagged @skipOnOcis-OC-Storage --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 0a78af913a..9db39cd05d 100644 --- a/.drone.star +++ b/.drone.star @@ -94,7 +94,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage', + 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnOcis-OC-Storage&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'TEST_OCIS':'true', From db1e77ea98ce75c99a222db3aba091af572d4973 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 18 Jun 2020 09:30:29 +0200 Subject: [PATCH 127/346] Update reva to 20200624 --- .../unreleased/update-reva-to-20200624.md | 68 +++++++++++++++++++ go.mod | 2 +- go.sum | 27 ++++++++ 3 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/update-reva-to-20200624.md diff --git a/changelog/unreleased/update-reva-to-20200624.md b/changelog/unreleased/update-reva-to-20200624.md new file mode 100644 index 0000000000..4d9bf5d04f --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200624.md @@ -0,0 +1,68 @@ +Enhancement: update reva to v0.1.1-0.20200624063447-db5e6635d5f0 + +- Updated reva to v0.1.1-0.20200624063447-db5e6635d5f0 (#279) +- Local storage: URL-encode file ids to ease integration with other microservices like WOPI (reva/#799) +- Mentix fixes (reva/#803, reva/#817) +- OCDAV: fix returned timestamp format (#116, reva/#805) +- OCM: add default prefix (#814) +- add the content-length header to the responses (reva/#816) +- Deps: clean (reva/#818) +- Fix trashbin listing (#112, #253, #254, reva/#819) +- Make the json publicshare driver configurable (reva/#820) +- TUS: Return metadata headers after direct upload (ocis/#216, reva/#813) +- Set mtime to storage after simple upload (#174, reva/#823, reva/#841) +- Configure grpc client to allow for insecure conns and skip server certificate verification (reva/#825) +- Deployment: simplify config with more default values (reva/#826, reva/#837, reva/#843, reva/#848, reva/#842) +- Separate local fs into home and with home disabled (reva/#829) +- Register reflection after other services (reva/#831) +- Refactor EOS fs (reva/#830) +- Add ocs-share-permissions to the propfind response (#47, reva/#836) +- OCS: Properly read permissions when creating public link (reva/#852) +- localfs: make normalize return associated error (reva/#850) +- EOS grpc driver (reva/#664) +- OCS: Add support for legacy public link arg publicUpload (reva/#853) +- Add cache layer to user REST package (reva/#849) +- Meshdirectory: pass query params to selected provider (reva/#863) +- Pass etag in quotes from the fs layer (#269, reva/#866, reva/#867) +- OCM: use refactored cs3apis provider definition (reva/#864) + +https://github.com/owncloud/ocis-reva/pull/279 +https://github.com/owncloud/cs3org/reva/pull/799 +https://github.com/owncloud/cs3org/reva/pull/803 +https://github.com/owncloud/cs3org/reva/pull/817 +https://github.com/owncloud/ocis-reva/issues/116 +https://github.com/owncloud/cs3org/reva/pull/805 +https://github.com/owncloud/cs3org/reva/pull/814 +https://github.com/owncloud/cs3org/reva/pull/816 +https://github.com/owncloud/cs3org/reva/pull/818 +https://github.com/owncloud/ocis-reva/issues/112 +https://github.com/owncloud/ocis-reva/issues/253 +https://github.com/owncloud/ocis-reva/issues/254 +https://github.com/owncloud/cs3org/reva/pull/819 +https://github.com/owncloud/cs3org/reva/pull/820 +https://github.com/owncloud/ocis/issues/216 +https://github.com/owncloud/ocis-reva/issues/174 +https://github.com/owncloud/cs3org/reva/pull/823 +https://github.com/owncloud/cs3org/reva/pull/841 +https://github.com/owncloud/cs3org/reva/pull/813 +https://github.com/owncloud/cs3org/reva/pull/825 +https://github.com/owncloud/cs3org/reva/pull/826 +https://github.com/owncloud/cs3org/reva/pull/837 +https://github.com/owncloud/cs3org/reva/pull/843 +https://github.com/owncloud/cs3org/reva/pull/848 +https://github.com/owncloud/cs3org/reva/pull/842 +https://github.com/owncloud/cs3org/reva/pull/829 +https://github.com/owncloud/cs3org/reva/pull/831 +https://github.com/owncloud/cs3org/reva/pull/830 +https://github.com/owncloud/ocis-reva/issues/47 +https://github.com/owncloud/cs3org/reva/pull/836 +https://github.com/owncloud/cs3org/reva/pull/852 +https://github.com/owncloud/cs3org/reva/pull/850 +https://github.com/owncloud/cs3org/reva/pull/664 +https://github.com/owncloud/cs3org/reva/pull/853 +https://github.com/owncloud/cs3org/reva/pull/849 +https://github.com/owncloud/cs3org/reva/pull/863 +https://github.com/owncloud/ocis-reva/issues/269 +https://github.com/owncloud/cs3org/reva/pull/866 +https://github.com/owncloud/cs3org/reva/pull/867 +https://github.com/owncloud/cs3org/reva/pull/864 diff --git a/go.mod b/go.mod index c2767733d5..33d8900c7e 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/cs3org/reva v0.1.1-0.20200603124923-9b9f2e5af0e9 + github.com/cs3org/reva v0.1.1-0.20200624063447-db5e6635d5f0 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 8828ed7a6a..42b5352824 100644 --- a/go.sum +++ b/go.sum @@ -17,6 +17,7 @@ contrib.go.opencensus.io/exporter/jaeger v0.2.0/go.mod h1:ukdzwIYYHgZ7QYtwVFQUji contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= contrib.go.opencensus.io/exporter/prometheus v0.1.0 h1:SByaIoWwNgMdPSgl5sMqM2KDE5H/ukPWBRo314xiDvg= contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= +contrib.go.opencensus.io/exporter/prometheus v0.2.0/go.mod h1:TYmVAyE8Tn1lyPcltF5IYYfWp2KHu7lQGIZnj8iZMys= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go v32.4.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= @@ -83,6 +84,9 @@ github.com/aws/aws-sdk-go v1.31.1 h1:5tv3VtTS/IM1yZ6lxMQQVmH28SkkR3b3w+6u+9rcLx4 github.com/aws/aws-sdk-go v1.31.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.31.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.32.3/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.32.5/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.32.8/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -147,9 +151,12 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/cs3org/cato v0.0.0-20200609102907-4116d2de0add/go.mod h1:6GOQIYvO+ZepxBKY9geuIAF7qfozDeDsTrX0BW9LZ0k= +github.com/cs3org/cato v0.0.0-20200618163134-e83dd323b17e/go.mod h1:6GOQIYvO+ZepxBKY9geuIAF7qfozDeDsTrX0BW9LZ0k= github.com/cs3org/go-cs3apis v0.0.0-20200423154403-462ce7762d4a/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/go-cs3apis v0.0.0-20200515145316-7048e6a5a73d h1:toZvBLH1cbHT65kv6xYPd9QqwLUHwOAVHqe9j4obAq4= github.com/cs3org/go-cs3apis v0.0.0-20200515145316-7048e6a5a73d/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/go-cs3apis v0.0.0-20200622121618-dc54dffb5e44/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v0.1.1-0.20200520150229-ce94fda7436f/go.mod h1:fVZ7IXTQaxNit5Q9yA+x6ciJmUpEHgBrxtwmiGGBY40= github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928 h1:6dIWlFuZNGz3tmK8IF/1JQ/TkmTj0/v3dSt0Zi1zrX0= github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928/go.mod h1:ig/TuMCG/l6vjOvFkj/4tU27PBvcig+Kfjc4mF++BwQ= @@ -159,6 +166,16 @@ github.com/cs3org/reva v0.1.1-0.20200603071553-e05a87521618 h1:W9qBdHKhY2PE5e//d github.com/cs3org/reva v0.1.1-0.20200603071553-e05a87521618/go.mod h1:FOU15UeWYXIckxEOwqjjoNAK/1EQrdRTuiX6x66b3Ts= github.com/cs3org/reva v0.1.1-0.20200603124923-9b9f2e5af0e9 h1:aYxzZ3anTavS2xyxEuPNFvUtbwmv0f+raWbRd/YE2yE= github.com/cs3org/reva v0.1.1-0.20200603124923-9b9f2e5af0e9/go.mod h1:FOU15UeWYXIckxEOwqjjoNAK/1EQrdRTuiX6x66b3Ts= +github.com/cs3org/reva v0.1.1-0.20200617172225-dfea5c2ff6c0 h1:RCAI+z9vEqOGEovjf6LkrTfZ2UVE7N5Y2xaKKerpNFA= +github.com/cs3org/reva v0.1.1-0.20200617172225-dfea5c2ff6c0/go.mod h1:OXjpyIi2H5hAE9PMCYk93kDUm4vurLEYrrffYhpEcJ8= +github.com/cs3org/reva v0.1.1-0.20200618092755-8c9ddc62216c h1:JwkomzMEuj0cefV0wgZBqlUR01FZv3NbCa3BC3/C79w= +github.com/cs3org/reva v0.1.1-0.20200618092755-8c9ddc62216c/go.mod h1:OXjpyIi2H5hAE9PMCYk93kDUm4vurLEYrrffYhpEcJ8= +github.com/cs3org/reva v0.1.1-0.20200619075422-8ac72153b3a6 h1:f9ALlpWtyy0PX4RLgCjXs1AHD/7VUt/Qu7lSAS8U+yY= +github.com/cs3org/reva v0.1.1-0.20200619075422-8ac72153b3a6/go.mod h1:tFcYbIPMOKMITn2b7j4i4oNoiakNXkCD8Bx6pwf7N/U= +github.com/cs3org/reva v0.1.1-0.20200622084157-4925dc73ec86 h1:TSG6ZPczyWmyFl74vu+uJHwN7puEkjkcmMRH+F2Lgcw= +github.com/cs3org/reva v0.1.1-0.20200622084157-4925dc73ec86/go.mod h1:tFcYbIPMOKMITn2b7j4i4oNoiakNXkCD8Bx6pwf7N/U= +github.com/cs3org/reva v0.1.1-0.20200624063447-db5e6635d5f0 h1:zzwEoAxYKhEbWzfaa43Va1pO4OSXWiS+1P/CsLn2als= +github.com/cs3org/reva v0.1.1-0.20200624063447-db5e6635d5f0/go.mod h1:AwSrblO/VrqvX1M+y+p0+4rSUAO0/PGVA1FR0GKYANs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -410,6 +427,7 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -632,6 +650,7 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.3.0 h1:iDwIio/3gk2QtLLEsqU5lInaMzos0hDTz8a6lazSFVw= github.com/mitchellh/mapstructure v1.3.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -693,6 +712,8 @@ github.com/ory/fosite v0.31.0/go.mod h1:lSSqjo8Kr/U1P3kJWxsNGHmq7TnH/7pS1ijvQRT7 github.com/ory/fosite v0.31.3 h1:5WjLwfs+yUALZjzKUKGN/M+ddBJ5Ol6NawxuCO2TuAg= github.com/ory/fosite v0.31.3/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= github.com/ory/fosite v0.32.0/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= +github.com/ory/fosite v0.32.1/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= +github.com/ory/fosite v0.32.2/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= github.com/ory/go-acc v0.0.0-20181118080137-ddc355013f90/go.mod h1:sxnvPCxChFuSmTJGj8FdMupeq1BezCiEpDjTUXQ4hf4= github.com/ory/go-acc v0.2.1 h1:Pwcmwd/cSnwJsYN76+w3HU7oXeWFTkwj/KUj1qGDrVw= github.com/ory/go-acc v0.2.1/go.mod h1:0omgy2aa3nDBJ45VAKeLHH8ccPBudxLeic4xiDRtug0= @@ -759,8 +780,10 @@ github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7z github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.6/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/statsd_exporter v0.15.0/go.mod h1:Dv8HnkoLQkeEjkIE4/2ndAA7WL1zHKK7WMqFQqu72rw= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKcyumwBO6qip7RNQ5r77yrssm9bfCowcLEBcU5IA= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -778,6 +801,7 @@ github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= github.com/rs/zerolog v1.18.0 h1:CbAm3kP2Tptby1i9sYy2MGRg0uxIN9cyDb59Ys7W8z8= github.com/rs/zerolog v1.18.0/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= +github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo= github.com/rubenv/sql-migrate v0.0.0-20190212093014-1007f53448d7/go.mod h1:WS0rl9eEliYI8DPnr3TOwz4439pay+qNgzJoVya/DmY= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= @@ -904,6 +928,7 @@ go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -1074,6 +1099,7 @@ golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191105231009-c1f44814a5cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191113165036-4c7a9d0fe056/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1188,6 +1214,7 @@ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From d2c45f96dc33bf1c7f7305c6cab5571b0cf0177f Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 18 Jun 2020 21:27:26 +0545 Subject: [PATCH 128/346] Use current core master commit id for API tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 9db39cd05d..62932d3492 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', '158bd976047ea8abd137e2c61905d9dd63dc977d'), + apiTests(ctx, 'master', 'e2b0a01a8807f549cbd1a42c7bd35f8cfc224ef7'), ] stages = [ From 6cef52ad20defe6b16c4221743b8cc4bdfb45b16 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 24 Jun 2020 11:08:33 +0200 Subject: [PATCH 129/346] Prepare release 0.6.0 --- .../{unreleased => 0.6.0_2020-06-24}/update-reva-to-20200624.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.6.0_2020-06-24}/update-reva-to-20200624.md (100%) diff --git a/changelog/unreleased/update-reva-to-20200624.md b/changelog/0.6.0_2020-06-24/update-reva-to-20200624.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200624.md rename to changelog/0.6.0_2020-06-24/update-reva-to-20200624.md From 8702143d6987d185dd7250615ddaa15ecf98b006 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 24 Jun 2020 09:16:35 +0000 Subject: [PATCH 130/346] Automated changelog update [skip ci] --- CHANGELOG.md | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ go.mod | 2 -- 2 files changed, 74 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2db60d90b..b48cf1c5c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,77 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.5.0...master + +## Summary + +* Enhancement - Update reva to v0.1.1-0.20200624063447-db5e6635d5f0: [#279](https://github.com/owncloud/ocis-reva/pull/279) + +## Details + +* Enhancement - Update reva to v0.1.1-0.20200624063447-db5e6635d5f0: [#279](https://github.com/owncloud/ocis-reva/pull/279) + + - Updated reva to v0.1.1-0.20200624063447-db5e6635d5f0 (#279) - Local storage: URL-encode + file ids to ease integration with other microservices like WOPI (reva/#799) - Mentix fixes + (reva/#803, reva/#817) - OCDAV: fix returned timestamp format (#116, reva/#805) - OCM: add + default prefix (#814) - add the content-length header to the responses (reva/#816) - Deps: + clean (reva/#818) - Fix trashbin listing (#112, #253, #254, reva/#819) - Make the json + publicshare driver configurable (reva/#820) - TUS: Return metadata headers after direct + upload (ocis/#216, reva/#813) - Set mtime to storage after simple upload (#174, reva/#823, + reva/#841) - Configure grpc client to allow for insecure conns and skip server certificate + verification (reva/#825) - Deployment: simplify config with more default values + (reva/#826, reva/#837, reva/#843, reva/#848, reva/#842) - Separate local fs into home and + with home disabled (reva/#829) - Register reflection after other services (reva/#831) - + Refactor EOS fs (reva/#830) - Add ocs-share-permissions to the propfind response (#47, + reva/#836) - OCS: Properly read permissions when creating public link (reva/#852) - localfs: + make normalize return associated error (reva/#850) - EOS grpc driver (reva/#664) - OCS: Add + support for legacy public link arg publicUpload (reva/#853) - Add cache layer to user REST + package (reva/#849) - Meshdirectory: pass query params to selected provider (reva/#863) - + Pass etag in quotes from the fs layer (#269, reva/#866, reva/#867) - OCM: use refactored + cs3apis provider definition (reva/#864) + + https://github.com/owncloud/ocis-reva/issues/116 + https://github.com/owncloud/ocis-reva/issues/112 + https://github.com/owncloud/ocis-reva/issues/253 + https://github.com/owncloud/ocis-reva/issues/254 + https://github.com/owncloud/ocis/issues/216 + https://github.com/owncloud/ocis-reva/issues/174 + https://github.com/owncloud/ocis-reva/issues/47 + https://github.com/owncloud/ocis-reva/issues/269 + https://github.com/owncloud/ocis-reva/pull/279 + https://github.com/owncloud/cs3org/reva/pull/799 + https://github.com/owncloud/cs3org/reva/pull/803 + https://github.com/owncloud/cs3org/reva/pull/817 + https://github.com/owncloud/cs3org/reva/pull/805 + https://github.com/owncloud/cs3org/reva/pull/814 + https://github.com/owncloud/cs3org/reva/pull/816 + https://github.com/owncloud/cs3org/reva/pull/818 + https://github.com/owncloud/cs3org/reva/pull/819 + https://github.com/owncloud/cs3org/reva/pull/820 + https://github.com/owncloud/cs3org/reva/pull/823 + https://github.com/owncloud/cs3org/reva/pull/841 + https://github.com/owncloud/cs3org/reva/pull/813 + https://github.com/owncloud/cs3org/reva/pull/825 + https://github.com/owncloud/cs3org/reva/pull/826 + https://github.com/owncloud/cs3org/reva/pull/837 + https://github.com/owncloud/cs3org/reva/pull/843 + https://github.com/owncloud/cs3org/reva/pull/848 + https://github.com/owncloud/cs3org/reva/pull/842 + https://github.com/owncloud/cs3org/reva/pull/829 + https://github.com/owncloud/cs3org/reva/pull/831 + https://github.com/owncloud/cs3org/reva/pull/830 + https://github.com/owncloud/cs3org/reva/pull/836 + https://github.com/owncloud/cs3org/reva/pull/852 + https://github.com/owncloud/cs3org/reva/pull/850 + https://github.com/owncloud/cs3org/reva/pull/664 + https://github.com/owncloud/cs3org/reva/pull/853 + https://github.com/owncloud/cs3org/reva/pull/849 + https://github.com/owncloud/cs3org/reva/pull/863 + https://github.com/owncloud/cs3org/reva/pull/866 + https://github.com/owncloud/cs3org/reva/pull/867 + https://github.com/owncloud/cs3org/reva/pull/864 + # Changelog for [0.5.0] (2020-06-04) The following sections list the changes in ocis-reva 0.5.0. diff --git a/go.mod b/go.mod index 33d8900c7e..9007179ec9 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,6 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cespare/xxhash/v2 v2.1.1 // indirect github.com/cs3org/reva v0.1.1-0.20200624063447-db5e6635d5f0 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect @@ -11,7 +10,6 @@ require ( github.com/micro/cli/v2 v2.1.1 github.com/micro/go-micro v1.18.0 github.com/micro/go-micro/v2 v2.0.0 - github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect github.com/oklog/run v1.0.0 github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203 github.com/owncloud/ocis-pkg/v2 v2.2.1 From 89b5ba0ea831d55e6b184d97eb87d329750367bc Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 24 Jun 2020 11:51:09 +0000 Subject: [PATCH 131/346] Automated changelog update [skip ci] --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b48cf1c5c7..599ee3fc97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.6.0] (2020-06-24) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.6.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.5.0...master +[0.6.0]: https://github.com/owncloud/ocis-reva/compare/v0.5.0...v0.6.0 ## Summary From 3e03d09648331677847f78b8c9ff6bcb87ee8d18 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 24 Jun 2020 15:46:28 +0545 Subject: [PATCH 132/346] Bump core commit for API tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 62932d3492..e88d37cc79 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', 'e2b0a01a8807f549cbd1a42c7bd35f8cfc224ef7'), + apiTests(ctx, 'master', '31dbb9ce87de35165edf85ce9eda8f004c73f9f8'), ] stages = [ From 97c190e0aadc83205aba9c29a26fd1d8fedd81e7 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 10 Jun 2020 16:38:05 +0200 Subject: [PATCH 133/346] Make sure that the reva frontend url has an url scheme We have a lot of URLs in our flagset default values that don't have an url scheme. In order to be able to make those changes over time we introduced a helper function which appends "http://" as scheme. --- pkg/command/frontend.go | 13 ++++++++++++- pkg/command/gateway.go | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index 15789286ad..e3e6b54ad4 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -6,6 +6,7 @@ import ( "os" "os/signal" "path" + "strings" "time" "github.com/cs3org/reva/cmd/revad/runtime" @@ -132,7 +133,7 @@ func Frontend(cfg *config.Config) *cli.Command { "config": map[string]interface{}{ "version": "1.8", "website": "reva", - "host": "http://" + cfg.Reva.Frontend.URL, // TODO URLs should include the protocol + "host": urlWithScheme(cfg.Reva.Frontend.URL), "contact": "admin@localhost", "ssl": "false", }, @@ -290,3 +291,13 @@ func Frontend(cfg *config.Config) *cli.Command { }, } } + +// urlWithScheme checks if the given string is prefixed with "http". If it is not, "http://" will be added as prefix. +// As we can't tell if http or https should be the preferred scheme, the correct approach would be to fail on urls +// without scheme. As long as we have default urls in our flagsets which don't have a scheme, this is a feasible workaround. +func urlWithScheme(str string) string { + if !strings.HasPrefix(str, "http") { + str = "http://" + str + } + return str +} diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index d4802dd6c2..e8f6498815 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -108,7 +108,7 @@ func Gateway(cfg *config.Config) *cli.Command { "link_grants_file": cfg.Reva.Gateway.LinkGrants, // other "disable_home_creation_on_login": cfg.Reva.Gateway.DisableHomeCreationOnLogin, - "datagateway": cfg.Reva.Frontend.URL, + "datagateway": urlWithScheme(cfg.Reva.Frontend.URL), "transfer_shared_secret": cfg.Reva.TransferSecret, "transfer_expires": cfg.Reva.TransferExpires, }, From 775942387c1796453f7448b15651c14aed5cddaf Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 10 Jun 2020 16:47:43 +0200 Subject: [PATCH 134/346] Change default reva frontend url to point to ocis-proxy --- pkg/flagset/frontend.go | 2 +- pkg/flagset/gateway.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index e0484fbcec..b4117df7e4 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -136,7 +136,7 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "url", - Value: "localhost:9140", + Value: "https://localhost:9200", Usage: "URL to use for the reva service", EnvVars: []string{"REVA_FRONTEND_URL"}, Destination: &cfg.Reva.Frontend.URL, diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index 87101ffdc3..7a5c23ecc5 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -188,7 +188,7 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "frontend-url", - Value: "localhost:9140", + Value: "https://localhost:9200", Usage: "URL to use for the reva service", EnvVars: []string{"REVA_FRONTEND_URL"}, Destination: &cfg.Reva.Frontend.URL, From 62e260a6ab42eacc9e9fd2fc8ed59bb6f12c7c2a Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 10 Jun 2020 16:48:07 +0200 Subject: [PATCH 135/346] Change storages to not expose themselves by default. --- pkg/flagset/storageeos.go | 2 +- pkg/flagset/storagehome.go | 2 +- pkg/flagset/storageoc.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/flagset/storageeos.go b/pkg/flagset/storageeos.go index 450765bc5d..e30283254a 100644 --- a/pkg/flagset/storageeos.go +++ b/pkg/flagset/storageeos.go @@ -146,7 +146,7 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { }, &cli.BoolFlag{ Name: "expose-data-server", - Value: true, + Value: false, Usage: "exposes a dedicated data server", EnvVars: []string{"REVA_STORAGE_EOS_EXPOSE_DATA_SERVER"}, Destination: &cfg.Reva.StorageEOS.ExposeDataServer, diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index aa84c76084..4c5cc8d506 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -148,7 +148,7 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { }, &cli.BoolFlag{ Name: "expose-data-server", - Value: true, + Value: false, Usage: "exposes a dedicated data server", EnvVars: []string{"REVA_STORAGE_HOME_EXPOSE_DATA_SERVER"}, Destination: &cfg.Reva.StorageHome.ExposeDataServer, diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 5e45273e68..62d58bccbe 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -146,7 +146,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { }, &cli.BoolFlag{ Name: "expose-data-server", - Value: true, + Value: false, Usage: "exposes a dedicated data server", EnvVars: []string{"REVA_STORAGE_OC_EXPOSE_DATA_SERVER"}, Destination: &cfg.Reva.StorageOC.ExposeDataServer, From 5ecd9f4889d019a718f49e11ac41913479f78f4d Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 10 Jun 2020 16:49:08 +0200 Subject: [PATCH 136/346] Update versions --- go.sum | 3 +++ 1 file changed, 3 insertions(+) diff --git a/go.sum b/go.sum index 42b5352824..91f5036ab5 100644 --- a/go.sum +++ b/go.sum @@ -83,6 +83,7 @@ github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpi github.com/aws/aws-sdk-go v1.31.1 h1:5tv3VtTS/IM1yZ6lxMQQVmH28SkkR3b3w+6u+9rcLx4= github.com/aws/aws-sdk-go v1.31.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.31.7 h1:TCA+pXKvzDMA3vVqhK21cCy5GarC8pTQb/DrVOWI3iY= github.com/aws/aws-sdk-go v1.31.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.3/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.5/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= @@ -649,6 +650,7 @@ github.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.3.0 h1:iDwIio/3gk2QtLLEsqU5lInaMzos0hDTz8a6lazSFVw= github.com/mitchellh/mapstructure v1.3.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.1 h1:cCBH2gTD2K0OtLlv/Y5H01VQCqmlDxz30kS5Y5bqfLA= github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= @@ -711,6 +713,7 @@ github.com/ory/fosite v0.29.0/go.mod h1:0atSZmXO7CAcs6NPMI/Qtot8tmZYj04Nddoold4S github.com/ory/fosite v0.31.0/go.mod h1:lSSqjo8Kr/U1P3kJWxsNGHmq7TnH/7pS1ijvQRT7G+g= github.com/ory/fosite v0.31.3 h1:5WjLwfs+yUALZjzKUKGN/M+ddBJ5Ol6NawxuCO2TuAg= github.com/ory/fosite v0.31.3/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= +github.com/ory/fosite v0.32.0 h1:g89HkBt0dgm+HPrbsYZTmyks1NIw0BH/UlEaw84e1ss= github.com/ory/fosite v0.32.0/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= github.com/ory/fosite v0.32.1/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= github.com/ory/fosite v0.32.2/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= From bd85e0bb8de5a7cd04ac97cf446dd3ecccfbc0f0 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 24 Jun 2020 15:50:36 +0200 Subject: [PATCH 137/346] Add new config var for the data gateway url --- pkg/command/gateway.go | 2 +- pkg/config/config.go | 3 ++- pkg/flagset/gateway.go | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index e8f6498815..08d8201dea 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -108,7 +108,7 @@ func Gateway(cfg *config.Config) *cli.Command { "link_grants_file": cfg.Reva.Gateway.LinkGrants, // other "disable_home_creation_on_login": cfg.Reva.Gateway.DisableHomeCreationOnLogin, - "datagateway": urlWithScheme(cfg.Reva.Frontend.URL), + "datagateway": urlWithScheme(cfg.Reva.DataGateway.URL), "transfer_shared_secret": cfg.Reva.TransferSecret, "transfer_expires": cfg.Reva.TransferExpires, }, diff --git a/pkg/config/config.go b/pkg/config/config.go index 66ac115d9b..942b48b767 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -229,8 +229,9 @@ type Reva struct { LDAP LDAP OCDav OCDav Storages StorageConfig - // Ports are used configure which services to start on which port + // Ports are used to configure which services to start on which port Frontend Port + DataGateway Port Gateway Gateway Users Users AuthBasic Port diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index 7a5c23ecc5..73b59be376 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -193,6 +193,13 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_FRONTEND_URL"}, Destination: &cfg.Reva.Frontend.URL, }, + &cli.StringFlag{ + Name: "datagateway-url", + Value: "https://localhost:9200/data", + Usage: "URL to use for the reva datagateway", + EnvVars: []string{"REVA_DATAGATEWAY_URL"}, + Destination: &cfg.Reva.DataGateway.URL, + }, &cli.StringFlag{ Name: "users-url", Value: "localhost:9144", From c1f74450b6192227ae543c8d4f9ca070b14f6bfb Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 24 Jun 2020 22:29:11 +0200 Subject: [PATCH 138/346] Update configuration docs (generated with flaex) --- docs/configuration.md | 1765 +++++++++++++++++++++-------------------- 1 file changed, 884 insertions(+), 881 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index cf2d29eb25..f2523ec63f 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,6 +1,6 @@ --- title: "Configuration" -date: "2020-06-05T14:07:06+0200" +date: "2020-06-24T22:26:40+0200" weight: 20 geekdocRepo: https://github.com/owncloud/ocis-reva geekdocEditPath: edit/master/docs @@ -57,11 +57,11 @@ Usage: `ocis-reva [global options] command [command options] [arguments...]` ## Sub Commands -### ocis-reva sharing +### ocis-reva users -Start reva sharing service +Start reva users service -Usage: `ocis-reva sharing [command options] [arguments...]` +Usage: `ocis-reva users [command options] [arguments...]` --tracing-enabled | $REVA_TRACING_ENABLED : Enable sending traces. @@ -79,7 +79,7 @@ Usage: `ocis-reva sharing [command options] [arguments...]` : Service name for tracing. Default: `reva`. --debug-addr | $REVA_SHARING_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9151`. +: Address to bind debug server. Default: `0.0.0.0:9145`. --debug-token | $REVA_DEBUG_TOKEN : Token to grant metrics access. @@ -93,32 +93,62 @@ Usage: `ocis-reva sharing [command options] [arguments...]` --jwt-secret | $REVA_JWT_SECRET : Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. ---network | $REVA_SHARING_NETWORK +--ldap-hostname | $REVA_LDAP_HOSTNAME +: LDAP hostname. Default: `localhost`. + +--ldap-base-dn | $REVA_LDAP_BASE_DN +: LDAP basedn. Default: `dc=example,dc=org`. + +--ldap-userfilter | $REVA_LDAP_USERFILTER +: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s*))`. + +--ldap-groupfilter | $REVA_LDAP_GROUPFILTER +: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s*))`. + +--ldap-bind-dn | $REVA_LDAP_BIND_DN +: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. + +--ldap-bind-password | $REVA_LDAP_BIND_PASSWORD +: LDAP bind password. Default: `reva`. + +--ldap-idp | $REVA_LDAP_IDP +: Identity provider to use for users. Default: `https://localhost:9200`. + +--ldap-schema-uid | $REVA_LDAP_SCHEMA_UID +: LDAP schema uid. Default: `uid`. + +--ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL +: LDAP schema mail. Default: `mail`. + +--ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME +: LDAP schema displayName. Default: `sn`. + +--ldap-schema-cn | $REVA_LDAP_SCHEMA_CN +: LDAP schema cn. Default: `cn`. + +--network | $REVA_USERS_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---protocol | $REVA_SHARING_PROTOCOL +--protocol | $REVA_USERS_PROTOCOL : protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. ---addr | $REVA_SHARING_ADDR -: Address to bind reva service. Default: `0.0.0.0:9150`. +--addr | $REVA_USERS_ADDR +: Address to bind reva service. Default: `0.0.0.0:9144`. ---url | $REVA_SHARING_URL -: URL to use for the reva service. Default: `localhost:9150`. +--url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. ---user-driver | $REVA_SHARING_USER_DRIVER -: driver to use for the UserShareProvider. Default: `json`. +--driver | $REVA_USERS_DRIVER +: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. ---user-json-file | $REVA_SHARING_USER_JSON_FILE -: file used to persist shares for the UserShareProvider. Default: `/var/tmp/reva/shares.json`. +--json-config | $REVA_USERS_JSON +: Path to users.json file. ---public-driver | $REVA_SHARING_PUBLIC_DRIVER -: driver to use for the PublicShareProvider. Default: `json`. +### ocis-reva auth-basic -### ocis-reva storage-oc +Start reva authprovider for basic auth -Start reva storage-oc service - -Usage: `ocis-reva storage-oc [command options] [arguments...]` +Usage: `ocis-reva auth-basic [command options] [arguments...]` --tracing-enabled | $REVA_TRACING_ENABLED : Enable sending traces. @@ -135,8 +165,8 @@ Usage: `ocis-reva storage-oc [command options] [arguments...]` --tracing-service | $REVA_TRACING_SERVICE : Service name for tracing. Default: `reva`. ---debug-addr | $REVA_STORAGE_OC_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9163`. +--debug-addr | $REVA_AUTH_BASIC_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9147`. --debug-token | $REVA_DEBUG_TOKEN : Token to grant metrics access. @@ -150,104 +180,56 @@ Usage: `ocis-reva storage-oc [command options] [arguments...]` --jwt-secret | $REVA_JWT_SECRET : Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. ---network | $REVA_STORAGE_OC_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. +--users-driver | $REVA_USERS_DRIVER +: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. ---protocol | $REVA_STORAGE_OC_PROTOCOL +--users-json | $REVA_USERS_JSON +: Path to users.json file. + +--ldap-hostname | $REVA_LDAP_HOSTNAME +: LDAP hostname. Default: `localhost`. + +--ldap-base-dn | $REVA_LDAP_BASE_DN +: LDAP basedn. Default: `dc=example,dc=org`. + +--ldap-userfilter | $REVA_LDAP_USERFILTER +: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s))`. + +--ldap-groupfilter | $REVA_LDAP_GROUPFILTER +: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s))`. + +--ldap-bind-dn | $REVA_LDAP_BIND_DN +: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. + +--ldap-bind-password | $REVA_LDAP_BIND_PASSWORD +: LDAP bind password. Default: `reva`. + +--ldap-idp | $REVA_LDAP_IDP +: Identity provider to use for users. Default: `https://localhost:9200`. + +--ldap-schema-uid | $REVA_LDAP_SCHEMA_UID +: LDAP schema uid. Default: `uid`. + +--ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL +: LDAP schema mail. Default: `mail`. + +--ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME +: LDAP schema displayName. Default: `sn`. + +--ldap-schema-cn | $REVA_LDAP_SCHEMA_CN +: LDAP schema cn. Default: `cn`. + +--network | $REVA_AUTH_BASIC_NETWORK +: Network to use for the reva auth-basic service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_AUTH_BASIC_PROTOCOL : protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. ---addr | $REVA_STORAGE_OC_ADDR -: Address to bind reva service. Default: `0.0.0.0:9162`. +--addr | $REVA_AUTH_BASIC_ADDR +: Address to bind reva service. Default: `0.0.0.0:9146`. ---url | $REVA_STORAGE_OC_URL -: URL to use for the reva service. Default: `localhost:9162`. - ---driver | $REVA_STORAGE_OC_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. - ---mount-path | $REVA_STORAGE_OC_MOUNT_PATH -: mount path. Default: `/oc`. - ---mount-id | $REVA_STORAGE_OC_MOUNT_ID -: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. - ---expose-data-server | $REVA_STORAGE_OC_EXPOSE_DATA_SERVER -: exposes a dedicated data server. Default: `true`. - ---data-server-url | $REVA_STORAGE_OC_DATA_SERVER_URL -: data server url. Default: `http://localhost:9164/data`. - ---enable-home-creation | $REVA_STORAGE_OC_ENABLE_HOME_CREATION -: if enabled home dirs will be automatically created. Default: `false`. - ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. - ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. - ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. - ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. - ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. - ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-example.org`. - ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-example.org`. - ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. - ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. - ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. - ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. - ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. - ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. - ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. - ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. - ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. - ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. - ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. - ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. - ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. - ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. - ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `false`. - ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. +--url | $REVA_AUTH_BASIC_URL +: URL to use for the reva service. Default: `localhost:9146`. ### ocis-reva storage-oc-data @@ -378,6 +360,72 @@ Usage: `ocis-reva storage-oc-data [command options] [arguments...]` --gateway-url | $REVA_GATEWAY_URL : URL to use for the reva gateway service. Default: `localhost:9142`. +### ocis-reva frontend + +Start reva frontend service + +Usage: `ocis-reva frontend [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_FRONTEND_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9141`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--transfer-secret | $REVA_TRANSFER_SECRET +: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. + +--webdav-namespace | $WEBDAV_NAMESPACE +: Namespace prefix for the /webdav endpoint. Default: `/home/`. + +--dav-files-namespace | $DAV_FILES_NAMESPACE +: Namespace prefix for the webdav /dav/files endpoint. Default: `/oc/`. + +--network | $REVA_FRONTEND_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_FRONTEND_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. + +--addr | $REVA_FRONTEND_ADDR +: Address to bind reva service. Default: `0.0.0.0:9140`. + +--url | $REVA_FRONTEND_URL +: URL to use for the reva service. Default: `https://localhost:9200`. + +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. + +--upload-disable-tus | $REVA_FRONTEND_UPLOAD_DISABLE_TUS +: Disables TUS upload mechanism. Default: `false`. + +--upload-http-method-override | $REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE +: Specify an HTTP method (ex: POST) that clients should to use when uploading instead of PATCH. + ### ocis-reva storage-root Start reva storage-root service @@ -507,414 +555,6 @@ Usage: `ocis-reva storage-root [command options] [arguments...]` --storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT : `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. -### ocis-reva health - -Check health status - -Usage: `ocis-reva health [command options] [arguments...]` - ---debug-addr | $REVA_DEBUG_ADDR -: Address to debug endpoint. Default: `0.0.0.0:9109`. - -### ocis-reva storage-eos - -Start reva storage-eos service - -Usage: `ocis-reva storage-eos [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_STORAGE_EOS_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9159`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---network | $REVA_STORAGE_EOS_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_STORAGE_EOS_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_STORAGE_EOS_ADDR -: Address to bind reva service. Default: `0.0.0.0:9158`. - ---url | $REVA_STORAGE_EOS_URL -: URL to use for the reva service. Default: `localhost:9158`. - ---driver | $REVA_STORAGE_EOS_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. - ---mount-path | $REVA_STORAGE_EOS_MOUNT_PATH -: mount path. Default: `/eos`. - ---mount-id | $REVA_STORAGE_EOS_MOUNT_ID -: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009158`. - ---expose-data-server | $REVA_STORAGE_EOS_EXPOSE_DATA_SERVER -: exposes a dedicated data server. Default: `true`. - ---data-server-url | $REVA_STORAGE_EOS_DATA_SERVER_URL -: data server url. Default: `http://localhost:9160/data`. - ---enable-home-creation | $REVA_STORAGE_EOS_ENABLE_HOME_CREATION -: if enabled home dirs will be automatically created. Default: `false`. - ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. Default: `/eos/dockertest/reva`. - ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. - ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. Default: `/Shares`. - ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. - ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. - ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. - ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. - ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. - ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. - ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. - ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. - ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. - ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. - ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. - ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. - ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. - ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. - ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. - ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. - ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `false`. - ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. - -### ocis-reva storage-eos-data - -Start reva storage-eos-data service - -Usage: `ocis-reva storage-eos-data [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9161`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---network | $REVA_STORAGE_EOS_DATA_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_STORAGE_EOS_DATA_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. - ---addr | $REVA_STORAGE_EOS_DATA_ADDR -: Address to bind reva service. Default: `0.0.0.0:9160`. - ---url | $REVA_STORAGE_EOS_DATA_URL -: URL to use for the reva service. Default: `localhost:9160`. - ---driver | $REVA_STORAGE_EOS_DATA_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. - ---prefix | $REVA_STORAGE_EOS_DATA_PREFIX -: prefix for the http endpoint, without leading slash. Default: `data`. - ---temp-folder | $REVA_STORAGE_EOS_DATA_TEMP_FOLDER -: temp folder. Default: `/var/tmp/`. - ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. Default: `/eos/dockertest/reva`. - ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. - ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. Default: `/Shares`. - ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. - ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. - ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. - ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. - ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. - ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. - ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. - ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. - ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. - ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. - ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. - ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. - ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. - ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. - ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. - ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. - ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `false`. - ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. - ---gateway-url | $REVA_GATEWAY_URL -: URL to use for the reva gateway service. Default: `localhost:9142`. - -### ocis-reva storage-home - -Start reva storage-home service - -Usage: `ocis-reva storage-home [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_STORAGE_HOME_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9155`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---network | $REVA_STORAGE_HOME_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_STORAGE_HOME_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_STORAGE_HOME_ADDR -: Address to bind reva service. Default: `0.0.0.0:9154`. - ---url | $REVA_STORAGE_HOME_URL -: URL to use for the reva service. Default: `localhost:9154`. - ---driver | $REVA_STORAGE_HOME_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. - ---mount-path | $REVA_STORAGE_HOME_MOUNT_PATH -: mount path. Default: `/home`. - ---mount-id | $REVA_STORAGE_HOME_MOUNT_ID -: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. - ---expose-data-server | $REVA_STORAGE_HOME_EXPOSE_DATA_SERVER -: exposes a dedicated data server. Default: `true`. - ---data-server-url | $REVA_STORAGE_HOME_DATA_SERVER_URL -: data server url. Default: `http://localhost:9156/data`. - ---enable-home-creation | $REVA_STORAGE_HOME_ENABLE_HOME_CREATION -: if enabled home dirs will be automatically created. Default: `true`. - ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. Default: `/eos/dockertest/reva/users`. - ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. - ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. Default: `/Shares`. - ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. - ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. - ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. - ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. - ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. - ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. - ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. - ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. Default: `true`. - ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. - ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. - ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. - ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. - ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. - ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. - ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. - ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. - ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `true`. - ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. - ### ocis-reva reva-storage-public-link Start reva storage-public-link service @@ -990,365 +630,14 @@ Usage: `ocis-reva reva-storage-public-link [command options] [arguments...]` --gateway-url | $REVA_GATEWAY_URL : URL to use for the reva gateway service. Default: `localhost:9142`. -### ocis-reva users +### ocis-reva health -Start reva users service +Check health status -Usage: `ocis-reva users [command options] [arguments...]` +Usage: `ocis-reva health [command options] [arguments...]` ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_SHARING_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9145`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---ldap-hostname | $REVA_LDAP_HOSTNAME -: LDAP hostname. Default: `localhost`. - ---ldap-base-dn | $REVA_LDAP_BASE_DN -: LDAP basedn. Default: `dc=example,dc=org`. - ---ldap-userfilter | $REVA_LDAP_USERFILTER -: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s*))`. - ---ldap-groupfilter | $REVA_LDAP_GROUPFILTER -: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s*))`. - ---ldap-bind-dn | $REVA_LDAP_BIND_DN -: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. - ---ldap-bind-password | $REVA_LDAP_BIND_PASSWORD -: LDAP bind password. Default: `reva`. - ---ldap-idp | $REVA_LDAP_IDP -: Identity provider to use for users. Default: `https://localhost:9200`. - ---ldap-schema-uid | $REVA_LDAP_SCHEMA_UID -: LDAP schema uid. Default: `uid`. - ---ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL -: LDAP schema mail. Default: `mail`. - ---ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME -: LDAP schema displayName. Default: `sn`. - ---ldap-schema-cn | $REVA_LDAP_SCHEMA_CN -: LDAP schema cn. Default: `cn`. - ---network | $REVA_USERS_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_USERS_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_USERS_ADDR -: Address to bind reva service. Default: `0.0.0.0:9144`. - ---url | $REVA_USERS_URL -: URL to use for the reva service. Default: `localhost:9144`. - ---driver | $REVA_USERS_DRIVER -: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. - ---json-config | $REVA_USERS_JSON -: Path to users.json file. - -### ocis-reva gateway - -Start reva gateway - -Usage: `ocis-reva gateway [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_GATEWAY_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9143`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---transfer-secret | $REVA_TRANSFER_SECRET -: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. - ---network | $REVA_GATEWAY_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_GATEWAY_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_GATEWAY_ADDR -: Address to bind reva service. Default: `0.0.0.0:9142`. - ---url | $REVA_GATEWAY_URL -: URL to use for the reva service. Default: `localhost:9142`. - ---commit-share-to-storage-grant | $REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_GRANT -: Commit shares to the share manager. Default: `true`. - ---commit-share-to-storage-ref | $REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_REF -: Commit shares to the storage. Default: `true`. - ---share-folder | $REVA_GATEWAY_SHARE_FOLDER -: mount shares in this folder of the home storage provider. Default: `Shares`. - ---link_grants_file | $REVA_GATEWAY_LINK_GRANTS_FILE -: when using a json manager, file to use as json serialized database. Default: `/var/tmp/reva/link_grants.json`. - ---disable-home-creation-on-login | $REVA_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN -: Disable creation of home folder on login. - ---storage-home-provider | $REVA_STORAGE_HOME_PROVIDER -: mount point of the storage provider for user homes in the global namespace. Default: `/home`. - ---frontend-url | $REVA_FRONTEND_URL -: URL to use for the reva service. Default: `localhost:9140`. - ---users-url | $REVA_USERS_URL -: URL to use for the reva service. Default: `localhost:9144`. - ---auth-basic-url | $REVA_AUTH_BASIC_URL -: URL to use for the reva service. Default: `localhost:9146`. - ---auth-bearer-url | $REVA_AUTH_BEARER_URL -: URL to use for the reva service. Default: `localhost:9148`. - ---sharing-url | $REVA_SHARING_URL -: URL to use for the reva service. Default: `localhost:9150`. - ---storage-root-url | $REVA_STORAGE_ROOT_URL -: URL to use for the reva service. Default: `localhost:9152`. - ---storage-root-mount-path | $REVA_STORAGE_ROOT_MOUNT_PATH -: mount path. Default: `/`. - ---storage-root-mount-id | $REVA_STORAGE_ROOT_MOUNT_ID -: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009152`. - ---storage-home-url | $REVA_STORAGE_HOME_URL -: URL to use for the reva service. Default: `localhost:9154`. - ---storage-home-mount-path | $REVA_STORAGE_HOME_MOUNT_PATH -: mount path. Default: `/home`. - ---storage-eos-url | $REVA_STORAGE_EOS_URL -: URL to use for the reva service. Default: `localhost:9158`. - ---storage-eos-mount-path | $REVA_STORAGE_EOS_MOUNT_PATH -: mount path. Default: `/eos`. - ---storage-eos-mount-id | $REVA_STORAGE_EOS_MOUNT_ID -: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009158`. - ---storage-oc-url | $REVA_STORAGE_OC_URL -: URL to use for the reva service. Default: `localhost:9162`. - ---storage-oc-mount-path | $REVA_STORAGE_OC_MOUNT_PATH -: mount path. Default: `/oc`. - ---storage-oc-mount-id | $REVA_STORAGE_OC_MOUNT_ID -: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. - ---public-links-url | $REVA_STORAGE_PUBLIC_LINK_URL -: URL to use for the public links service. Default: `localhost:10054`. - -### ocis-reva frontend - -Start reva frontend service - -Usage: `ocis-reva frontend [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_FRONTEND_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9141`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---transfer-secret | $REVA_TRANSFER_SECRET -: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. - ---webdav-namespace | $WEBDAV_NAMESPACE -: Namespace prefix for the /webdav endpoint. Default: `/home/`. - ---dav-files-namespace | $DAV_FILES_NAMESPACE -: Namespace prefix for the webdav /dav/files endpoint. Default: `/oc/`. - ---network | $REVA_FRONTEND_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_FRONTEND_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. - ---addr | $REVA_FRONTEND_ADDR -: Address to bind reva service. Default: `0.0.0.0:9140`. - ---url | $REVA_FRONTEND_URL -: URL to use for the reva service. Default: `localhost:9140`. - ---gateway-url | $REVA_GATEWAY_URL -: URL to use for the reva gateway service. Default: `localhost:9142`. - ---upload-disable-tus | $REVA_FRONTEND_UPLOAD_DISABLE_TUS -: Disables TUS upload mechanism. Default: `false`. - ---upload-http-method-override | $REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE -: Specify an HTTP method (ex: POST) that clients should to use when uploading instead of PATCH. - -### ocis-reva auth-basic - -Start reva authprovider for basic auth - -Usage: `ocis-reva auth-basic [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_AUTH_BASIC_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9147`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---users-driver | $REVA_USERS_DRIVER -: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. - ---users-json | $REVA_USERS_JSON -: Path to users.json file. - ---ldap-hostname | $REVA_LDAP_HOSTNAME -: LDAP hostname. Default: `localhost`. - ---ldap-base-dn | $REVA_LDAP_BASE_DN -: LDAP basedn. Default: `dc=example,dc=org`. - ---ldap-userfilter | $REVA_LDAP_USERFILTER -: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s))`. - ---ldap-groupfilter | $REVA_LDAP_GROUPFILTER -: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s))`. - ---ldap-bind-dn | $REVA_LDAP_BIND_DN -: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. - ---ldap-bind-password | $REVA_LDAP_BIND_PASSWORD -: LDAP bind password. Default: `reva`. - ---ldap-idp | $REVA_LDAP_IDP -: Identity provider to use for users. Default: `https://localhost:9200`. - ---ldap-schema-uid | $REVA_LDAP_SCHEMA_UID -: LDAP schema uid. Default: `uid`. - ---ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL -: LDAP schema mail. Default: `mail`. - ---ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME -: LDAP schema displayName. Default: `sn`. - ---ldap-schema-cn | $REVA_LDAP_SCHEMA_CN -: LDAP schema cn. Default: `cn`. - ---network | $REVA_AUTH_BASIC_NETWORK -: Network to use for the reva auth-basic service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_AUTH_BASIC_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_AUTH_BASIC_ADDR -: Address to bind reva service. Default: `0.0.0.0:9146`. - ---url | $REVA_AUTH_BASIC_URL -: URL to use for the reva service. Default: `localhost:9146`. +--debug-addr | $REVA_DEBUG_ADDR +: Address to debug endpoint. Default: `0.0.0.0:9109`. ### ocis-reva auth-bearer @@ -1536,3 +825,717 @@ Usage: `ocis-reva storage-home-data [command options] [arguments...]` --gateway-url | $REVA_GATEWAY_URL : URL to use for the reva gateway service. Default: `localhost:9142`. +### ocis-reva gateway + +Start reva gateway + +Usage: `ocis-reva gateway [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_GATEWAY_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9143`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--transfer-secret | $REVA_TRANSFER_SECRET +: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. + +--network | $REVA_GATEWAY_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_GATEWAY_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_GATEWAY_ADDR +: Address to bind reva service. Default: `0.0.0.0:9142`. + +--url | $REVA_GATEWAY_URL +: URL to use for the reva service. Default: `localhost:9142`. + +--commit-share-to-storage-grant | $REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_GRANT +: Commit shares to the share manager. Default: `true`. + +--commit-share-to-storage-ref | $REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_REF +: Commit shares to the storage. Default: `true`. + +--share-folder | $REVA_GATEWAY_SHARE_FOLDER +: mount shares in this folder of the home storage provider. Default: `Shares`. + +--link_grants_file | $REVA_GATEWAY_LINK_GRANTS_FILE +: when using a json manager, file to use as json serialized database. Default: `/var/tmp/reva/link_grants.json`. + +--disable-home-creation-on-login | $REVA_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN +: Disable creation of home folder on login. + +--storage-home-provider | $REVA_STORAGE_HOME_PROVIDER +: mount point of the storage provider for user homes in the global namespace. Default: `/home`. + +--frontend-url | $REVA_FRONTEND_URL +: URL to use for the reva service. Default: `https://localhost:9200`. + +--datagateway-url | $REVA_DATAGATEWAY_URL +: URL to use for the reva datagateway. Default: `https://localhost:9200/data`. + +--users-url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. + +--auth-basic-url | $REVA_AUTH_BASIC_URL +: URL to use for the reva service. Default: `localhost:9146`. + +--auth-bearer-url | $REVA_AUTH_BEARER_URL +: URL to use for the reva service. Default: `localhost:9148`. + +--sharing-url | $REVA_SHARING_URL +: URL to use for the reva service. Default: `localhost:9150`. + +--storage-root-url | $REVA_STORAGE_ROOT_URL +: URL to use for the reva service. Default: `localhost:9152`. + +--storage-root-mount-path | $REVA_STORAGE_ROOT_MOUNT_PATH +: mount path. Default: `/`. + +--storage-root-mount-id | $REVA_STORAGE_ROOT_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009152`. + +--storage-home-url | $REVA_STORAGE_HOME_URL +: URL to use for the reva service. Default: `localhost:9154`. + +--storage-home-mount-path | $REVA_STORAGE_HOME_MOUNT_PATH +: mount path. Default: `/home`. + +--storage-eos-url | $REVA_STORAGE_EOS_URL +: URL to use for the reva service. Default: `localhost:9158`. + +--storage-eos-mount-path | $REVA_STORAGE_EOS_MOUNT_PATH +: mount path. Default: `/eos`. + +--storage-eos-mount-id | $REVA_STORAGE_EOS_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009158`. + +--storage-oc-url | $REVA_STORAGE_OC_URL +: URL to use for the reva service. Default: `localhost:9162`. + +--storage-oc-mount-path | $REVA_STORAGE_OC_MOUNT_PATH +: mount path. Default: `/oc`. + +--storage-oc-mount-id | $REVA_STORAGE_OC_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. + +--public-links-url | $REVA_STORAGE_PUBLIC_LINK_URL +: URL to use for the public links service. Default: `localhost:10054`. + +### ocis-reva storage-home + +Start reva storage-home service + +Usage: `ocis-reva storage-home [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_HOME_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9155`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_HOME_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_HOME_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_STORAGE_HOME_ADDR +: Address to bind reva service. Default: `0.0.0.0:9154`. + +--url | $REVA_STORAGE_HOME_URL +: URL to use for the reva service. Default: `localhost:9154`. + +--driver | $REVA_STORAGE_HOME_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. + +--mount-path | $REVA_STORAGE_HOME_MOUNT_PATH +: mount path. Default: `/home`. + +--mount-id | $REVA_STORAGE_HOME_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. + +--expose-data-server | $REVA_STORAGE_HOME_EXPOSE_DATA_SERVER +: exposes a dedicated data server. Default: `false`. + +--data-server-url | $REVA_STORAGE_HOME_DATA_SERVER_URL +: data server url. Default: `http://localhost:9156/data`. + +--enable-home-creation | $REVA_STORAGE_HOME_ENABLE_HOME_CREATION +: if enabled home dirs will be automatically created. Default: `true`. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. Default: `/eos/dockertest/reva/users`. + +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. + +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. Default: `/Shares`. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. Default: `true`. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `true`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. + +### ocis-reva storage-eos-data + +Start reva storage-eos-data service + +Usage: `ocis-reva storage-eos-data [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9161`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_EOS_DATA_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_EOS_DATA_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. + +--addr | $REVA_STORAGE_EOS_DATA_ADDR +: Address to bind reva service. Default: `0.0.0.0:9160`. + +--url | $REVA_STORAGE_EOS_DATA_URL +: URL to use for the reva service. Default: `localhost:9160`. + +--driver | $REVA_STORAGE_EOS_DATA_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. + +--prefix | $REVA_STORAGE_EOS_DATA_PREFIX +: prefix for the http endpoint, without leading slash. Default: `data`. + +--temp-folder | $REVA_STORAGE_EOS_DATA_TEMP_FOLDER +: temp folder. Default: `/var/tmp/`. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. Default: `/eos/dockertest/reva`. + +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. + +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. Default: `/Shares`. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `false`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. + +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. + +### ocis-reva sharing + +Start reva sharing service + +Usage: `ocis-reva sharing [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_SHARING_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9151`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_SHARING_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_SHARING_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_SHARING_ADDR +: Address to bind reva service. Default: `0.0.0.0:9150`. + +--url | $REVA_SHARING_URL +: URL to use for the reva service. Default: `localhost:9150`. + +--user-driver | $REVA_SHARING_USER_DRIVER +: driver to use for the UserShareProvider. Default: `json`. + +--user-json-file | $REVA_SHARING_USER_JSON_FILE +: file used to persist shares for the UserShareProvider. Default: `/var/tmp/reva/shares.json`. + +--public-driver | $REVA_SHARING_PUBLIC_DRIVER +: driver to use for the PublicShareProvider. Default: `json`. + +### ocis-reva storage-eos + +Start reva storage-eos service + +Usage: `ocis-reva storage-eos [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_EOS_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9159`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_EOS_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_EOS_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_STORAGE_EOS_ADDR +: Address to bind reva service. Default: `0.0.0.0:9158`. + +--url | $REVA_STORAGE_EOS_URL +: URL to use for the reva service. Default: `localhost:9158`. + +--driver | $REVA_STORAGE_EOS_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. + +--mount-path | $REVA_STORAGE_EOS_MOUNT_PATH +: mount path. Default: `/eos`. + +--mount-id | $REVA_STORAGE_EOS_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009158`. + +--expose-data-server | $REVA_STORAGE_EOS_EXPOSE_DATA_SERVER +: exposes a dedicated data server. Default: `false`. + +--data-server-url | $REVA_STORAGE_EOS_DATA_SERVER_URL +: data server url. Default: `http://localhost:9160/data`. + +--enable-home-creation | $REVA_STORAGE_EOS_ENABLE_HOME_CREATION +: if enabled home dirs will be automatically created. Default: `false`. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. Default: `/eos/dockertest/reva`. + +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. + +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. Default: `/Shares`. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `false`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. + +### ocis-reva storage-oc + +Start reva storage-oc service + +Usage: `ocis-reva storage-oc [command options] [arguments...]` + +--tracing-enabled | $REVA_TRACING_ENABLED +: Enable sending traces. + +--tracing-type | $REVA_TRACING_TYPE +: Tracing backend type. Default: `jaeger`. + +--tracing-endpoint | $REVA_TRACING_ENDPOINT +: Endpoint for the agent. + +--tracing-collector | $REVA_TRACING_COLLECTOR +: Endpoint for the collector. + +--tracing-service | $REVA_TRACING_SERVICE +: Service name for tracing. Default: `reva`. + +--debug-addr | $REVA_STORAGE_OC_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9163`. + +--debug-token | $REVA_DEBUG_TOKEN +: Token to grant metrics access. + +--debug-pprof | $REVA_DEBUG_PPROF +: Enable pprof debugging. + +--debug-zpages | $REVA_DEBUG_ZPAGES +: Enable zpages debugging. + +--jwt-secret | $REVA_JWT_SECRET +: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. + +--network | $REVA_STORAGE_OC_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_OC_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_STORAGE_OC_ADDR +: Address to bind reva service. Default: `0.0.0.0:9162`. + +--url | $REVA_STORAGE_OC_URL +: URL to use for the reva service. Default: `localhost:9162`. + +--driver | $REVA_STORAGE_OC_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. + +--mount-path | $REVA_STORAGE_OC_MOUNT_PATH +: mount path. Default: `/oc`. + +--mount-id | $REVA_STORAGE_OC_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. + +--expose-data-server | $REVA_STORAGE_OC_EXPOSE_DATA_SERVER +: exposes a dedicated data server. Default: `false`. + +--data-server-url | $REVA_STORAGE_OC_DATA_SERVER_URL +: data server url. Default: `http://localhost:9164/data`. + +--enable-home-creation | $REVA_STORAGE_OC_ENABLE_HOME_CREATION +: if enabled home dirs will be automatically created. Default: `false`. + +--storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE +: Namespace for metadata operations. + +--storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE +: Shadow namespace where share references are stored. + +--storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER +: name of the share folder. + +--storage-eos-binary | $REVA_STORAGE_EOS_BINARY +: Location of the eos binary. Default: `/usr/bin/eos`. + +--storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY +: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. + +--storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL +: URL of the Master EOS MGM. Default: `root://eos-example.org`. + +--storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL +: URL of the Slave EOS MGM. Default: `root://eos-example.org`. + +--storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY +: Location on the local fs where to store reads. Default: `os.TempDir()`. + +--storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING +: Enables logging of the commands executed. + +--storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES +: show internal EOS files like .sys.v# and .sys.a# files.. + +--storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE +: force connections to EOS to use SingleUsername. + +--storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB +: authenticate requests by using an EOS keytab. + +--storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +: enable the creation of home directories. + +--storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL +: the xrootd security protocol to use between the server and EOS. + +--storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB +: the location of the keytab to use to authenticate to EOS. + +--storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME +: the username to use when SingleUserMode is enabled. + +--storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. + +--storage-local-root | $REVA_STORAGE_LOCAL_ROOT +: the path to the local storage root. Default: `/var/tmp/reva/root`. + +--storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR +: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. + +--storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN +: scan files on startup to add fileids. Default: `true`. + +--storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR +: the address of the redis server. Default: `:6379`. + +--storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME +: enable the creation of home storages. Default: `false`. + +--storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT +: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. + From f8d5eb62fb13eafa6aa905cc61950ec869d4c892 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Thu, 25 Jun 2020 11:48:36 +0200 Subject: [PATCH 139/346] Disable exposing data server for public links storage by default --- pkg/flagset/storagepubliclink.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/flagset/storagepubliclink.go b/pkg/flagset/storagepubliclink.go index 27837cc7dc..a665d959f7 100644 --- a/pkg/flagset/storagepubliclink.go +++ b/pkg/flagset/storagepubliclink.go @@ -140,7 +140,7 @@ func StoragePublicLink(cfg *config.Config) []cli.Flag { }, &cli.BoolFlag{ Name: "expose-data-server", - Value: true, + Value: false, Usage: "exposes a dedicated data server", EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_EXPOSE_DATA_SERVER"}, Destination: &cfg.Reva.StoragePublicLink.ExposeDataServer, From 4b8b431c8c9aa6d5b25bd81d1f45472d5030d190 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 25 Jun 2020 13:45:21 +0200 Subject: [PATCH 140/346] Update to reva v0.1.1-0.20200625112940-6a2822cb3f15 --- go.mod | 2 +- go.sum | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 9007179ec9..9668da5919 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200624063447-db5e6635d5f0 + github.com/cs3org/reva v0.1.1-0.20200625112940-6a2822cb3f15 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 91f5036ab5..782b1f65ff 100644 --- a/go.sum +++ b/go.sum @@ -88,6 +88,7 @@ github.com/aws/aws-sdk-go v1.31.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU github.com/aws/aws-sdk-go v1.32.3/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.5/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.8/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.32.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -177,6 +178,8 @@ github.com/cs3org/reva v0.1.1-0.20200622084157-4925dc73ec86 h1:TSG6ZPczyWmyFl74v github.com/cs3org/reva v0.1.1-0.20200622084157-4925dc73ec86/go.mod h1:tFcYbIPMOKMITn2b7j4i4oNoiakNXkCD8Bx6pwf7N/U= github.com/cs3org/reva v0.1.1-0.20200624063447-db5e6635d5f0 h1:zzwEoAxYKhEbWzfaa43Va1pO4OSXWiS+1P/CsLn2als= github.com/cs3org/reva v0.1.1-0.20200624063447-db5e6635d5f0/go.mod h1:AwSrblO/VrqvX1M+y+p0+4rSUAO0/PGVA1FR0GKYANs= +github.com/cs3org/reva v0.1.1-0.20200625112940-6a2822cb3f15 h1:ND/a8QsIUhL12gZerFMv/YnoWhpt23xW3ExxfT2oHP0= +github.com/cs3org/reva v0.1.1-0.20200625112940-6a2822cb3f15/go.mod h1:7i7pnpPAO0eKy/9+az2YndOVFub0gZCDenpU6EyZqJI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From a4db2f2f2f9667bd80cb3e8295db51586480e36c Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 25 Jun 2020 13:53:13 +0200 Subject: [PATCH 141/346] Changelog for reva update to v0.1.1-0.20200625112940-6a2822cb3f15 --- .../unreleased/update-reva-to-20200625.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 changelog/unreleased/update-reva-to-20200625.md diff --git a/changelog/unreleased/update-reva-to-20200625.md b/changelog/unreleased/update-reva-to-20200625.md new file mode 100644 index 0000000000..10f5bea747 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200625.md @@ -0,0 +1,18 @@ +Enhancement: update reva to v0.1.1-0.20200625112940-6a2822cb3f15 + +- Updated reva to v0.1.1-0.20200625112940-6a2822cb3f15 (#261) +- TUS upload support through datagateway (#261, reva/#878) +- Added support for differing metrics path for Prometheus to Mentix (reva/#875) +- More data exported by Mentix (reva/#881) +- Implementation of file operations in public folder shares (#49, #293, reva/#877) +- Make httpclient trust local certificates for now (reva/#880) + +https://github.com/owncloud/ocis-reva/pull/261 +https://github.com/owncloud/cs3org/reva/pull/875 +https://github.com/owncloud/ocis-reva/issues/49 +https://github.com/owncloud/ocis-reva/issues/293 +https://github.com/owncloud/cs3org/reva/pull/877 +https://github.com/owncloud/ocis-reva/issues/261 +https://github.com/owncloud/cs3org/reva/pull/878 +https://github.com/owncloud/cs3org/reva/pull/881 +https://github.com/owncloud/cs3org/reva/pull/880 From ba633251f2d930bfe3a8816601a0a43fe98367cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 25 Jun 2020 17:01:27 +0200 Subject: [PATCH 142/346] update to reva v0.1.1-0.20200625144447-03e6aba90379 --- go.mod | 2 +- go.sum | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 9668da5919..8552c5521a 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200625112940-6a2822cb3f15 + github.com/cs3org/reva v0.1.1-0.20200625144447-03e6aba90379 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 782b1f65ff..feba1e3d2c 100644 --- a/go.sum +++ b/go.sum @@ -17,6 +17,7 @@ contrib.go.opencensus.io/exporter/jaeger v0.2.0/go.mod h1:ukdzwIYYHgZ7QYtwVFQUji contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= contrib.go.opencensus.io/exporter/prometheus v0.1.0 h1:SByaIoWwNgMdPSgl5sMqM2KDE5H/ukPWBRo314xiDvg= contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= +contrib.go.opencensus.io/exporter/prometheus v0.2.0 h1:9PUk0/8V0LGoPqVCrf8fQZJkFGBxudu8jOjQSMwoD6w= contrib.go.opencensus.io/exporter/prometheus v0.2.0/go.mod h1:TYmVAyE8Tn1lyPcltF5IYYfWp2KHu7lQGIZnj8iZMys= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go v32.4.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= @@ -63,8 +64,10 @@ github.com/akamai/AkamaiOPEN-edgegrid-golang v0.9.0/go.mod h1:zpDJeKyp9ScW4NNrbd github.com/alangpierce/go-forceexport v0.0.0-20160317203124-8f1d6941cd75/go.mod h1:uAXEEpARkRhCZfEvy/y0Jcc888f9tHCc1W7/UeEtreE= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190808125512-07798873deee/go.mod h1:myCDvQSzCW+wB1WAlocEru4wMGJxy+vlxHdhegi1CDQ= github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= @@ -88,6 +91,7 @@ github.com/aws/aws-sdk-go v1.31.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU github.com/aws/aws-sdk-go v1.32.3/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.5/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.8/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.32.9 h1:ai+NZsCV+Z97+jqIKya49gbCObOay9FKww0/VCNuXug= github.com/aws/aws-sdk-go v1.32.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= @@ -159,6 +163,8 @@ github.com/cs3org/go-cs3apis v0.0.0-20200423154403-462ce7762d4a/go.mod h1:UXha4T github.com/cs3org/go-cs3apis v0.0.0-20200515145316-7048e6a5a73d h1:toZvBLH1cbHT65kv6xYPd9QqwLUHwOAVHqe9j4obAq4= github.com/cs3org/go-cs3apis v0.0.0-20200515145316-7048e6a5a73d/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/go-cs3apis v0.0.0-20200622121618-dc54dffb5e44/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/go-cs3apis v0.0.0-20200625121012-96e791152b14 h1:ORPIrxw/T33ALlpaon9IMRzf54ArJQWCYlcECZiRmEc= +github.com/cs3org/go-cs3apis v0.0.0-20200625121012-96e791152b14/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v0.1.1-0.20200520150229-ce94fda7436f/go.mod h1:fVZ7IXTQaxNit5Q9yA+x6ciJmUpEHgBrxtwmiGGBY40= github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928 h1:6dIWlFuZNGz3tmK8IF/1JQ/TkmTj0/v3dSt0Zi1zrX0= github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928/go.mod h1:ig/TuMCG/l6vjOvFkj/4tU27PBvcig+Kfjc4mF++BwQ= @@ -180,6 +186,8 @@ github.com/cs3org/reva v0.1.1-0.20200624063447-db5e6635d5f0 h1:zzwEoAxYKhEbWzfaa github.com/cs3org/reva v0.1.1-0.20200624063447-db5e6635d5f0/go.mod h1:AwSrblO/VrqvX1M+y+p0+4rSUAO0/PGVA1FR0GKYANs= github.com/cs3org/reva v0.1.1-0.20200625112940-6a2822cb3f15 h1:ND/a8QsIUhL12gZerFMv/YnoWhpt23xW3ExxfT2oHP0= github.com/cs3org/reva v0.1.1-0.20200625112940-6a2822cb3f15/go.mod h1:7i7pnpPAO0eKy/9+az2YndOVFub0gZCDenpU6EyZqJI= +github.com/cs3org/reva v0.1.1-0.20200625144447-03e6aba90379 h1:IvAcfPZ7Ii9KAPBGLTIxXuN6qqJSZWRIlYiErThobzM= +github.com/cs3org/reva v0.1.1-0.20200625144447-03e6aba90379/go.mod h1:qmaOljVCmm3kcRS8RW5E34Voly4dDCFdlllj/j4KW/0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -655,6 +663,7 @@ github.com/mitchellh/mapstructure v1.3.0 h1:iDwIio/3gk2QtLLEsqU5lInaMzos0hDTz8a6 github.com/mitchellh/mapstructure v1.3.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.1 h1:cCBH2gTD2K0OtLlv/Y5H01VQCqmlDxz30kS5Y5bqfLA= github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg= github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= @@ -719,6 +728,7 @@ github.com/ory/fosite v0.31.3/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20 github.com/ory/fosite v0.32.0 h1:g89HkBt0dgm+HPrbsYZTmyks1NIw0BH/UlEaw84e1ss= github.com/ory/fosite v0.32.0/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= github.com/ory/fosite v0.32.1/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= +github.com/ory/fosite v0.32.2 h1:iRV495P/9EyoYQ8qEHYxFQeeYCdDFawqjAML+qiMF9s= github.com/ory/fosite v0.32.2/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= github.com/ory/go-acc v0.0.0-20181118080137-ddc355013f90/go.mod h1:sxnvPCxChFuSmTJGj8FdMupeq1BezCiEpDjTUXQ4hf4= github.com/ory/go-acc v0.2.1 h1:Pwcmwd/cSnwJsYN76+w3HU7oXeWFTkwj/KUj1qGDrVw= @@ -789,6 +799,7 @@ github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDa github.com/prometheus/procfs v0.0.6/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/statsd_exporter v0.15.0 h1:UiwC1L5HkxEPeapXdm2Ye0u1vUJfTj7uwT5yydYpa1E= github.com/prometheus/statsd_exporter v0.15.0/go.mod h1:Dv8HnkoLQkeEjkIE4/2ndAA7WL1zHKK7WMqFQqu72rw= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKcyumwBO6qip7RNQ5r77yrssm9bfCowcLEBcU5IA= @@ -807,6 +818,7 @@ github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= github.com/rs/zerolog v1.18.0 h1:CbAm3kP2Tptby1i9sYy2MGRg0uxIN9cyDb59Ys7W8z8= github.com/rs/zerolog v1.18.0/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= +github.com/rs/zerolog v1.19.0 h1:hYz4ZVdUgjXTBUmrkrw55j1nHx68LfOKIQk5IYtyScg= github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo= github.com/rubenv/sql-migrate v0.0.0-20190212093014-1007f53448d7/go.mod h1:WS0rl9eEliYI8DPnr3TOwz4439pay+qNgzJoVya/DmY= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= @@ -934,6 +946,7 @@ go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4 h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -1220,6 +1233,7 @@ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= From 811672b6f6e1703e5c6f5878f9784e6fbd00e046 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 25 Jun 2020 17:11:58 +0200 Subject: [PATCH 143/346] do not use proxy urls for testing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .drone.star | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.drone.star b/.drone.star index e88d37cc79..cec3264dd5 100644 --- a/.drone.star +++ b/.drone.star @@ -279,6 +279,8 @@ def testing(ctx): 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', 'REVA_OIDC_ISSUER': 'https://konnectd:9130', + 'REVA_FRONTEND_URL': 'http://localhost:9140', + 'REVA_DATAGATEWAY_URL': 'http://localhost:9140/data', }, 'commands': [ 'mkdir -p /srv/app/tmp/reva', From 331790796b80e2df589bac6bc6f5092248c9808d Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Thu, 25 Jun 2020 17:25:49 +0200 Subject: [PATCH 144/346] Add frontend and datagateway urls to CI --- .drone.star | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.drone.star b/.drone.star index cec3264dd5..ec95dd9279 100644 --- a/.drone.star +++ b/.drone.star @@ -65,7 +65,9 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', 'REVA_STORAGE_OC_DATA_URL': 'reva-server:9164', 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', - 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json' + 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', + 'REVA_FRONTEND_URL': 'http://reva-server:9140', + 'REVA_DATAGATEWAY_URL': 'http://reva-server:9140/data', }, 'commands': [ 'apk add mailcap', @@ -279,8 +281,8 @@ def testing(ctx): 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', 'REVA_OIDC_ISSUER': 'https://konnectd:9130', - 'REVA_FRONTEND_URL': 'http://localhost:9140', - 'REVA_DATAGATEWAY_URL': 'http://localhost:9140/data', + 'REVA_FRONTEND_URL': 'http://reva-server:9140', + 'REVA_DATAGATEWAY_URL': 'http://reva-server:9140/data', }, 'commands': [ 'mkdir -p /srv/app/tmp/reva', From 181cdef6bfbd525cffd08817c94bacfb91395be8 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 26 Jun 2020 10:13:36 +0200 Subject: [PATCH 145/346] TEMP enable public link tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index ec95dd9279..d30b4a8334 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', '31dbb9ce87de35165edf85ce9eda8f004c73f9f8'), + apiTests(ctx, 'tests-adjust-public-share-test-issues', '9d143b41bda3d5c2bb265a220d0c5dfe8eb584f9'), ] stages = [ From 35aea683016142ffc0743ec197883a6317e5f65e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 26 Jun 2020 10:17:02 +0200 Subject: [PATCH 146/346] update config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/command/gateway.go | 24 +-- pkg/command/storageeos.go | 8 +- pkg/command/storageeosdata.go | 5 +- pkg/command/storagehome.go | 15 +- pkg/command/storagehomedata.go | 14 +- pkg/command/storageoc.go | 17 +- pkg/command/storageocdata.go | 14 +- pkg/command/storagepubliclink.go | 7 +- pkg/command/storageroot.go | 23 +-- pkg/config/config.go | 25 ++- pkg/flagset/common.go | 93 +++++++++++ pkg/flagset/gateway.go | 49 ++++-- pkg/flagset/storagedrivers.go | 178 ++++++++++++++++++++ pkg/flagset/storageeos.go | 264 ++---------------------------- pkg/flagset/storageeosdata.go | 267 ++---------------------------- pkg/flagset/storagehome.go | 262 ++---------------------------- pkg/flagset/storagehomedata.go | 265 ++---------------------------- pkg/flagset/storageoc.go | 265 ++---------------------------- pkg/flagset/storageocdata.go | 268 ++----------------------------- pkg/flagset/storagepubliclink.go | 145 ++++------------- pkg/flagset/storageroot.go | 249 ++-------------------------- 21 files changed, 524 insertions(+), 1933 deletions(-) create mode 100644 pkg/flagset/common.go create mode 100644 pkg/flagset/storagedrivers.go diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index 08d8201dea..ed8621113a 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -134,18 +134,18 @@ func Gateway(cfg *config.Config) *cli.Command { cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, cfg.Reva.StorageHome.MountPath: cfg.Reva.StorageHome.URL, // the home storage has no mount id. In responses it returns the mount id of the actual storage - cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL, - cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL, - cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL, - cfg.Reva.StorageOC.MountID: cfg.Reva.StorageOC.URL, - cfg.Reva.StorageS3.MountPath: cfg.Reva.StorageS3.URL, - cfg.Reva.StorageS3.MountID: cfg.Reva.StorageS3.URL, - cfg.Reva.StorageWND.MountPath: cfg.Reva.StorageWND.URL, - cfg.Reva.StorageWND.MountID: cfg.Reva.StorageWND.URL, - cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL, - cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL, - "/public/": "localhost:10054", - "e1a73ede-549b-4226-abdf-40e69ca8230d": "localhost:10054", + cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL, + cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL, + cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL, + cfg.Reva.StorageOC.MountID: cfg.Reva.StorageOC.URL, + cfg.Reva.StorageS3.MountPath: cfg.Reva.StorageS3.URL, + cfg.Reva.StorageS3.MountID: cfg.Reva.StorageS3.URL, + cfg.Reva.StorageWND.MountPath: cfg.Reva.StorageWND.URL, + cfg.Reva.StorageWND.MountID: cfg.Reva.StorageWND.URL, + cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL, + cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL, + cfg.Reva.StoragePublicLink.MountPath: cfg.Reva.StoragePublicLink.URL, + cfg.Reva.StoragePublicLink.MountID: cfg.Reva.StoragePublicLink.URL, }, }, }, diff --git a/pkg/command/storageeos.go b/pkg/command/storageeos.go index 04ef99807f..38057f9f7a 100644 --- a/pkg/command/storageeos.go +++ b/pkg/command/storageeos.go @@ -89,7 +89,7 @@ func StorageEOS(cfg *config.Config) *cli.Command { "storageprovider": map[string]interface{}{ "driver": cfg.Reva.StorageEOS.Driver, "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ + "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "share_folder": cfg.Reva.Storages.EOS.ShareFolder, @@ -105,16 +105,14 @@ func StorageEOS(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "user_layout": cfg.Reva.Storages.EOS.UserLayout, }, }, "mount_path": cfg.Reva.StorageEOS.MountPath, "mount_id": cfg.Reva.StorageEOS.MountID, "expose_data_server": cfg.Reva.StorageEOS.ExposeDataServer, // TODO use cfg.Reva.SStorageEOSData.URL, ? - "data_server_url": cfg.Reva.StorageEOS.DataServerURL, - "enable_home_creation": cfg.Reva.StorageEOS.EnableHomeCreation, + "data_server_url": cfg.Reva.StorageEOS.DataServerURL, }, }, }, diff --git a/pkg/command/storageeosdata.go b/pkg/command/storageeosdata.go index eee78a9253..0522977903 100644 --- a/pkg/command/storageeosdata.go +++ b/pkg/command/storageeosdata.go @@ -91,7 +91,7 @@ func StorageEOSData(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.StorageEOSData.Prefix, "driver": cfg.Reva.StorageEOSData.Driver, "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ + "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "share_folder": cfg.Reva.Storages.EOS.ShareFolder, @@ -107,8 +107,7 @@ func StorageEOSData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "user_layout": cfg.Reva.Storages.EOS.UserLayout, }, }, "temp_folder": cfg.Reva.StorageEOSData.TempFolder, diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 7e0f583a9f..ced6fd5915 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -89,7 +89,7 @@ func StorageHome(cfg *config.Config) *cli.Command { "storageprovider": map[string]interface{}{ "driver": cfg.Reva.StorageHome.Driver, "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ + "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "share_folder": cfg.Reva.Storages.EOS.ShareFolder, @@ -106,10 +106,16 @@ func StorageHome(cfg *config.Config) *cli.Command { "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, "enable_home": true, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "user_layout": cfg.Reva.Storages.EOS.UserLayout, }, "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, + }, + "localhome": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, + "user_layout": cfg.Reva.Storages.Local.UserLayout, }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, @@ -131,8 +137,7 @@ func StorageHome(cfg *config.Config) *cli.Command { "mount_id": cfg.Reva.StorageHome.MountID, "expose_data_server": cfg.Reva.StorageHome.ExposeDataServer, // TODO use cfg.Reva.StorageHomeData.URL, ? - "data_server_url": cfg.Reva.StorageHome.DataServerURL, - "enable_home_creation": cfg.Reva.StorageHome.EnableHomeCreation, + "data_server_url": cfg.Reva.StorageHome.DataServerURL, }, }, }, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index a00657bd1f..62ef2c310f 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -91,7 +91,7 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.StorageHomeData.Prefix, "driver": cfg.Reva.StorageHomeData.Driver, "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ + "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, @@ -107,17 +107,21 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "user_layout": cfg.Reva.Storages.EOS.UserLayout, }, "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, + }, + "localhome": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, + "user_layout": cfg.Reva.Storages.Local.UserLayout, }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index 34b24e43d1..8b3f536547 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -89,7 +89,7 @@ func StorageOC(cfg *config.Config) *cli.Command { "storageprovider": map[string]interface{}{ "driver": cfg.Reva.StorageOC.Driver, "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ + "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "share_folder": cfg.Reva.Storages.EOS.ShareFolder, @@ -105,17 +105,21 @@ func StorageOC(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "user_layout": cfg.Reva.Storages.EOS.UserLayout, }, "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, + }, + "localhome": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, + "user_layout": cfg.Reva.Storages.Local.UserLayout, }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ @@ -131,8 +135,7 @@ func StorageOC(cfg *config.Config) *cli.Command { "mount_id": cfg.Reva.StorageOC.MountID, "expose_data_server": cfg.Reva.StorageOC.ExposeDataServer, // TODO use cfg.Reva.SStorageOCData.URL, ? - "data_server_url": cfg.Reva.StorageOC.DataServerURL, - "enable_home_creation": cfg.Reva.StorageOC.EnableHomeCreation, + "data_server_url": cfg.Reva.StorageOC.DataServerURL, }, }, }, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index dd3a2be14b..0418f06cfe 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -91,7 +91,7 @@ func StorageOCData(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.StorageOCData.Prefix, "driver": cfg.Reva.StorageOCData.Driver, "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ + "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "share_folder": cfg.Reva.Storages.EOS.ShareFolder, @@ -107,17 +107,21 @@ func StorageOCData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "user_layout": cfg.Reva.Storages.EOS.UserLayout, }, "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, + }, + "localhome": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, + "user_layout": cfg.Reva.Storages.Local.UserLayout, }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ diff --git a/pkg/command/storagepubliclink.go b/pkg/command/storagepubliclink.go index d40313156f..5642897c0b 100644 --- a/pkg/command/storagepubliclink.go +++ b/pkg/command/storagepubliclink.go @@ -68,8 +68,11 @@ func StoragePublicLink(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.StoragePublicLink.MaxCPUs, - "tracing_enabled": true, + "max_cpus": cfg.Reva.StoragePublicLink.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "storage-public-links", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index a2fa370d06..346fcb98ec 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -89,7 +89,7 @@ func StorageRoot(cfg *config.Config) *cli.Command { "storageprovider": map[string]interface{}{ "driver": cfg.Reva.StorageRoot.Driver, "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ + "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, @@ -103,17 +103,21 @@ func StorageRoot(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "user_layout": cfg.Reva.Storages.EOS.UserLayout, }, "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, + }, + "localhome": map[string]interface{}{ + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, + "user_layout": cfg.Reva.Storages.Local.UserLayout, }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ @@ -125,11 +129,10 @@ func StorageRoot(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.Storages.S3.Prefix, }, }, - "mount_path": cfg.Reva.StorageRoot.MountPath, - "mount_id": cfg.Reva.StorageRoot.MountID, - "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, - "data_server_url": cfg.Reva.StorageRoot.DataServerURL, - "enable_home_creation": cfg.Reva.StorageRoot.EnableHomeCreation, + "mount_path": cfg.Reva.StorageRoot.MountPath, + "mount_id": cfg.Reva.StorageRoot.MountID, + "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, + "data_server_url": cfg.Reva.StorageRoot.DataServerURL, }, }, }, diff --git a/pkg/config/config.go b/pkg/config/config.go index 942b48b767..804a5b9696 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -68,12 +68,11 @@ type Users struct { // StoragePort defines the available storage configuration. type StoragePort struct { Port - Driver string - MountPath string - MountID string - ExposeDataServer bool - DataServerURL string - EnableHomeCreation bool + Driver string + MountPath string + MountID string + ExposeDataServer bool + DataServerURL string // for HTTP ports with only one http service Prefix string @@ -85,9 +84,7 @@ type PublicStorage struct { StoragePort PublicShareProviderAddr string - StorageProviderAddr string UserProviderAddr string - MountID string } // StorageConfig combines all available storage driver configuration parts. @@ -145,9 +142,6 @@ type DriverEOS struct { // UseKeyTabAuth changes will authenticate requests by using an EOS keytab. UseKeytab bool - // EnableHome enables the creation of home directories. - EnableHome bool - // SecProtocol specifies the xrootd security protocol to use between the server and EOS. SecProtocol string @@ -157,13 +151,15 @@ type DriverEOS struct { // SingleUsername is the username to use when SingleUserMode is enabled SingleUsername string - // Layout of the users home dir path - Layout string + // UserLayout of the users home dir path + UserLayout string } // DriverLocal defines the available local storage driver configuration. type DriverLocal struct { - Root string + Root string + ShareFolder string + UserLayout string } // DriverOwnCloud defines the available ownCloud storage driver configuration. @@ -172,7 +168,6 @@ type DriverOwnCloud struct { Layout string Redis string Scan bool - EnableHome bool } // DriverS3 defines the available S3 storage driver configuration. diff --git a/pkg/flagset/common.go b/pkg/flagset/common.go new file mode 100644 index 0000000000..ad3c1e8f09 --- /dev/null +++ b/pkg/flagset/common.go @@ -0,0 +1,93 @@ +package flagset + +import ( + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +func commonTracingWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, + } +} + +func commonDebugWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, + } +} + +func commonSecretWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, + } +} + +func commonGatewayWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "gateway-url", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_GATEWAY_URL"}, + Destination: &cfg.Reva.Gateway.URL, + }, + } +} diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index 73b59be376..1d80b5fb51 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -189,7 +189,7 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "frontend-url", Value: "https://localhost:9200", - Usage: "URL to use for the reva service", + Usage: "URL to use for the frontend service", EnvVars: []string{"REVA_FRONTEND_URL"}, Destination: &cfg.Reva.Frontend.URL, }, @@ -203,28 +203,28 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "users-url", Value: "localhost:9144", - Usage: "URL to use for the reva service", + Usage: "URL to use for the users service", EnvVars: []string{"REVA_USERS_URL"}, Destination: &cfg.Reva.Users.URL, }, &cli.StringFlag{ Name: "auth-basic-url", Value: "localhost:9146", - Usage: "URL to use for the reva service", + Usage: "URL to use for the auth basic service", EnvVars: []string{"REVA_AUTH_BASIC_URL"}, Destination: &cfg.Reva.AuthBasic.URL, }, &cli.StringFlag{ Name: "auth-bearer-url", Value: "localhost:9148", - Usage: "URL to use for the reva service", + Usage: "URL to use for the auth bearer service", EnvVars: []string{"REVA_AUTH_BEARER_URL"}, Destination: &cfg.Reva.AuthBearer.URL, }, &cli.StringFlag{ Name: "sharing-url", Value: "localhost:9150", - Usage: "URL to use for the reva service", + Usage: "URL to use for the sharing service", EnvVars: []string{"REVA_SHARING_URL"}, Destination: &cfg.Reva.Sharing.URL, }, @@ -232,21 +232,21 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "storage-root-url", Value: "localhost:9152", - Usage: "URL to use for the reva service", + Usage: "URL to use for the root storage service", EnvVars: []string{"REVA_STORAGE_ROOT_URL"}, Destination: &cfg.Reva.StorageRoot.URL, }, &cli.StringFlag{ Name: "storage-root-mount-path", Value: "/", - Usage: "mount path", + Usage: "root storage mount path", EnvVars: []string{"REVA_STORAGE_ROOT_MOUNT_PATH"}, Destination: &cfg.Reva.StorageRoot.MountPath, }, &cli.StringFlag{ Name: "storage-root-mount-id", Value: "1284d238-aa92-42ce-bdc4-0b0000009152", - Usage: "mount id", + Usage: "root storage mount id", EnvVars: []string{"REVA_STORAGE_ROOT_MOUNT_ID"}, Destination: &cfg.Reva.StorageRoot.MountID, }, @@ -254,14 +254,14 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "storage-home-url", Value: "localhost:9154", - Usage: "URL to use for the reva service", + Usage: "URL to use for the home storage service", EnvVars: []string{"REVA_STORAGE_HOME_URL"}, Destination: &cfg.Reva.StorageHome.URL, }, &cli.StringFlag{ Name: "storage-home-mount-path", Value: "/home", - Usage: "mount path", + Usage: "home storage mount path", EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_PATH"}, Destination: &cfg.Reva.StorageHome.MountPath, }, @@ -270,21 +270,21 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "storage-eos-url", Value: "localhost:9158", - Usage: "URL to use for the reva service", + Usage: "URL to use for the eos storage service", EnvVars: []string{"REVA_STORAGE_EOS_URL"}, Destination: &cfg.Reva.StorageEOS.URL, }, &cli.StringFlag{ Name: "storage-eos-mount-path", Value: "/eos", - Usage: "mount path", + Usage: "eos storage mount path", EnvVars: []string{"REVA_STORAGE_EOS_MOUNT_PATH"}, Destination: &cfg.Reva.StorageEOS.MountPath, }, &cli.StringFlag{ Name: "storage-eos-mount-id", Value: "1284d238-aa92-42ce-bdc4-0b0000009158", - Usage: "mount id", + Usage: "eos storage mount id", EnvVars: []string{"REVA_STORAGE_EOS_MOUNT_ID"}, Destination: &cfg.Reva.StorageEOS.MountID, }, @@ -292,30 +292,45 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "storage-oc-url", Value: "localhost:9162", - Usage: "URL to use for the reva service", + Usage: "URL to use for the oc storage service", EnvVars: []string{"REVA_STORAGE_OC_URL"}, Destination: &cfg.Reva.StorageOC.URL, }, &cli.StringFlag{ Name: "storage-oc-mount-path", Value: "/oc", - Usage: "mount path", + Usage: "oc storage mount path", EnvVars: []string{"REVA_STORAGE_OC_MOUNT_PATH"}, Destination: &cfg.Reva.StorageOC.MountPath, }, &cli.StringFlag{ Name: "storage-oc-mount-id", Value: "1284d238-aa92-42ce-bdc4-0b0000009162", - Usage: "mount id", + Usage: "oc storage mount id", EnvVars: []string{"REVA_STORAGE_OC_MOUNT_ID"}, Destination: &cfg.Reva.StorageOC.MountID, }, + &cli.StringFlag{ Name: "public-links-url", - Value: "localhost:10054", + Value: "localhost:9170", Usage: "URL to use for the public links service", EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_URL"}, Destination: &cfg.Reva.StoragePublicLink.URL, }, + &cli.StringFlag{ + Name: "public-links-mount-path", + Value: "/public/", + Usage: "public links storage mount path", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH"}, + Destination: &cfg.Reva.StoragePublicLink.MountPath, + }, + &cli.StringFlag{ + Name: "public-links-mount-id", + Value: "e1a73ede-549b-4226-abdf-40e69ca8230d", + Usage: "public links storage mount id", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_ID"}, + Destination: &cfg.Reva.StoragePublicLink.MountID, + }, } } diff --git a/pkg/flagset/storagedrivers.go b/pkg/flagset/storagedrivers.go new file mode 100644 index 0000000000..f8dc1279f0 --- /dev/null +++ b/pkg/flagset/storagedrivers.go @@ -0,0 +1,178 @@ +package flagset + +import ( + "os" + + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// StorageDriversWithConfig applies cfg to the root flagset +func storageDriversWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "/eos/dockertest/reva/users", + Usage: "Namespace for metadata operations", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "/Shares", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Master EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Slave EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Value: true, + Usage: "Enables logging of the commands executed", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Usage: "the username to use when SingleUserMode is enabled", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + &cli.StringFlag{ + Name: "storage-eos-user-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users internal home dir path, in addition to {{.Username}}, and {{.Mail}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_USER_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.UserLayout, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, + Destination: &cfg.Reva.Storages.Local.Root, + }, + &cli.StringFlag{ + Name: "storage-local-share-folder", + Value: "/MyShares", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_LOCAL_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.Local.UserLayout, + }, + &cli.StringFlag{ + Name: "storage-local-user-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users internal home dir path, in addition to {{.Username}}, and {{.Mail}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, + EnvVars: []string{"REVA_STORAGE_LOCAL_USER_LAYOUT"}, + Destination: &cfg.Reva.Storages.Local.UserLayout, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, + } +} diff --git a/pkg/flagset/storageeos.go b/pkg/flagset/storageeos.go index e30283254a..8247b17d90 100644 --- a/pkg/flagset/storageeos.go +++ b/pkg/flagset/storageeos.go @@ -1,92 +1,21 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageEOSWithConfig applies cfg to the root flagset func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ + flags := commonTracingWithConfig(cfg) - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags = append(flags, commonSecretWithConfig(cfg)...) - // debug ports are the odd ports - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9159", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_EOS_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageEOS.DebugAddr, - }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, + flags = append(flags, commonDebugWithConfig(cfg)...) - // REVA + flags = append(flags, storageDriversWithConfig(cfg)...) - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, - - // Services - - // Storage oc + flags = append(flags, &cli.StringFlag{ Name: "network", @@ -109,6 +38,13 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_ADDR"}, Destination: &cfg.Reva.StorageEOS.Addr, }, + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9159", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_EOS_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageEOS.DebugAddr, + }, &cli.StringFlag{ Name: "url", Value: "localhost:9158", @@ -122,10 +58,9 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { Usage: "--service storageprovider [--service otherservice]", EnvVars: []string{"REVA_STORAGE_EOS_SERVICES"}, }, - &cli.StringFlag{ Name: "driver", - Value: "eos", + Value: "eoshome", Usage: "storage driver, eg. local, eos, owncloud or s3", EnvVars: []string{"REVA_STORAGE_EOS_DRIVER"}, Destination: &cfg.Reva.StorageEOS.Driver, @@ -158,176 +93,7 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageEOS.DataServerURL, }, - &cli.BoolFlag{ - Name: "enable-home-creation", - Value: false, - Usage: "if enabled home dirs will be automatically created", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME_CREATION"}, - Destination: &cfg.Reva.StorageEOS.EnableHomeCreation, - }, + ) - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "/eos/dockertest/reva", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "/Shares", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: false, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - } + return flags } diff --git a/pkg/flagset/storageeosdata.go b/pkg/flagset/storageeosdata.go index 10d651c508..583f5773b5 100644 --- a/pkg/flagset/storageeosdata.go +++ b/pkg/flagset/storageeosdata.go @@ -1,92 +1,23 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageEOSDataWithConfig applies cfg to the root flagset func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ + flags := commonTracingWithConfig(cfg) - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags = append(flags, commonGatewayWithConfig(cfg)...) - // debug ports are the odd ports - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9161", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageEOSData.DebugAddr, - }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, + flags = append(flags, commonSecretWithConfig(cfg)...) - // REVA + flags = append(flags, commonDebugWithConfig(cfg)...) - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, + flags = append(flags, storageDriversWithConfig(cfg)...) - // Services - - // Storage eos data + flags = append(flags, &cli.StringFlag{ Name: "network", @@ -109,6 +40,13 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_DATA_ADDR"}, Destination: &cfg.Reva.StorageEOSData.Addr, }, + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9161", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageEOSData.DebugAddr, + }, &cli.StringFlag{ Name: "url", Value: "localhost:9160", @@ -124,7 +62,7 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "driver", - Value: "eos", + Value: "eoshome", Usage: "storage driver, eg. local, eos, owncloud or s3", EnvVars: []string{"REVA_STORAGE_EOS_DATA_DRIVER"}, Destination: &cfg.Reva.StorageEOSData.Driver, @@ -143,179 +81,6 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_DATA_TEMP_FOLDER"}, Destination: &cfg.Reva.StorageEOSData.TempFolder, }, - - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "/eos/dockertest/reva", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "/Shares", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: false, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - - // Gateway - - &cli.StringFlag{ - Name: "gateway-url", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_GATEWAY_URL"}, - Destination: &cfg.Reva.Gateway.URL, - }, - } + ) + return flags } diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index 4c5cc8d506..6737f3417b 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -1,92 +1,21 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageHomeWithConfig applies cfg to the root flagset func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ + flags := commonTracingWithConfig(cfg) - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags = append(flags, commonSecretWithConfig(cfg)...) - // debug ports are the odd ports - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9155", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_HOME_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageHome.DebugAddr, - }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, + flags = append(flags, commonDebugWithConfig(cfg)...) - // REVA + flags = append(flags, storageDriversWithConfig(cfg)...) - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, - - // Services - - // Storage home + flags = append(flags, &cli.StringFlag{ Name: "network", @@ -109,6 +38,13 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_ADDR"}, Destination: &cfg.Reva.StorageHome.Addr, }, + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9155", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_HOME_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageHome.DebugAddr, + }, &cli.StringFlag{ Name: "url", Value: "localhost:9154", @@ -160,177 +96,7 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageHome.DataServerURL, }, - &cli.BoolFlag{ - Name: "enable-home-creation", - Value: true, - Usage: "if enabled home dirs will be automatically created", - EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"}, - Destination: &cfg.Reva.StorageHome.EnableHomeCreation, - }, + ) - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "/eos/dockertest/reva/users", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "/Shares", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Value: true, - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: true, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - } + return flags } diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 8b8393a651..026b166b94 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -1,92 +1,23 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageHomeDataWithConfig applies cfg to the root flagset func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ + flags := commonTracingWithConfig(cfg) - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags = append(flags, commonGatewayWithConfig(cfg)...) - // debug ports are the odd ports - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9157", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_HOME_DATA_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageHomeData.DebugAddr, - }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, + flags = append(flags, commonSecretWithConfig(cfg)...) - // REVA + flags = append(flags, commonDebugWithConfig(cfg)...) - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, + flags = append(flags, storageDriversWithConfig(cfg)...) - // Services - - // Storage home data + flags = append(flags, &cli.StringFlag{ Name: "network", @@ -109,6 +40,13 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DATA_ADDR"}, Destination: &cfg.Reva.StorageHomeData.Addr, }, + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9157", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageHomeData.DebugAddr, + }, &cli.StringFlag{ Name: "url", Value: "localhost:9156", @@ -143,180 +81,7 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DATA_TEMP_FOLDER"}, Destination: &cfg.Reva.StorageHomeData.TempFolder, }, + ) - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "/eos/dockertest/reva/users", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "/Shares", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Value: true, - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: true, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - - // Gateway - - &cli.StringFlag{ - Name: "gateway-url", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_GATEWAY_URL"}, - Destination: &cfg.Reva.Gateway.URL, - }, - } + return flags } diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 62d58bccbe..c8322db5e6 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -1,92 +1,21 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageOCWithConfig applies cfg to the root flagset func StorageOCWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ + flags := commonTracingWithConfig(cfg) - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags = append(flags, commonSecretWithConfig(cfg)...) - // debug ports are the odd ports - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9163", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_OC_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageOC.DebugAddr, - }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, + flags = append(flags, commonDebugWithConfig(cfg)...) - // REVA + flags = append(flags, storageDriversWithConfig(cfg)...) - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, - - // Services - - // Storage oc + flags = append(flags, &cli.StringFlag{ Name: "network", @@ -109,6 +38,13 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_ADDR"}, Destination: &cfg.Reva.StorageOC.Addr, }, + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9163", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_OC_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageOC.DebugAddr, + }, &cli.StringFlag{ Name: "url", Value: "localhost:9162", @@ -122,7 +58,6 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { Usage: "--service storageprovider [--service otherservice]", EnvVars: []string{"REVA_STORAGE_OC_SERVICES"}, }, - &cli.StringFlag{ Name: "driver", Value: "owncloud", @@ -158,179 +93,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageOC.DataServerURL, }, - &cli.BoolFlag{ - Name: "enable-home-creation", - Value: false, - Usage: "if enabled home dirs will be automatically created", - EnvVars: []string{"REVA_STORAGE_OC_ENABLE_HOME_CREATION"}, - Destination: &cfg.Reva.StorageOC.EnableHomeCreation, - }, + ) - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-example.org", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-example.org", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Value: "", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Value: "", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Value: "", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: false, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - } + return flags } diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index bb2a645adb..a228d712be 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -1,93 +1,23 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageOCDataWithConfig applies cfg to the root flagset func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ + flags := commonTracingWithConfig(cfg) - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags = append(flags, commonGatewayWithConfig(cfg)...) - // debug ports are the odd ports - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9165", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageOCData.DebugAddr, - }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, + flags = append(flags, commonSecretWithConfig(cfg)...) - // REVA + flags = append(flags, commonDebugWithConfig(cfg)...) - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, - - // Services - - // Storage oc data + flags = append(flags, storageDriversWithConfig(cfg)...) + flags = append(flags, &cli.StringFlag{ Name: "network", Value: "tcp", @@ -109,6 +39,13 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DATA_ADDR"}, Destination: &cfg.Reva.StorageOCData.Addr, }, + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9165", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageOCData.DebugAddr, + }, &cli.StringFlag{ Name: "url", Value: "localhost:9164", @@ -143,182 +80,7 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DATA_TEMP_FOLDER"}, Destination: &cfg.Reva.StorageOCData.TempFolder, }, + ) - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-example.org", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-example.org", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Value: "", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Value: "", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Value: "", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: false, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - - // Gateway - - &cli.StringFlag{ - Name: "gateway-url", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_GATEWAY_URL"}, - Destination: &cfg.Reva.Gateway.URL, - }, - } + return flags } diff --git a/pkg/flagset/storagepubliclink.go b/pkg/flagset/storagepubliclink.go index a665d959f7..3d0d57fd0c 100644 --- a/pkg/flagset/storagepubliclink.go +++ b/pkg/flagset/storagepubliclink.go @@ -7,74 +7,17 @@ import ( // StoragePublicLink applies cfg to the root flagset func StoragePublicLink(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:10053", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DEBUG_ADDR"}, - Destination: &cfg.Reva.StoragePublicLink.DebugAddr, - }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, + flags := commonTracingWithConfig(cfg) + + flags = append(flags, commonGatewayWithConfig(cfg)...) + + flags = append(flags, commonSecretWithConfig(cfg)...) + + flags = append(flags, commonDebugWithConfig(cfg)...) + + flags = append(flags, storageDriversWithConfig(cfg)...) + + flags = append(flags, &cli.StringFlag{ Name: "network", Value: "tcp", @@ -91,11 +34,25 @@ func StoragePublicLink(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "addr", - Value: "localhost:10054", + Value: "0.0.0.0:9170", Usage: "Address to bind reva service", EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_ADDR"}, Destination: &cfg.Reva.StoragePublicLink.Addr, }, + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9171", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DEBUG_ADDR"}, + Destination: &cfg.Reva.StoragePublicLink.DebugAddr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9170", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_URL"}, + Destination: &cfg.Reva.StoragePublicLink.URL, + }, &cli.StringSliceFlag{ Name: "service", Value: cli.NewStringSlice("storageprovider"), @@ -118,18 +75,11 @@ func StoragePublicLink(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.StoragePublicLink.UserProviderAddr, }, &cli.StringFlag{ - Name: "storage_provider_addr", - Value: "localhost:9154", - Usage: "storage provider service address", - EnvVars: []string{"REVA_STORAGE_PUBLICLINK_STORAGE_PROVIDER_ADDR"}, - Destination: &cfg.Reva.StoragePublicLink.StorageProviderAddr, - }, - &cli.StringFlag{ - Name: "driver", - Value: "owncloud", - Usage: "storage driver, eg. local, eos, owncloud or s3", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DRIVER"}, - Destination: &cfg.Reva.StoragePublicLink.Driver, + Name: "mount-path", + Value: "/public/", + Usage: "mount path", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH"}, + Destination: &cfg.Reva.StoragePublicLink.MountPath, }, &cli.StringFlag{ Name: "mount-id", @@ -145,33 +95,8 @@ func StoragePublicLink(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_EXPOSE_DATA_SERVER"}, Destination: &cfg.Reva.StoragePublicLink.ExposeDataServer, }, - &cli.StringFlag{ - Name: "data-server-url", - Value: "http://localhost:9156/data", - Usage: "data server url", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DATA_SERVER_URL"}, - Destination: &cfg.Reva.StoragePublicLink.DataServerURL, - }, - &cli.BoolFlag{ - Name: "enable-home-creation", - Value: true, - Usage: "if enabled home dirs will be automatically created", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_ENABLE_HOME_CREATION"}, - Destination: &cfg.Reva.StoragePublicLink.EnableHomeCreation, - }, - &cli.StringFlag{ - Name: "mount-path", - Value: "/public/", - Usage: "mount path", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH"}, - Destination: &cfg.Reva.StoragePublicLink.MountPath, - }, - &cli.StringFlag{ - Name: "gateway-url", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_GATEWAY_URL"}, - Destination: &cfg.Reva.Gateway.URL, - }, - } + // has no data provider, only redirects to the actual storage + ) + + return flags } diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 31b136d762..03a6cc7c26 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -1,92 +1,21 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageRootWithConfig applies cfg to the root flagset func StorageRootWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ + flags := commonTracingWithConfig(cfg) - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags = append(flags, commonSecretWithConfig(cfg)...) - // debug ports are the odd ports - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9153", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_ROOT_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageRoot.DebugAddr, - }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, + flags = append(flags, commonDebugWithConfig(cfg)...) - // REVA + flags = append(flags, storageDriversWithConfig(cfg)...) - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, - - // Services - - // Storage root + flags = append(flags, &cli.StringFlag{ Name: "network", @@ -109,6 +38,13 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_ROOT_ADDR"}, Destination: &cfg.Reva.StorageRoot.Addr, }, + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9153", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_ROOT_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageRoot.DebugAddr, + }, &cli.StringFlag{ Name: "url", Value: "localhost:9152", @@ -157,164 +93,7 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_ROOT_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageRoot.DataServerURL, }, - &cli.BoolFlag{ - Name: "enable-home-creation", - Usage: "if enabled home dirs will be automatically created", - EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"}, - Destination: &cfg.Reva.StorageHome.EnableHomeCreation, - }, + ) - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-example.org", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-example.org", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Value: "", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Value: "", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Value: "", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: false, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - } + return flags } From 38493d126a44d04cca325bf0e9cbbf6de038e1b2 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Fri, 26 Jun 2020 10:33:44 +0200 Subject: [PATCH 147/346] Update cs3org/reva --- changelog/unreleased/update-reva-to-20200625.md | 13 +++++++------ go.mod | 2 +- go.sum | 5 +++++ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/changelog/unreleased/update-reva-to-20200625.md b/changelog/unreleased/update-reva-to-20200625.md index 10f5bea747..0f38d7c530 100644 --- a/changelog/unreleased/update-reva-to-20200625.md +++ b/changelog/unreleased/update-reva-to-20200625.md @@ -1,18 +1,19 @@ Enhancement: update reva to v0.1.1-0.20200625112940-6a2822cb3f15 - Updated reva to v0.1.1-0.20200625112940-6a2822cb3f15 (#261) -- TUS upload support through datagateway (#261, reva/#878) +- TUS upload support through datagateway (#261, reva/#878, reva/#888) - Added support for differing metrics path for Prometheus to Mentix (reva/#875) - More data exported by Mentix (reva/#881) - Implementation of file operations in public folder shares (#49, #293, reva/#877) - Make httpclient trust local certificates for now (reva/#880) https://github.com/owncloud/ocis-reva/pull/261 -https://github.com/owncloud/cs3org/reva/pull/875 +https://github.com/cs3org/reva/pull/875 https://github.com/owncloud/ocis-reva/issues/49 https://github.com/owncloud/ocis-reva/issues/293 -https://github.com/owncloud/cs3org/reva/pull/877 +https://github.com/cs3org/reva/pull/877 https://github.com/owncloud/ocis-reva/issues/261 -https://github.com/owncloud/cs3org/reva/pull/878 -https://github.com/owncloud/cs3org/reva/pull/881 -https://github.com/owncloud/cs3org/reva/pull/880 +https://github.com/cs3org/reva/pull/878 +https://github.com/cs3org/reva/pull/881 +https://github.com/cs3org/reva/pull/880 +https://github.com/cs3org/reva/pull/888 diff --git a/go.mod b/go.mod index 8552c5521a..39472cec21 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200625144447-03e6aba90379 + github.com/cs3org/reva v0.1.1-0.20200626083045-8d345749ae0d github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index feba1e3d2c..e790e10dbe 100644 --- a/go.sum +++ b/go.sum @@ -93,6 +93,7 @@ github.com/aws/aws-sdk-go v1.32.5/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU github.com/aws/aws-sdk-go v1.32.8/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.9 h1:ai+NZsCV+Z97+jqIKya49gbCObOay9FKww0/VCNuXug= github.com/aws/aws-sdk-go v1.32.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.32.10/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -188,6 +189,8 @@ github.com/cs3org/reva v0.1.1-0.20200625112940-6a2822cb3f15 h1:ND/a8QsIUhL12gZer github.com/cs3org/reva v0.1.1-0.20200625112940-6a2822cb3f15/go.mod h1:7i7pnpPAO0eKy/9+az2YndOVFub0gZCDenpU6EyZqJI= github.com/cs3org/reva v0.1.1-0.20200625144447-03e6aba90379 h1:IvAcfPZ7Ii9KAPBGLTIxXuN6qqJSZWRIlYiErThobzM= github.com/cs3org/reva v0.1.1-0.20200625144447-03e6aba90379/go.mod h1:qmaOljVCmm3kcRS8RW5E34Voly4dDCFdlllj/j4KW/0= +github.com/cs3org/reva v0.1.1-0.20200626083045-8d345749ae0d h1:SCUMOhkYTEjFA7IsMlj49bF+cCgTEbfnBme0VFqOhuc= +github.com/cs3org/reva v0.1.1-0.20200626083045-8d345749ae0d/go.mod h1:wunIwvRI7Pd+QFB0YCK+jdAtq0udQzjt8iG7WQ+LLrs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -513,6 +516,7 @@ github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FK github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.3 h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= @@ -1244,6 +1248,7 @@ google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyz google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= gopkg.in/Acconut/lockfile.v1 v1.1.0/go.mod h1:6UCz3wJ8tSFUsPR6uP/j8uegEtDuEEqFxlpi0JI4Umw= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= +gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= From 771670b68525f7f222fce1692dd46c357177a126 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 26 Jun 2020 10:54:45 +0200 Subject: [PATCH 148/346] Revert "update config" This reverts commit 35aea683016142ffc0743ec197883a6317e5f65e. --- pkg/command/gateway.go | 24 +-- pkg/command/storageeos.go | 8 +- pkg/command/storageeosdata.go | 5 +- pkg/command/storagehome.go | 15 +- pkg/command/storagehomedata.go | 14 +- pkg/command/storageoc.go | 17 +- pkg/command/storageocdata.go | 14 +- pkg/command/storagepubliclink.go | 7 +- pkg/command/storageroot.go | 23 ++- pkg/config/config.go | 25 +-- pkg/flagset/common.go | 93 ----------- pkg/flagset/gateway.go | 49 ++---- pkg/flagset/storagedrivers.go | 178 -------------------- pkg/flagset/storageeos.go | 264 ++++++++++++++++++++++++++++-- pkg/flagset/storageeosdata.go | 267 ++++++++++++++++++++++++++++-- pkg/flagset/storagehome.go | 262 ++++++++++++++++++++++++++++-- pkg/flagset/storagehomedata.go | 265 ++++++++++++++++++++++++++++-- pkg/flagset/storageoc.go | 265 ++++++++++++++++++++++++++++-- pkg/flagset/storageocdata.go | 268 +++++++++++++++++++++++++++++-- pkg/flagset/storagepubliclink.go | 145 +++++++++++++---- pkg/flagset/storageroot.go | 249 ++++++++++++++++++++++++++-- 21 files changed, 1933 insertions(+), 524 deletions(-) delete mode 100644 pkg/flagset/common.go delete mode 100644 pkg/flagset/storagedrivers.go diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index ed8621113a..08d8201dea 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -134,18 +134,18 @@ func Gateway(cfg *config.Config) *cli.Command { cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, cfg.Reva.StorageHome.MountPath: cfg.Reva.StorageHome.URL, // the home storage has no mount id. In responses it returns the mount id of the actual storage - cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL, - cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL, - cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL, - cfg.Reva.StorageOC.MountID: cfg.Reva.StorageOC.URL, - cfg.Reva.StorageS3.MountPath: cfg.Reva.StorageS3.URL, - cfg.Reva.StorageS3.MountID: cfg.Reva.StorageS3.URL, - cfg.Reva.StorageWND.MountPath: cfg.Reva.StorageWND.URL, - cfg.Reva.StorageWND.MountID: cfg.Reva.StorageWND.URL, - cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL, - cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL, - cfg.Reva.StoragePublicLink.MountPath: cfg.Reva.StoragePublicLink.URL, - cfg.Reva.StoragePublicLink.MountID: cfg.Reva.StoragePublicLink.URL, + cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL, + cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL, + cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL, + cfg.Reva.StorageOC.MountID: cfg.Reva.StorageOC.URL, + cfg.Reva.StorageS3.MountPath: cfg.Reva.StorageS3.URL, + cfg.Reva.StorageS3.MountID: cfg.Reva.StorageS3.URL, + cfg.Reva.StorageWND.MountPath: cfg.Reva.StorageWND.URL, + cfg.Reva.StorageWND.MountID: cfg.Reva.StorageWND.URL, + cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL, + cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL, + "/public/": "localhost:10054", + "e1a73ede-549b-4226-abdf-40e69ca8230d": "localhost:10054", }, }, }, diff --git a/pkg/command/storageeos.go b/pkg/command/storageeos.go index 38057f9f7a..04ef99807f 100644 --- a/pkg/command/storageeos.go +++ b/pkg/command/storageeos.go @@ -89,7 +89,7 @@ func StorageEOS(cfg *config.Config) *cli.Command { "storageprovider": map[string]interface{}{ "driver": cfg.Reva.StorageEOS.Driver, "drivers": map[string]interface{}{ - "eoshome": map[string]interface{}{ + "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "share_folder": cfg.Reva.Storages.EOS.ShareFolder, @@ -105,14 +105,16 @@ func StorageEOS(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.UserLayout, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, }, "mount_path": cfg.Reva.StorageEOS.MountPath, "mount_id": cfg.Reva.StorageEOS.MountID, "expose_data_server": cfg.Reva.StorageEOS.ExposeDataServer, // TODO use cfg.Reva.SStorageEOSData.URL, ? - "data_server_url": cfg.Reva.StorageEOS.DataServerURL, + "data_server_url": cfg.Reva.StorageEOS.DataServerURL, + "enable_home_creation": cfg.Reva.StorageEOS.EnableHomeCreation, }, }, }, diff --git a/pkg/command/storageeosdata.go b/pkg/command/storageeosdata.go index 0522977903..eee78a9253 100644 --- a/pkg/command/storageeosdata.go +++ b/pkg/command/storageeosdata.go @@ -91,7 +91,7 @@ func StorageEOSData(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.StorageEOSData.Prefix, "driver": cfg.Reva.StorageEOSData.Driver, "drivers": map[string]interface{}{ - "eoshome": map[string]interface{}{ + "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "share_folder": cfg.Reva.Storages.EOS.ShareFolder, @@ -107,7 +107,8 @@ func StorageEOSData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.UserLayout, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, }, "temp_folder": cfg.Reva.StorageEOSData.TempFolder, diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index ced6fd5915..7e0f583a9f 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -89,7 +89,7 @@ func StorageHome(cfg *config.Config) *cli.Command { "storageprovider": map[string]interface{}{ "driver": cfg.Reva.StorageHome.Driver, "drivers": map[string]interface{}{ - "eoshome": map[string]interface{}{ + "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "share_folder": cfg.Reva.Storages.EOS.ShareFolder, @@ -106,16 +106,10 @@ func StorageHome(cfg *config.Config) *cli.Command { "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, "enable_home": true, - "user_layout": cfg.Reva.Storages.EOS.UserLayout, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - "share_folder": cfg.Reva.Storages.Local.ShareFolder, - }, - "localhome": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - "share_folder": cfg.Reva.Storages.Local.ShareFolder, - "user_layout": cfg.Reva.Storages.Local.UserLayout, + "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, @@ -137,7 +131,8 @@ func StorageHome(cfg *config.Config) *cli.Command { "mount_id": cfg.Reva.StorageHome.MountID, "expose_data_server": cfg.Reva.StorageHome.ExposeDataServer, // TODO use cfg.Reva.StorageHomeData.URL, ? - "data_server_url": cfg.Reva.StorageHome.DataServerURL, + "data_server_url": cfg.Reva.StorageHome.DataServerURL, + "enable_home_creation": cfg.Reva.StorageHome.EnableHomeCreation, }, }, }, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 62ef2c310f..a00657bd1f 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -91,7 +91,7 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.StorageHomeData.Prefix, "driver": cfg.Reva.StorageHomeData.Driver, "drivers": map[string]interface{}{ - "eoshome": map[string]interface{}{ + "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, @@ -107,21 +107,17 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.UserLayout, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - "share_folder": cfg.Reva.Storages.Local.ShareFolder, - }, - "localhome": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - "share_folder": cfg.Reva.Storages.Local.ShareFolder, - "user_layout": cfg.Reva.Storages.Local.UserLayout, + "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index 8b3f536547..34b24e43d1 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -89,7 +89,7 @@ func StorageOC(cfg *config.Config) *cli.Command { "storageprovider": map[string]interface{}{ "driver": cfg.Reva.StorageOC.Driver, "drivers": map[string]interface{}{ - "eoshome": map[string]interface{}{ + "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "share_folder": cfg.Reva.Storages.EOS.ShareFolder, @@ -105,21 +105,17 @@ func StorageOC(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.UserLayout, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - "share_folder": cfg.Reva.Storages.Local.ShareFolder, - }, - "localhome": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - "share_folder": cfg.Reva.Storages.Local.ShareFolder, - "user_layout": cfg.Reva.Storages.Local.UserLayout, + "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ @@ -135,7 +131,8 @@ func StorageOC(cfg *config.Config) *cli.Command { "mount_id": cfg.Reva.StorageOC.MountID, "expose_data_server": cfg.Reva.StorageOC.ExposeDataServer, // TODO use cfg.Reva.SStorageOCData.URL, ? - "data_server_url": cfg.Reva.StorageOC.DataServerURL, + "data_server_url": cfg.Reva.StorageOC.DataServerURL, + "enable_home_creation": cfg.Reva.StorageOC.EnableHomeCreation, }, }, }, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 0418f06cfe..dd3a2be14b 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -91,7 +91,7 @@ func StorageOCData(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.StorageOCData.Prefix, "driver": cfg.Reva.StorageOCData.Driver, "drivers": map[string]interface{}{ - "eoshome": map[string]interface{}{ + "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "share_folder": cfg.Reva.Storages.EOS.ShareFolder, @@ -107,21 +107,17 @@ func StorageOCData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.UserLayout, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - "share_folder": cfg.Reva.Storages.Local.ShareFolder, - }, - "localhome": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - "share_folder": cfg.Reva.Storages.Local.ShareFolder, - "user_layout": cfg.Reva.Storages.Local.UserLayout, + "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ diff --git a/pkg/command/storagepubliclink.go b/pkg/command/storagepubliclink.go index 5642897c0b..d40313156f 100644 --- a/pkg/command/storagepubliclink.go +++ b/pkg/command/storagepubliclink.go @@ -68,11 +68,8 @@ func StoragePublicLink(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.StoragePublicLink.MaxCPUs, - "tracing_enabled": cfg.Tracing.Enabled, - "tracing_endpoint": cfg.Tracing.Endpoint, - "tracing_collector": cfg.Tracing.Collector, - "tracing_service_name": "storage-public-links", + "max_cpus": cfg.Reva.StoragePublicLink.MaxCPUs, + "tracing_enabled": true, }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index 346fcb98ec..a2fa370d06 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -89,7 +89,7 @@ func StorageRoot(cfg *config.Config) *cli.Command { "storageprovider": map[string]interface{}{ "driver": cfg.Reva.StorageRoot.Driver, "drivers": map[string]interface{}{ - "eoshome": map[string]interface{}{ + "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, @@ -103,21 +103,17 @@ func StorageRoot(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.UserLayout, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - "share_folder": cfg.Reva.Storages.Local.ShareFolder, - }, - "localhome": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - "share_folder": cfg.Reva.Storages.Local.ShareFolder, - "user_layout": cfg.Reva.Storages.Local.UserLayout, + "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, "user_layout": cfg.Reva.Storages.OwnCloud.Layout, }, "s3": map[string]interface{}{ @@ -129,10 +125,11 @@ func StorageRoot(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.Storages.S3.Prefix, }, }, - "mount_path": cfg.Reva.StorageRoot.MountPath, - "mount_id": cfg.Reva.StorageRoot.MountID, - "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, - "data_server_url": cfg.Reva.StorageRoot.DataServerURL, + "mount_path": cfg.Reva.StorageRoot.MountPath, + "mount_id": cfg.Reva.StorageRoot.MountID, + "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, + "data_server_url": cfg.Reva.StorageRoot.DataServerURL, + "enable_home_creation": cfg.Reva.StorageRoot.EnableHomeCreation, }, }, }, diff --git a/pkg/config/config.go b/pkg/config/config.go index 804a5b9696..942b48b767 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -68,11 +68,12 @@ type Users struct { // StoragePort defines the available storage configuration. type StoragePort struct { Port - Driver string - MountPath string - MountID string - ExposeDataServer bool - DataServerURL string + Driver string + MountPath string + MountID string + ExposeDataServer bool + DataServerURL string + EnableHomeCreation bool // for HTTP ports with only one http service Prefix string @@ -84,7 +85,9 @@ type PublicStorage struct { StoragePort PublicShareProviderAddr string + StorageProviderAddr string UserProviderAddr string + MountID string } // StorageConfig combines all available storage driver configuration parts. @@ -142,6 +145,9 @@ type DriverEOS struct { // UseKeyTabAuth changes will authenticate requests by using an EOS keytab. UseKeytab bool + // EnableHome enables the creation of home directories. + EnableHome bool + // SecProtocol specifies the xrootd security protocol to use between the server and EOS. SecProtocol string @@ -151,15 +157,13 @@ type DriverEOS struct { // SingleUsername is the username to use when SingleUserMode is enabled SingleUsername string - // UserLayout of the users home dir path - UserLayout string + // Layout of the users home dir path + Layout string } // DriverLocal defines the available local storage driver configuration. type DriverLocal struct { - Root string - ShareFolder string - UserLayout string + Root string } // DriverOwnCloud defines the available ownCloud storage driver configuration. @@ -168,6 +172,7 @@ type DriverOwnCloud struct { Layout string Redis string Scan bool + EnableHome bool } // DriverS3 defines the available S3 storage driver configuration. diff --git a/pkg/flagset/common.go b/pkg/flagset/common.go deleted file mode 100644 index ad3c1e8f09..0000000000 --- a/pkg/flagset/common.go +++ /dev/null @@ -1,93 +0,0 @@ -package flagset - -import ( - "github.com/micro/cli/v2" - "github.com/owncloud/ocis-reva/pkg/config" -) - -func commonTracingWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, - } -} - -func commonDebugWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - } -} - -func commonSecretWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, - } -} - -func commonGatewayWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - &cli.StringFlag{ - Name: "gateway-url", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_GATEWAY_URL"}, - Destination: &cfg.Reva.Gateway.URL, - }, - } -} diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index 1d80b5fb51..73b59be376 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -189,7 +189,7 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "frontend-url", Value: "https://localhost:9200", - Usage: "URL to use for the frontend service", + Usage: "URL to use for the reva service", EnvVars: []string{"REVA_FRONTEND_URL"}, Destination: &cfg.Reva.Frontend.URL, }, @@ -203,28 +203,28 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "users-url", Value: "localhost:9144", - Usage: "URL to use for the users service", + Usage: "URL to use for the reva service", EnvVars: []string{"REVA_USERS_URL"}, Destination: &cfg.Reva.Users.URL, }, &cli.StringFlag{ Name: "auth-basic-url", Value: "localhost:9146", - Usage: "URL to use for the auth basic service", + Usage: "URL to use for the reva service", EnvVars: []string{"REVA_AUTH_BASIC_URL"}, Destination: &cfg.Reva.AuthBasic.URL, }, &cli.StringFlag{ Name: "auth-bearer-url", Value: "localhost:9148", - Usage: "URL to use for the auth bearer service", + Usage: "URL to use for the reva service", EnvVars: []string{"REVA_AUTH_BEARER_URL"}, Destination: &cfg.Reva.AuthBearer.URL, }, &cli.StringFlag{ Name: "sharing-url", Value: "localhost:9150", - Usage: "URL to use for the sharing service", + Usage: "URL to use for the reva service", EnvVars: []string{"REVA_SHARING_URL"}, Destination: &cfg.Reva.Sharing.URL, }, @@ -232,21 +232,21 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "storage-root-url", Value: "localhost:9152", - Usage: "URL to use for the root storage service", + Usage: "URL to use for the reva service", EnvVars: []string{"REVA_STORAGE_ROOT_URL"}, Destination: &cfg.Reva.StorageRoot.URL, }, &cli.StringFlag{ Name: "storage-root-mount-path", Value: "/", - Usage: "root storage mount path", + Usage: "mount path", EnvVars: []string{"REVA_STORAGE_ROOT_MOUNT_PATH"}, Destination: &cfg.Reva.StorageRoot.MountPath, }, &cli.StringFlag{ Name: "storage-root-mount-id", Value: "1284d238-aa92-42ce-bdc4-0b0000009152", - Usage: "root storage mount id", + Usage: "mount id", EnvVars: []string{"REVA_STORAGE_ROOT_MOUNT_ID"}, Destination: &cfg.Reva.StorageRoot.MountID, }, @@ -254,14 +254,14 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "storage-home-url", Value: "localhost:9154", - Usage: "URL to use for the home storage service", + Usage: "URL to use for the reva service", EnvVars: []string{"REVA_STORAGE_HOME_URL"}, Destination: &cfg.Reva.StorageHome.URL, }, &cli.StringFlag{ Name: "storage-home-mount-path", Value: "/home", - Usage: "home storage mount path", + Usage: "mount path", EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_PATH"}, Destination: &cfg.Reva.StorageHome.MountPath, }, @@ -270,21 +270,21 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "storage-eos-url", Value: "localhost:9158", - Usage: "URL to use for the eos storage service", + Usage: "URL to use for the reva service", EnvVars: []string{"REVA_STORAGE_EOS_URL"}, Destination: &cfg.Reva.StorageEOS.URL, }, &cli.StringFlag{ Name: "storage-eos-mount-path", Value: "/eos", - Usage: "eos storage mount path", + Usage: "mount path", EnvVars: []string{"REVA_STORAGE_EOS_MOUNT_PATH"}, Destination: &cfg.Reva.StorageEOS.MountPath, }, &cli.StringFlag{ Name: "storage-eos-mount-id", Value: "1284d238-aa92-42ce-bdc4-0b0000009158", - Usage: "eos storage mount id", + Usage: "mount id", EnvVars: []string{"REVA_STORAGE_EOS_MOUNT_ID"}, Destination: &cfg.Reva.StorageEOS.MountID, }, @@ -292,45 +292,30 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "storage-oc-url", Value: "localhost:9162", - Usage: "URL to use for the oc storage service", + Usage: "URL to use for the reva service", EnvVars: []string{"REVA_STORAGE_OC_URL"}, Destination: &cfg.Reva.StorageOC.URL, }, &cli.StringFlag{ Name: "storage-oc-mount-path", Value: "/oc", - Usage: "oc storage mount path", + Usage: "mount path", EnvVars: []string{"REVA_STORAGE_OC_MOUNT_PATH"}, Destination: &cfg.Reva.StorageOC.MountPath, }, &cli.StringFlag{ Name: "storage-oc-mount-id", Value: "1284d238-aa92-42ce-bdc4-0b0000009162", - Usage: "oc storage mount id", + Usage: "mount id", EnvVars: []string{"REVA_STORAGE_OC_MOUNT_ID"}, Destination: &cfg.Reva.StorageOC.MountID, }, - &cli.StringFlag{ Name: "public-links-url", - Value: "localhost:9170", + Value: "localhost:10054", Usage: "URL to use for the public links service", EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_URL"}, Destination: &cfg.Reva.StoragePublicLink.URL, }, - &cli.StringFlag{ - Name: "public-links-mount-path", - Value: "/public/", - Usage: "public links storage mount path", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH"}, - Destination: &cfg.Reva.StoragePublicLink.MountPath, - }, - &cli.StringFlag{ - Name: "public-links-mount-id", - Value: "e1a73ede-549b-4226-abdf-40e69ca8230d", - Usage: "public links storage mount id", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_ID"}, - Destination: &cfg.Reva.StoragePublicLink.MountID, - }, } } diff --git a/pkg/flagset/storagedrivers.go b/pkg/flagset/storagedrivers.go deleted file mode 100644 index f8dc1279f0..0000000000 --- a/pkg/flagset/storagedrivers.go +++ /dev/null @@ -1,178 +0,0 @@ -package flagset - -import ( - "os" - - "github.com/micro/cli/v2" - "github.com/owncloud/ocis-reva/pkg/config" -) - -// StorageDriversWithConfig applies cfg to the root flagset -func storageDriversWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "/eos/dockertest/reva/users", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "/Shares", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Value: true, - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-user-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users internal home dir path, in addition to {{.Username}}, and {{.Mail}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_USER_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.UserLayout, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - &cli.StringFlag{ - Name: "storage-local-share-folder", - Value: "/MyShares", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_LOCAL_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.Local.UserLayout, - }, - &cli.StringFlag{ - Name: "storage-local-user-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users internal home dir path, in addition to {{.Username}}, and {{.Mail}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, - EnvVars: []string{"REVA_STORAGE_LOCAL_USER_LAYOUT"}, - Destination: &cfg.Reva.Storages.Local.UserLayout, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - } -} diff --git a/pkg/flagset/storageeos.go b/pkg/flagset/storageeos.go index 8247b17d90..e30283254a 100644 --- a/pkg/flagset/storageeos.go +++ b/pkg/flagset/storageeos.go @@ -1,21 +1,92 @@ package flagset import ( + "os" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageEOSWithConfig applies cfg to the root flagset func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { - flags := commonTracingWithConfig(cfg) + return []cli.Flag{ - flags = append(flags, commonSecretWithConfig(cfg)...) + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, - flags = append(flags, commonDebugWithConfig(cfg)...) + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9159", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_EOS_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageEOS.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, - flags = append(flags, storageDriversWithConfig(cfg)...) + // REVA - flags = append(flags, + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage oc &cli.StringFlag{ Name: "network", @@ -38,13 +109,6 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_ADDR"}, Destination: &cfg.Reva.StorageEOS.Addr, }, - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9159", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_EOS_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageEOS.DebugAddr, - }, &cli.StringFlag{ Name: "url", Value: "localhost:9158", @@ -58,9 +122,10 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { Usage: "--service storageprovider [--service otherservice]", EnvVars: []string{"REVA_STORAGE_EOS_SERVICES"}, }, + &cli.StringFlag{ Name: "driver", - Value: "eoshome", + Value: "eos", Usage: "storage driver, eg. local, eos, owncloud or s3", EnvVars: []string{"REVA_STORAGE_EOS_DRIVER"}, Destination: &cfg.Reva.StorageEOS.Driver, @@ -93,7 +158,176 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageEOS.DataServerURL, }, - ) + &cli.BoolFlag{ + Name: "enable-home-creation", + Value: false, + Usage: "if enabled home dirs will be automatically created", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME_CREATION"}, + Destination: &cfg.Reva.StorageEOS.EnableHomeCreation, + }, - return flags + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "/eos/dockertest/reva", + Usage: "Namespace for metadata operations", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "/Shares", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Master EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Slave EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Usage: "the username to use when SingleUserMode is enabled", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: false, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, + } } diff --git a/pkg/flagset/storageeosdata.go b/pkg/flagset/storageeosdata.go index 583f5773b5..10d651c508 100644 --- a/pkg/flagset/storageeosdata.go +++ b/pkg/flagset/storageeosdata.go @@ -1,23 +1,92 @@ package flagset import ( + "os" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageEOSDataWithConfig applies cfg to the root flagset func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { - flags := commonTracingWithConfig(cfg) + return []cli.Flag{ - flags = append(flags, commonGatewayWithConfig(cfg)...) + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, - flags = append(flags, commonSecretWithConfig(cfg)...) + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9161", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageEOSData.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, - flags = append(flags, commonDebugWithConfig(cfg)...) + // REVA - flags = append(flags, storageDriversWithConfig(cfg)...) + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, - flags = append(flags, + // Services + + // Storage eos data &cli.StringFlag{ Name: "network", @@ -40,13 +109,6 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_DATA_ADDR"}, Destination: &cfg.Reva.StorageEOSData.Addr, }, - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9161", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageEOSData.DebugAddr, - }, &cli.StringFlag{ Name: "url", Value: "localhost:9160", @@ -62,7 +124,7 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "driver", - Value: "eoshome", + Value: "eos", Usage: "storage driver, eg. local, eos, owncloud or s3", EnvVars: []string{"REVA_STORAGE_EOS_DATA_DRIVER"}, Destination: &cfg.Reva.StorageEOSData.Driver, @@ -81,6 +143,179 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_DATA_TEMP_FOLDER"}, Destination: &cfg.Reva.StorageEOSData.TempFolder, }, - ) - return flags + + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "/eos/dockertest/reva", + Usage: "Namespace for metadata operations", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "/Shares", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Master EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Slave EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Usage: "the username to use when SingleUserMode is enabled", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: false, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, + + // Gateway + + &cli.StringFlag{ + Name: "gateway-url", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_GATEWAY_URL"}, + Destination: &cfg.Reva.Gateway.URL, + }, + } } diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index 6737f3417b..4c5cc8d506 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -1,21 +1,92 @@ package flagset import ( + "os" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageHomeWithConfig applies cfg to the root flagset func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { - flags := commonTracingWithConfig(cfg) + return []cli.Flag{ - flags = append(flags, commonSecretWithConfig(cfg)...) + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, - flags = append(flags, commonDebugWithConfig(cfg)...) + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9155", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_HOME_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageHome.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, - flags = append(flags, storageDriversWithConfig(cfg)...) + // REVA - flags = append(flags, + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage home &cli.StringFlag{ Name: "network", @@ -38,13 +109,6 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_ADDR"}, Destination: &cfg.Reva.StorageHome.Addr, }, - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9155", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_HOME_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageHome.DebugAddr, - }, &cli.StringFlag{ Name: "url", Value: "localhost:9154", @@ -96,7 +160,177 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageHome.DataServerURL, }, - ) + &cli.BoolFlag{ + Name: "enable-home-creation", + Value: true, + Usage: "if enabled home dirs will be automatically created", + EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"}, + Destination: &cfg.Reva.StorageHome.EnableHomeCreation, + }, - return flags + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "/eos/dockertest/reva/users", + Usage: "Namespace for metadata operations", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "/Shares", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Master EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Slave EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Value: true, + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Usage: "the username to use when SingleUserMode is enabled", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: true, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, + } } diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 026b166b94..8b8393a651 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -1,23 +1,92 @@ package flagset import ( + "os" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageHomeDataWithConfig applies cfg to the root flagset func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { - flags := commonTracingWithConfig(cfg) + return []cli.Flag{ - flags = append(flags, commonGatewayWithConfig(cfg)...) + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, - flags = append(flags, commonSecretWithConfig(cfg)...) + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9157", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_HOME_DATA_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageHomeData.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, - flags = append(flags, commonDebugWithConfig(cfg)...) + // REVA - flags = append(flags, storageDriversWithConfig(cfg)...) + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, - flags = append(flags, + // Services + + // Storage home data &cli.StringFlag{ Name: "network", @@ -40,13 +109,6 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DATA_ADDR"}, Destination: &cfg.Reva.StorageHomeData.Addr, }, - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9157", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_HOME_DATA_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageHomeData.DebugAddr, - }, &cli.StringFlag{ Name: "url", Value: "localhost:9156", @@ -81,7 +143,180 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DATA_TEMP_FOLDER"}, Destination: &cfg.Reva.StorageHomeData.TempFolder, }, - ) - return flags + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "/eos/dockertest/reva/users", + Usage: "Namespace for metadata operations", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "/Shares", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Master EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Slave EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Value: true, + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Usage: "the username to use when SingleUserMode is enabled", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: true, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, + + // Gateway + + &cli.StringFlag{ + Name: "gateway-url", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_GATEWAY_URL"}, + Destination: &cfg.Reva.Gateway.URL, + }, + } } diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index c8322db5e6..62d58bccbe 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -1,21 +1,92 @@ package flagset import ( + "os" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageOCWithConfig applies cfg to the root flagset func StorageOCWithConfig(cfg *config.Config) []cli.Flag { - flags := commonTracingWithConfig(cfg) + return []cli.Flag{ - flags = append(flags, commonSecretWithConfig(cfg)...) + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, - flags = append(flags, commonDebugWithConfig(cfg)...) + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9163", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_OC_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageOC.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, - flags = append(flags, storageDriversWithConfig(cfg)...) + // REVA - flags = append(flags, + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage oc &cli.StringFlag{ Name: "network", @@ -38,13 +109,6 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_ADDR"}, Destination: &cfg.Reva.StorageOC.Addr, }, - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9163", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_OC_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageOC.DebugAddr, - }, &cli.StringFlag{ Name: "url", Value: "localhost:9162", @@ -58,6 +122,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { Usage: "--service storageprovider [--service otherservice]", EnvVars: []string{"REVA_STORAGE_OC_SERVICES"}, }, + &cli.StringFlag{ Name: "driver", Value: "owncloud", @@ -93,7 +158,179 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageOC.DataServerURL, }, - ) + &cli.BoolFlag{ + Name: "enable-home-creation", + Value: false, + Usage: "if enabled home dirs will be automatically created", + EnvVars: []string{"REVA_STORAGE_OC_ENABLE_HOME_CREATION"}, + Destination: &cfg.Reva.StorageOC.EnableHomeCreation, + }, - return flags + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "", + Usage: "Namespace for metadata operations", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-example.org", + Usage: "URL of the Master EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-example.org", + Usage: "URL of the Slave EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Value: "", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Value: "", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Value: "", + Usage: "the username to use when SingleUserMode is enabled", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: false, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, + } } diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index a228d712be..bb2a645adb 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -1,23 +1,93 @@ package flagset import ( + "os" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageOCDataWithConfig applies cfg to the root flagset func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { - flags := commonTracingWithConfig(cfg) + return []cli.Flag{ - flags = append(flags, commonGatewayWithConfig(cfg)...) + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, - flags = append(flags, commonSecretWithConfig(cfg)...) + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9165", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageOCData.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, - flags = append(flags, commonDebugWithConfig(cfg)...) + // REVA - flags = append(flags, storageDriversWithConfig(cfg)...) + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage oc data - flags = append(flags, &cli.StringFlag{ Name: "network", Value: "tcp", @@ -39,13 +109,6 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DATA_ADDR"}, Destination: &cfg.Reva.StorageOCData.Addr, }, - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9165", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageOCData.DebugAddr, - }, &cli.StringFlag{ Name: "url", Value: "localhost:9164", @@ -80,7 +143,182 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DATA_TEMP_FOLDER"}, Destination: &cfg.Reva.StorageOCData.TempFolder, }, - ) - return flags + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "", + Usage: "Namespace for metadata operations", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-example.org", + Usage: "URL of the Master EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-example.org", + Usage: "URL of the Slave EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Value: "", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Value: "", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Value: "", + Usage: "the username to use when SingleUserMode is enabled", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: false, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, + + // Gateway + + &cli.StringFlag{ + Name: "gateway-url", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_GATEWAY_URL"}, + Destination: &cfg.Reva.Gateway.URL, + }, + } } diff --git a/pkg/flagset/storagepubliclink.go b/pkg/flagset/storagepubliclink.go index 3d0d57fd0c..a665d959f7 100644 --- a/pkg/flagset/storagepubliclink.go +++ b/pkg/flagset/storagepubliclink.go @@ -7,17 +7,74 @@ import ( // StoragePublicLink applies cfg to the root flagset func StoragePublicLink(cfg *config.Config) []cli.Flag { - flags := commonTracingWithConfig(cfg) - - flags = append(flags, commonGatewayWithConfig(cfg)...) - - flags = append(flags, commonSecretWithConfig(cfg)...) - - flags = append(flags, commonDebugWithConfig(cfg)...) - - flags = append(flags, storageDriversWithConfig(cfg)...) - - flags = append(flags, + return []cli.Flag{ + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:10053", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DEBUG_ADDR"}, + Destination: &cfg.Reva.StoragePublicLink.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, &cli.StringFlag{ Name: "network", Value: "tcp", @@ -34,25 +91,11 @@ func StoragePublicLink(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "addr", - Value: "0.0.0.0:9170", + Value: "localhost:10054", Usage: "Address to bind reva service", EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_ADDR"}, Destination: &cfg.Reva.StoragePublicLink.Addr, }, - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9171", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DEBUG_ADDR"}, - Destination: &cfg.Reva.StoragePublicLink.DebugAddr, - }, - &cli.StringFlag{ - Name: "url", - Value: "localhost:9170", - Usage: "URL to use for the reva service", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_URL"}, - Destination: &cfg.Reva.StoragePublicLink.URL, - }, &cli.StringSliceFlag{ Name: "service", Value: cli.NewStringSlice("storageprovider"), @@ -75,11 +118,18 @@ func StoragePublicLink(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.StoragePublicLink.UserProviderAddr, }, &cli.StringFlag{ - Name: "mount-path", - Value: "/public/", - Usage: "mount path", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH"}, - Destination: &cfg.Reva.StoragePublicLink.MountPath, + Name: "storage_provider_addr", + Value: "localhost:9154", + Usage: "storage provider service address", + EnvVars: []string{"REVA_STORAGE_PUBLICLINK_STORAGE_PROVIDER_ADDR"}, + Destination: &cfg.Reva.StoragePublicLink.StorageProviderAddr, + }, + &cli.StringFlag{ + Name: "driver", + Value: "owncloud", + Usage: "storage driver, eg. local, eos, owncloud or s3", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DRIVER"}, + Destination: &cfg.Reva.StoragePublicLink.Driver, }, &cli.StringFlag{ Name: "mount-id", @@ -95,8 +145,33 @@ func StoragePublicLink(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_EXPOSE_DATA_SERVER"}, Destination: &cfg.Reva.StoragePublicLink.ExposeDataServer, }, - // has no data provider, only redirects to the actual storage - ) - - return flags + &cli.StringFlag{ + Name: "data-server-url", + Value: "http://localhost:9156/data", + Usage: "data server url", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DATA_SERVER_URL"}, + Destination: &cfg.Reva.StoragePublicLink.DataServerURL, + }, + &cli.BoolFlag{ + Name: "enable-home-creation", + Value: true, + Usage: "if enabled home dirs will be automatically created", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_ENABLE_HOME_CREATION"}, + Destination: &cfg.Reva.StoragePublicLink.EnableHomeCreation, + }, + &cli.StringFlag{ + Name: "mount-path", + Value: "/public/", + Usage: "mount path", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH"}, + Destination: &cfg.Reva.StoragePublicLink.MountPath, + }, + &cli.StringFlag{ + Name: "gateway-url", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_GATEWAY_URL"}, + Destination: &cfg.Reva.Gateway.URL, + }, + } } diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 03a6cc7c26..31b136d762 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -1,21 +1,92 @@ package flagset import ( + "os" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageRootWithConfig applies cfg to the root flagset func StorageRootWithConfig(cfg *config.Config) []cli.Flag { - flags := commonTracingWithConfig(cfg) + return []cli.Flag{ - flags = append(flags, commonSecretWithConfig(cfg)...) + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, - flags = append(flags, commonDebugWithConfig(cfg)...) + // debug ports are the odd ports + &cli.StringFlag{ + Name: "debug-addr", + Value: "0.0.0.0:9153", + Usage: "Address to bind debug server", + EnvVars: []string{"REVA_STORAGE_ROOT_DEBUG_ADDR"}, + Destination: &cfg.Reva.StorageRoot.DebugAddr, + }, + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, - flags = append(flags, storageDriversWithConfig(cfg)...) + // REVA - flags = append(flags, + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, + + // Services + + // Storage root &cli.StringFlag{ Name: "network", @@ -38,13 +109,6 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_ROOT_ADDR"}, Destination: &cfg.Reva.StorageRoot.Addr, }, - &cli.StringFlag{ - Name: "debug-addr", - Value: "0.0.0.0:9153", - Usage: "Address to bind debug server", - EnvVars: []string{"REVA_STORAGE_ROOT_DEBUG_ADDR"}, - Destination: &cfg.Reva.StorageRoot.DebugAddr, - }, &cli.StringFlag{ Name: "url", Value: "localhost:9152", @@ -93,7 +157,164 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_ROOT_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageRoot.DataServerURL, }, - ) + &cli.BoolFlag{ + Name: "enable-home-creation", + Usage: "if enabled home dirs will be automatically created", + EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"}, + Destination: &cfg.Reva.StorageHome.EnableHomeCreation, + }, - return flags + // Storage drivers + + // Eos + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "", + Usage: "Namespace for metadata operations", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.Namespace, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-example.org", + Usage: "URL of the Master EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-example.org", + Usage: "URL of the Slave EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.EOS.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Value: "", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Value: "", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Value: "", + Usage: "the username to use when SingleUserMode is enabled", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.EOS.Layout, + }, + + // local + + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, + Destination: &cfg.Reva.Storages.Local.Root, + }, + + // owncloud + + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: false, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.OwnCloud.Layout, + }, + } } From 24b547178292a205bfc2808a3e94eeb2f5858174 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 26 Jun 2020 11:38:38 +0200 Subject: [PATCH 149/346] Prettify reva-server log output --- .drone.star | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.drone.star b/.drone.star index d30b4a8334..74a8cdffc4 100644 --- a/.drone.star +++ b/.drone.star @@ -286,16 +286,16 @@ def testing(ctx): }, 'commands': [ 'mkdir -p /srv/app/tmp/reva', - 'bin/ocis-reva gateway &', - 'bin/ocis-reva users &', - 'bin/ocis-reva auth-basic &', - 'bin/ocis-reva auth-bearer &', - 'bin/ocis-reva sharing &', - 'bin/ocis-reva storage-home &', - 'bin/ocis-reva storage-home-data &', - 'bin/ocis-reva storage-oc &', - 'bin/ocis-reva storage-oc-data &', - 'bin/ocis-reva frontend' + 'bin/ocis-reva --log-level debug --log-pretty gateway &', + 'bin/ocis-reva --log-level debug --log-pretty users &', + 'bin/ocis-reva --log-level debug --log-pretty auth-basic &', + 'bin/ocis-reva --log-level debug --log-pretty auth-bearer &', + 'bin/ocis-reva --log-level debug --log-pretty sharing &', + 'bin/ocis-reva --log-level debug --log-pretty storage-home &', + 'bin/ocis-reva --log-level debug --log-pretty storage-home-data &', + 'bin/ocis-reva --log-level debug --log-pretty storage-oc &', + 'bin/ocis-reva --log-level debug --log-pretty storage-oc-data &', + 'bin/ocis-reva --log-level debug --log-pretty frontend' ], 'volumes': [ { From 78d4063d116d139e5360be9c84f12b17691aa9b5 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 26 Jun 2020 11:45:58 +0200 Subject: [PATCH 150/346] Add public link service to Drone --- .drone.star | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/.drone.star b/.drone.star index 74a8cdffc4..8fe2fb017b 100644 --- a/.drone.star +++ b/.drone.star @@ -72,16 +72,17 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'commands': [ 'apk add mailcap', 'mkdir -p /srv/app/tmp/reva', - 'bin/ocis-reva gateway &', - 'bin/ocis-reva users &', - 'bin/ocis-reva auth-basic &', - 'bin/ocis-reva auth-bearer &', - 'bin/ocis-reva sharing &', - 'bin/ocis-reva storage-home &', - 'bin/ocis-reva storage-home-data &', - 'bin/ocis-reva storage-oc &', - 'bin/ocis-reva storage-oc-data &', - 'bin/ocis-reva frontend' + 'bin/ocis-reva --log-level debug --log-pretty gateway &', + 'bin/ocis-reva --log-level debug --log-pretty users &', + 'bin/ocis-reva --log-level debug --log-pretty auth-basic &', + 'bin/ocis-reva --log-level debug --log-pretty auth-bearer &', + 'bin/ocis-reva --log-level debug --log-pretty sharing &', + 'bin/ocis-reva --log-level debug --log-pretty storage-home &', + 'bin/ocis-reva --log-level debug --log-pretty storage-home-data &', + 'bin/ocis-reva --log-level debug --log-pretty storage-oc &', + 'bin/ocis-reva --log-level debug --log-pretty storage-oc-data &', + 'bin/ocis-reva --log-level debug --log-pretty frontend &', + 'bin/ocis-reva --log-level debug --log-pretty reva-storage-public-link' ], 'volumes': [ { @@ -295,7 +296,8 @@ def testing(ctx): 'bin/ocis-reva --log-level debug --log-pretty storage-home-data &', 'bin/ocis-reva --log-level debug --log-pretty storage-oc &', 'bin/ocis-reva --log-level debug --log-pretty storage-oc-data &', - 'bin/ocis-reva --log-level debug --log-pretty frontend' + 'bin/ocis-reva --log-level debug --log-pretty frontend &', + 'bin/ocis-reva --log-level debug --log-pretty reva-storage-public-link' ], 'volumes': [ { From b53f4a93641c3584ecac2a60ff9aece9e92e26af Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 26 Jun 2020 12:00:01 +0200 Subject: [PATCH 151/346] Update Drone API tests commit for public links --- .drone.star | 2 +- go.sum | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 8fe2fb017b..6c03e65750 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'tests-adjust-public-share-test-issues', '9d143b41bda3d5c2bb265a220d0c5dfe8eb584f9'), + apiTests(ctx, 'master', 'ad274cb7f2a20ffba7fb9c65726ae9ef9270e4c0'), ] stages = [ diff --git a/go.sum b/go.sum index e790e10dbe..1f87603c7b 100644 --- a/go.sum +++ b/go.sum @@ -93,6 +93,7 @@ github.com/aws/aws-sdk-go v1.32.5/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU github.com/aws/aws-sdk-go v1.32.8/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.9 h1:ai+NZsCV+Z97+jqIKya49gbCObOay9FKww0/VCNuXug= github.com/aws/aws-sdk-go v1.32.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.32.10 h1:cEJTxGcBGlsM2tN36MZQKhlK93O9HrnaRs+lq2f0zN8= github.com/aws/aws-sdk-go v1.32.10/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= From b922f76060257e763d764d8a3d38c3b60024e639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 26 Jun 2020 15:53:41 +0200 Subject: [PATCH 152/346] fix eos-home config (#304) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix eos-home config Signed-off-by: Jörn Friedrich Dreyer * update reva to v0.1.1-0.20200626111234-e21c32db9614 Signed-off-by: Jörn Friedrich Dreyer --- go.mod | 2 +- go.sum | 2 ++ pkg/command/gateway.go | 8 ++++---- pkg/command/storageeos.go | 19 ++++++++++++++++++- pkg/command/storageeosdata.go | 19 ++++++++++++++++++- pkg/command/storagehome.go | 19 ++++++++++++++++++- pkg/command/storagehomedata.go | 21 +++++++++++++++++++-- pkg/command/storageoc.go | 19 ++++++++++++++++++- pkg/command/storageocdata.go | 19 ++++++++++++++++++- pkg/command/storageroot.go | 21 ++++++++++++++++++++- pkg/flagset/gateway.go | 11 ++++++++++- pkg/flagset/storagehome.go | 4 +++- 12 files changed, 149 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 39472cec21..aa98b01b12 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200626083045-8d345749ae0d + github.com/cs3org/reva v0.1.1-0.20200626111234-e21c32db9614 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 1f87603c7b..3d122baa53 100644 --- a/go.sum +++ b/go.sum @@ -192,6 +192,8 @@ github.com/cs3org/reva v0.1.1-0.20200625144447-03e6aba90379 h1:IvAcfPZ7Ii9KAPBGL github.com/cs3org/reva v0.1.1-0.20200625144447-03e6aba90379/go.mod h1:qmaOljVCmm3kcRS8RW5E34Voly4dDCFdlllj/j4KW/0= github.com/cs3org/reva v0.1.1-0.20200626083045-8d345749ae0d h1:SCUMOhkYTEjFA7IsMlj49bF+cCgTEbfnBme0VFqOhuc= github.com/cs3org/reva v0.1.1-0.20200626083045-8d345749ae0d/go.mod h1:wunIwvRI7Pd+QFB0YCK+jdAtq0udQzjt8iG7WQ+LLrs= +github.com/cs3org/reva v0.1.1-0.20200626111234-e21c32db9614 h1:FAk15Sgy59cuPL9M7HEIq0/KX+hTJWFa013ALJHDKcQ= +github.com/cs3org/reva v0.1.1-0.20200626111234-e21c32db9614/go.mod h1:wunIwvRI7Pd+QFB0YCK+jdAtq0udQzjt8iG7WQ+LLrs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index 08d8201dea..842063bcd3 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -130,10 +130,10 @@ func Gateway(cfg *config.Config) *cli.Command { "static": map[string]interface{}{ "home_provider": cfg.Reva.Gateway.HomeProvider, "rules": map[string]interface{}{ - cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL, - cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, - cfg.Reva.StorageHome.MountPath: cfg.Reva.StorageHome.URL, - // the home storage has no mount id. In responses it returns the mount id of the actual storage + cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL, + cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, + cfg.Reva.StorageHome.MountPath: cfg.Reva.StorageHome.URL, + cfg.Reva.StorageHome.MountID: cfg.Reva.StorageHome.URL, cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL, cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL, cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL, diff --git a/pkg/command/storageeos.go b/pkg/command/storageeos.go index 04ef99807f..15c79ef94a 100644 --- a/pkg/command/storageeos.go +++ b/pkg/command/storageeos.go @@ -105,7 +105,24 @@ func StorageEOS(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, + }, + "eoshome": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, }, }, diff --git a/pkg/command/storageeosdata.go b/pkg/command/storageeosdata.go index eee78a9253..019af03902 100644 --- a/pkg/command/storageeosdata.go +++ b/pkg/command/storageeosdata.go @@ -107,7 +107,24 @@ func StorageEOSData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, + }, + "eoshome": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, }, }, diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 7e0f583a9f..69f5343752 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -105,7 +105,24 @@ func StorageHome(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": true, + "user_layout": cfg.Reva.Storages.EOS.Layout, + }, + "eoshome": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index a00657bd1f..1f11b18112 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -93,9 +93,27 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "drivers": map[string]interface{}{ "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "share_folder": cfg.Reva.Storages.EOS.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "user_layout": cfg.Reva.Storages.EOS.Layout, + }, + "eoshome": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, "master_url": cfg.Reva.Storages.EOS.MasterURL, "slave_url": cfg.Reva.Storages.EOS.SlaveURL, @@ -107,7 +125,6 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index 34b24e43d1..60b940a40d 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -105,7 +105,24 @@ func StorageOC(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, + }, + "eoshome": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index dd3a2be14b..e171da587e 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -107,7 +107,24 @@ func StorageOCData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, + "user_layout": cfg.Reva.Storages.EOS.Layout, + }, + "eoshome": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index a2fa370d06..c562743d24 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -91,6 +91,26 @@ func StorageRoot(cfg *config.Config) *cli.Command { "drivers": map[string]interface{}{ "eos": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "user_layout": cfg.Reva.Storages.EOS.Layout, + }, + "eoshome": map[string]interface{}{ + "namespace": cfg.Reva.Storages.EOS.Namespace, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, "master_url": cfg.Reva.Storages.EOS.MasterURL, @@ -103,7 +123,6 @@ func StorageRoot(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "enable_home": cfg.Reva.Storages.EOS.EnableHome, "user_layout": cfg.Reva.Storages.EOS.Layout, }, "local": map[string]interface{}{ diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index 73b59be376..6ca1bb378b 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -265,7 +265,16 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_PATH"}, Destination: &cfg.Reva.StorageHome.MountPath, }, - // The home storage has no mount id. In responses it returns the mount id of the actual storage + &cli.StringFlag{ + Name: "storage-home-mount-id", + // This is tho mount id of the /oc storage + // set it to 1284d238-aa92-42ce-bdc4-0b0000009158 for /eos + // Value: "1284d238-aa92-42ce-bdc4-0b0000009162", /os + Value: "1284d238-aa92-42ce-bdc4-0b0000009154", // /home + Usage: "mount id", + EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_ID"}, + Destination: &cfg.Reva.StorageHome.MountID, + }, &cli.StringFlag{ Name: "storage-eos-url", diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index 4c5cc8d506..fcfd595526 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -141,7 +141,9 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { Name: "mount-id", // This is tho mount id of the /oc storage // set it to 1284d238-aa92-42ce-bdc4-0b0000009158 for /eos - Value: "1284d238-aa92-42ce-bdc4-0b0000009162", + // Value: "1284d238-aa92-42ce-bdc4-0b0000009162", /os + + Value: "1284d238-aa92-42ce-bdc4-0b0000009154", // /home Usage: "mount id", EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_ID"}, Destination: &cfg.Reva.StorageHome.MountID, From 43cfe73adbe1283ab375698792a4faae9e58259f Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 26 Jun 2020 16:05:24 +0200 Subject: [PATCH 153/346] Prepare release 0.7.0 --- .../{unreleased => 0.7.0_2020-06-26}/update-reva-to-20200625.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.7.0_2020-06-26}/update-reva-to-20200625.md (100%) diff --git a/changelog/unreleased/update-reva-to-20200625.md b/changelog/0.7.0_2020-06-26/update-reva-to-20200625.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200625.md rename to changelog/0.7.0_2020-06-26/update-reva-to-20200625.md From 2753c150bab0a6f2952defde290a7940a02727be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 26 Jun 2020 14:09:21 +0000 Subject: [PATCH 154/346] Automated changelog update [skip ci] --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 599ee3fc97..77af924ddd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,34 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.6.0...master + +## Summary + +* Enhancement - Update reva to v0.1.1-0.20200625112940-6a2822cb3f15: [#261](https://github.com/owncloud/ocis-reva/pull/261) + +## Details + +* Enhancement - Update reva to v0.1.1-0.20200625112940-6a2822cb3f15: [#261](https://github.com/owncloud/ocis-reva/pull/261) + + - Updated reva to v0.1.1-0.20200625112940-6a2822cb3f15 (#261) - TUS upload support through + datagateway (#261, reva/#878, reva/#888) - Added support for differing metrics path for + Prometheus to Mentix (reva/#875) - More data exported by Mentix (reva/#881) - Implementation + of file operations in public folder shares (#49, #293, reva/#877) - Make httpclient trust + local certificates for now (reva/#880) + + https://github.com/owncloud/ocis-reva/issues/49 + https://github.com/owncloud/ocis-reva/issues/293 + https://github.com/owncloud/ocis-reva/issues/261 + https://github.com/owncloud/ocis-reva/pull/261 + https://github.com/cs3org/reva/pull/875 + https://github.com/cs3org/reva/pull/877 + https://github.com/cs3org/reva/pull/878 + https://github.com/cs3org/reva/pull/881 + https://github.com/cs3org/reva/pull/880 + https://github.com/cs3org/reva/pull/888 + # Changelog for [0.6.0] (2020-06-24) The following sections list the changes in ocis-reva 0.6.0. From 494c22c58619b2448bd170dd8fa20b368fc2bef4 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Fri, 26 Jun 2020 16:36:10 +0200 Subject: [PATCH 155/346] Add changelog for PR#304 --- changelog/0.7.0_2020-06-26/update-reva-to-20200625.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/changelog/0.7.0_2020-06-26/update-reva-to-20200625.md b/changelog/0.7.0_2020-06-26/update-reva-to-20200625.md index 0f38d7c530..7ea17d01e8 100644 --- a/changelog/0.7.0_2020-06-26/update-reva-to-20200625.md +++ b/changelog/0.7.0_2020-06-26/update-reva-to-20200625.md @@ -1,11 +1,13 @@ -Enhancement: update reva to v0.1.1-0.20200625112940-6a2822cb3f15 +Enhancement: update reva to v0.1.1-0.20200626111234-e21c32db9614 -- Updated reva to v0.1.1-0.20200625112940-6a2822cb3f15 (#261) +- Updated reva to v0.1.1-0.20200626111234-e21c32db9614 (#304) - TUS upload support through datagateway (#261, reva/#878, reva/#888) - Added support for differing metrics path for Prometheus to Mentix (reva/#875) - More data exported by Mentix (reva/#881) - Implementation of file operations in public folder shares (#49, #293, reva/#877) - Make httpclient trust local certificates for now (reva/#880) +- EOS homes are not configured with an enable-flag anymore, but with a dedicated storage driver. + We're using it now and adapted default configs of storages (reva/#891, #304) https://github.com/owncloud/ocis-reva/pull/261 https://github.com/cs3org/reva/pull/875 @@ -17,3 +19,5 @@ https://github.com/cs3org/reva/pull/878 https://github.com/cs3org/reva/pull/881 https://github.com/cs3org/reva/pull/880 https://github.com/cs3org/reva/pull/888 +https://github.com/owncloud/ocis-reva/pull/304 +https://github.com/cs3org/reva/pull/891 From f5258a72387e7fa07bab39f31de7045a35f3ff47 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 26 Jun 2020 15:20:02 +0000 Subject: [PATCH 156/346] Automated changelog update [skip ci] --- CHANGELOG.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77af924ddd..1824c6a1d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,22 +1,24 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.7.0] (2020-06-26) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.7.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.6.0...master +[0.7.0]: https://github.com/owncloud/ocis-reva/compare/v0.6.0...v0.7.0 ## Summary -* Enhancement - Update reva to v0.1.1-0.20200625112940-6a2822cb3f15: [#261](https://github.com/owncloud/ocis-reva/pull/261) +* Enhancement - Update reva to v0.1.1-0.20200626111234-e21c32db9614: [#261](https://github.com/owncloud/ocis-reva/pull/261) ## Details -* Enhancement - Update reva to v0.1.1-0.20200625112940-6a2822cb3f15: [#261](https://github.com/owncloud/ocis-reva/pull/261) +* Enhancement - Update reva to v0.1.1-0.20200626111234-e21c32db9614: [#261](https://github.com/owncloud/ocis-reva/pull/261) - - Updated reva to v0.1.1-0.20200625112940-6a2822cb3f15 (#261) - TUS upload support through + - Updated reva to v0.1.1-0.20200626111234-e21c32db9614 (#304) - TUS upload support through datagateway (#261, reva/#878, reva/#888) - Added support for differing metrics path for Prometheus to Mentix (reva/#875) - More data exported by Mentix (reva/#881) - Implementation of file operations in public folder shares (#49, #293, reva/#877) - Make httpclient trust - local certificates for now (reva/#880) + local certificates for now (reva/#880) - EOS homes are not configured with an enable-flag + anymore, but with a dedicated storage driver. We're using it now and adapted default configs of + storages (reva/#891, #304) https://github.com/owncloud/ocis-reva/issues/49 https://github.com/owncloud/ocis-reva/issues/293 @@ -28,6 +30,8 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/cs3org/reva/pull/881 https://github.com/cs3org/reva/pull/880 https://github.com/cs3org/reva/pull/888 + https://github.com/owncloud/ocis-reva/pull/304 + https://github.com/cs3org/reva/pull/891 # Changelog for [0.6.0] (2020-06-24) From 8487060637409c0e81a2f3fd641b1d07f64053e1 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 29 Jun 2020 11:59:22 +0200 Subject: [PATCH 157/346] Update reva to v0.1.1-0.20200629094927-e33d65230abc Brings in public link single file share --- changelog/unreleased/update-reva-to-20200629.md | 8 ++++++++ go.mod | 2 +- go.sum | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/update-reva-to-20200629.md diff --git a/changelog/unreleased/update-reva-to-20200629.md b/changelog/unreleased/update-reva-to-20200629.md new file mode 100644 index 0000000000..ea5b699bb2 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200629.md @@ -0,0 +1,8 @@ +Enhancement: update reva to v0.1.1-0.20200629094927-e33d65230abc + +- Update reva to v0.1.1-0.20200629094927-e33d65230abc (#309) +- Fix public link file share (#278, reva/#895) + +https://github.com/owncloud/ocis-reva/pull/309 +https://github.com/owncloud/ocis-reva/issues/278 +https://github.com/cs3org/reva/pull/895 diff --git a/go.mod b/go.mod index aa98b01b12..3935a800a9 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200626111234-e21c32db9614 + github.com/cs3org/reva v0.1.1-0.20200629094927-e33d65230abc github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 3d122baa53..c0913a8227 100644 --- a/go.sum +++ b/go.sum @@ -95,6 +95,7 @@ github.com/aws/aws-sdk-go v1.32.9 h1:ai+NZsCV+Z97+jqIKya49gbCObOay9FKww0/VCNuXug github.com/aws/aws-sdk-go v1.32.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.10 h1:cEJTxGcBGlsM2tN36MZQKhlK93O9HrnaRs+lq2f0zN8= github.com/aws/aws-sdk-go v1.32.10/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.32.11/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -194,6 +195,8 @@ github.com/cs3org/reva v0.1.1-0.20200626083045-8d345749ae0d h1:SCUMOhkYTEjFA7IsM github.com/cs3org/reva v0.1.1-0.20200626083045-8d345749ae0d/go.mod h1:wunIwvRI7Pd+QFB0YCK+jdAtq0udQzjt8iG7WQ+LLrs= github.com/cs3org/reva v0.1.1-0.20200626111234-e21c32db9614 h1:FAk15Sgy59cuPL9M7HEIq0/KX+hTJWFa013ALJHDKcQ= github.com/cs3org/reva v0.1.1-0.20200626111234-e21c32db9614/go.mod h1:wunIwvRI7Pd+QFB0YCK+jdAtq0udQzjt8iG7WQ+LLrs= +github.com/cs3org/reva v0.1.1-0.20200629094927-e33d65230abc h1:AJuhNHmSHjkfDPvU3H2gu25UBUBxfWm0Ily+CJO2xe4= +github.com/cs3org/reva v0.1.1-0.20200629094927-e33d65230abc/go.mod h1:aTjgnI4OFVK+1Ed6EtyDw5Q7Ujs9sSbY74d3I4Ph/xY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From a2488978eb73214d9a60bde376722e07794a6306 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Mon, 29 Jun 2020 13:20:34 +0000 Subject: [PATCH 158/346] Automated changelog update [skip ci] --- CHANGELOG.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1824c6a1d5..8b2267dff4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,24 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.7.0...master + +## Summary + +* Enhancement - Update reva to v0.1.1-0.20200629094927-e33d65230abc: [#309](https://github.com/owncloud/ocis-reva/pull/309) + +## Details + +* Enhancement - Update reva to v0.1.1-0.20200629094927-e33d65230abc: [#309](https://github.com/owncloud/ocis-reva/pull/309) + + - Update reva to v0.1.1-0.20200629094927-e33d65230abc (#309) - Fix public link file share + (#278, reva/#895) + + https://github.com/owncloud/ocis-reva/issues/278 + https://github.com/owncloud/ocis-reva/pull/309 + https://github.com/cs3org/reva/pull/895 + # Changelog for [0.7.0] (2020-06-26) The following sections list the changes in ocis-reva 0.7.0. From e8ed98983510f2aa64bba110fb8064a4d2fa3a16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Mon, 29 Jun 2020 15:45:37 +0200 Subject: [PATCH 159/346] update reva to 20200629 (#313) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .../unreleased/update-reva-to-20200629.md | 9 +- go.mod | 2 +- go.sum | 121 +----------------- 3 files changed, 11 insertions(+), 121 deletions(-) diff --git a/changelog/unreleased/update-reva-to-20200629.md b/changelog/unreleased/update-reva-to-20200629.md index ea5b699bb2..c1639afdd1 100644 --- a/changelog/unreleased/update-reva-to-20200629.md +++ b/changelog/unreleased/update-reva-to-20200629.md @@ -1,8 +1,13 @@ -Enhancement: update reva to v0.1.1-0.20200629094927-e33d65230abc +Enhancement: update reva to v0.1.1-0.20200629131207-04298ea1c088 - Update reva to v0.1.1-0.20200629094927-e33d65230abc (#309) -- Fix public link file share (#278, reva/#895) +- Fix public link file share (#278, reva/#895, reva/#900) +- Delete public share (reva/#899) +- Updated reva to v0.1.1-0.20200629131207-04298ea1c088 (#313) https://github.com/owncloud/ocis-reva/pull/309 https://github.com/owncloud/ocis-reva/issues/278 https://github.com/cs3org/reva/pull/895 +https://github.com/cs3org/reva/pull/899 +https://github.com/cs3org/reva/pull/900 +https://github.com/owncloud/ocis-reva/pull/313 diff --git a/go.mod b/go.mod index 3935a800a9..f9e5231d34 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200629094927-e33d65230abc + github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index c0913a8227..15a2e43088 100644 --- a/go.sum +++ b/go.sum @@ -95,18 +95,17 @@ github.com/aws/aws-sdk-go v1.32.9 h1:ai+NZsCV+Z97+jqIKya49gbCObOay9FKww0/VCNuXug github.com/aws/aws-sdk-go v1.32.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.10 h1:cEJTxGcBGlsM2tN36MZQKhlK93O9HrnaRs+lq2f0zN8= github.com/aws/aws-sdk-go v1.32.10/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.32.11 h1:1nYF+Tfccn/hnAZsuwPPMSCVUVnx3j6LKOpx/WhgH0A= github.com/aws/aws-sdk-go v1.32.11/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40 h1:y4B3+GPxKlrigF1ha5FFErxK+sr6sWxQovRMzwMhejo= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= @@ -115,10 +114,8 @@ github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QH github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM= -github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/cheggaaa/pb v1.0.28/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= @@ -155,53 +152,18 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMElOWxok= -github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cs3org/cato v0.0.0-20200609102907-4116d2de0add/go.mod h1:6GOQIYvO+ZepxBKY9geuIAF7qfozDeDsTrX0BW9LZ0k= github.com/cs3org/cato v0.0.0-20200618163134-e83dd323b17e/go.mod h1:6GOQIYvO+ZepxBKY9geuIAF7qfozDeDsTrX0BW9LZ0k= -github.com/cs3org/go-cs3apis v0.0.0-20200423154403-462ce7762d4a/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/go-cs3apis v0.0.0-20200515145316-7048e6a5a73d h1:toZvBLH1cbHT65kv6xYPd9QqwLUHwOAVHqe9j4obAq4= -github.com/cs3org/go-cs3apis v0.0.0-20200515145316-7048e6a5a73d/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/go-cs3apis v0.0.0-20200622121618-dc54dffb5e44/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/go-cs3apis v0.0.0-20200625121012-96e791152b14 h1:ORPIrxw/T33ALlpaon9IMRzf54ArJQWCYlcECZiRmEc= github.com/cs3org/go-cs3apis v0.0.0-20200625121012-96e791152b14/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v0.1.1-0.20200520150229-ce94fda7436f/go.mod h1:fVZ7IXTQaxNit5Q9yA+x6ciJmUpEHgBrxtwmiGGBY40= -github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928 h1:6dIWlFuZNGz3tmK8IF/1JQ/TkmTj0/v3dSt0Zi1zrX0= -github.com/cs3org/reva v0.1.1-0.20200528123359-7d74bf8e9928/go.mod h1:ig/TuMCG/l6vjOvFkj/4tU27PBvcig+Kfjc4mF++BwQ= -github.com/cs3org/reva v0.1.1-0.20200529120551-4f2d9c85d3c9 h1:j1jhTTKkXyRL4mZrfXn86poq8z3lRVV7N/KcuDVEudo= -github.com/cs3org/reva v0.1.1-0.20200529120551-4f2d9c85d3c9/go.mod h1:FOU15UeWYXIckxEOwqjjoNAK/1EQrdRTuiX6x66b3Ts= -github.com/cs3org/reva v0.1.1-0.20200603071553-e05a87521618 h1:W9qBdHKhY2PE5e//dWgHB/j3r8DDORImt0VvYZ7vtA0= -github.com/cs3org/reva v0.1.1-0.20200603071553-e05a87521618/go.mod h1:FOU15UeWYXIckxEOwqjjoNAK/1EQrdRTuiX6x66b3Ts= -github.com/cs3org/reva v0.1.1-0.20200603124923-9b9f2e5af0e9 h1:aYxzZ3anTavS2xyxEuPNFvUtbwmv0f+raWbRd/YE2yE= -github.com/cs3org/reva v0.1.1-0.20200603124923-9b9f2e5af0e9/go.mod h1:FOU15UeWYXIckxEOwqjjoNAK/1EQrdRTuiX6x66b3Ts= -github.com/cs3org/reva v0.1.1-0.20200617172225-dfea5c2ff6c0 h1:RCAI+z9vEqOGEovjf6LkrTfZ2UVE7N5Y2xaKKerpNFA= -github.com/cs3org/reva v0.1.1-0.20200617172225-dfea5c2ff6c0/go.mod h1:OXjpyIi2H5hAE9PMCYk93kDUm4vurLEYrrffYhpEcJ8= -github.com/cs3org/reva v0.1.1-0.20200618092755-8c9ddc62216c h1:JwkomzMEuj0cefV0wgZBqlUR01FZv3NbCa3BC3/C79w= -github.com/cs3org/reva v0.1.1-0.20200618092755-8c9ddc62216c/go.mod h1:OXjpyIi2H5hAE9PMCYk93kDUm4vurLEYrrffYhpEcJ8= -github.com/cs3org/reva v0.1.1-0.20200619075422-8ac72153b3a6 h1:f9ALlpWtyy0PX4RLgCjXs1AHD/7VUt/Qu7lSAS8U+yY= -github.com/cs3org/reva v0.1.1-0.20200619075422-8ac72153b3a6/go.mod h1:tFcYbIPMOKMITn2b7j4i4oNoiakNXkCD8Bx6pwf7N/U= -github.com/cs3org/reva v0.1.1-0.20200622084157-4925dc73ec86 h1:TSG6ZPczyWmyFl74vu+uJHwN7puEkjkcmMRH+F2Lgcw= -github.com/cs3org/reva v0.1.1-0.20200622084157-4925dc73ec86/go.mod h1:tFcYbIPMOKMITn2b7j4i4oNoiakNXkCD8Bx6pwf7N/U= -github.com/cs3org/reva v0.1.1-0.20200624063447-db5e6635d5f0 h1:zzwEoAxYKhEbWzfaa43Va1pO4OSXWiS+1P/CsLn2als= -github.com/cs3org/reva v0.1.1-0.20200624063447-db5e6635d5f0/go.mod h1:AwSrblO/VrqvX1M+y+p0+4rSUAO0/PGVA1FR0GKYANs= -github.com/cs3org/reva v0.1.1-0.20200625112940-6a2822cb3f15 h1:ND/a8QsIUhL12gZerFMv/YnoWhpt23xW3ExxfT2oHP0= -github.com/cs3org/reva v0.1.1-0.20200625112940-6a2822cb3f15/go.mod h1:7i7pnpPAO0eKy/9+az2YndOVFub0gZCDenpU6EyZqJI= -github.com/cs3org/reva v0.1.1-0.20200625144447-03e6aba90379 h1:IvAcfPZ7Ii9KAPBGLTIxXuN6qqJSZWRIlYiErThobzM= -github.com/cs3org/reva v0.1.1-0.20200625144447-03e6aba90379/go.mod h1:qmaOljVCmm3kcRS8RW5E34Voly4dDCFdlllj/j4KW/0= -github.com/cs3org/reva v0.1.1-0.20200626083045-8d345749ae0d h1:SCUMOhkYTEjFA7IsMlj49bF+cCgTEbfnBme0VFqOhuc= -github.com/cs3org/reva v0.1.1-0.20200626083045-8d345749ae0d/go.mod h1:wunIwvRI7Pd+QFB0YCK+jdAtq0udQzjt8iG7WQ+LLrs= -github.com/cs3org/reva v0.1.1-0.20200626111234-e21c32db9614 h1:FAk15Sgy59cuPL9M7HEIq0/KX+hTJWFa013ALJHDKcQ= -github.com/cs3org/reva v0.1.1-0.20200626111234-e21c32db9614/go.mod h1:wunIwvRI7Pd+QFB0YCK+jdAtq0udQzjt8iG7WQ+LLrs= -github.com/cs3org/reva v0.1.1-0.20200629094927-e33d65230abc h1:AJuhNHmSHjkfDPvU3H2gu25UBUBxfWm0Ily+CJO2xe4= -github.com/cs3org/reva v0.1.1-0.20200629094927-e33d65230abc/go.mod h1:aTjgnI4OFVK+1Ed6EtyDw5Q7Ujs9sSbY74d3I4Ph/xY= +github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088 h1:oCRNwQ4M1JoROK/jlYK1Cj1ElXky7ubFO8AA/YKMNfA= +github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088/go.mod h1:aTjgnI4OFVK+1Ed6EtyDw5Q7Ujs9sSbY74d3I4Ph/xY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= @@ -232,7 +194,6 @@ github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/forestgiant/sliceutil v0.0.0-20160425183142-94783f95db6c/go.mod h1:pFdJbAhRf7rh6YYMUdIQGyzne6zYL1tCUW8QV2B3UfY= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsouza/go-dockerclient v1.4.4/go.mod h1:PrwszSL5fbmsESocROrOGq/NULMXRw+bajY0ltzD6MA= github.com/fsouza/go-dockerclient v1.6.0/go.mod h1:YWwtNPuL4XTX1SKJQk86cWPmmqwx+4np9qfPbb+znGc= @@ -241,7 +202,6 @@ github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aev github.com/go-acme/lego/v3 v3.1.0/go.mod h1:074uqt+JS6plx+c9Xaiz6+L+GBb+7itGtzfcDM2AhEE= github.com/go-acme/lego/v3 v3.3.0/go.mod h1:iGSY2vQrvQs3WezicSB/oVbO2eCrD88dpWPwb1qLqu0= github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= -github.com/go-chi/chi v4.0.2+incompatible h1:maB6vn6FqCxrpz4FqWdh4+lwpyZIQS7YEAUcHlgXVRs= github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-cmd/cmd v1.0.5/go.mod h1:y8q8qlK5wQibcw63djSl/ntiHUHXHGdCkPk0j4QeW4s= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= @@ -249,7 +209,6 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-ini/ini v1.44.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-log/log v0.1.0 h1:wudGTNsiGzrD5ZjgIkVZ517ugi2XRe9Q/xRCzwEO4/U= github.com/go-log/log v0.1.0/go.mod h1:4mBwpdRMFLiuXZDCwU2lKQFsoSCo72j3HqBK9d81N2M= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= @@ -471,7 +430,6 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -488,14 +446,12 @@ github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OI github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gophercloud/gophercloud v0.3.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= github.com/gopherjs/gopherjs v0.0.0-20181004151105-1babbf986f6f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg= github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= @@ -522,9 +478,7 @@ github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FK github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3 h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5/go.mod h1:0YZ2wQSuwviXXXGUiK6zXzskyBLAbLXhamxzcFHSLoM= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -534,9 +488,7 @@ github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= @@ -559,10 +511,8 @@ github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/justinas/alice v1.2.0 h1:+MHSA/vccVCF4Uq37S42jwlkvI2Xzl7zTPCN5BnZNVo= github.com/justinas/alice v1.2.0/go.mod h1:fN5HRH/reO/zrUflLfTN43t3vXvKzvZIENsNEe7i7qA= github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/karrick/godirwalk v1.7.7/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= @@ -575,14 +525,12 @@ github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgo github.com/kolo/xmlrpc v0.0.0-20190717152603-07c4ee3fd181/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ= github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= @@ -598,7 +546,6 @@ github.com/lucas-clemente/quic-go v0.13.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgV github.com/lucas-clemente/quic-go v0.14.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= github.com/luna-duclos/instrumentedsql v1.1.2/go.mod h1:4LGbEqDnopzNAiyxPPDXhLspyunZxgPTMJBKtC6U0BQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/markbates/deplist v1.0.4/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM= github.com/markbates/deplist v1.0.5/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM= @@ -636,22 +583,18 @@ github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4f github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/mattn/goveralls v0.0.5 h1:spfq8AyZ0cCk57Za6/juJ5btQxeE1FaEGMdfcI+XO48= github.com/mattn/goveralls v0.0.5/go.mod h1:Xg2LHi51faXLyKXwsndxiW6uxEEQT9+3sjGzzwU4xy0= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mholt/certmagic v0.7.5/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= github.com/mholt/certmagic v0.8.3/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= github.com/mholt/certmagic v0.9.1/go.mod h1:nu8jbsbtwK4205EDH/ZUMTKsfYpJA1Q7MKXHfgTihNw= -github.com/micro/cli v0.2.0 h1:ut3rV5JWqZjsXIa2MvGF+qMUP8DAUTvHX9Br5gO4afA= github.com/micro/cli v0.2.0/go.mod h1:jRT9gmfVKWSS6pkKcXQ8YhUyj6bzwxK8Fp5b0Y7qNnk= github.com/micro/cli/v2 v2.1.1 h1:uFw0SMIKmGuyHIm8lXns/NOn7V62bM5y7DnlxUM+BEQ= github.com/micro/cli/v2 v2.1.1/go.mod h1:EguNh6DAoWKm9nmk+k/Rg0H3lQnDxqzu5x5srOtGtYg= github.com/micro/go-micro v1.16.0/go.mod h1:A0F58bHLh2m0LAI9QyhvmbN8c1cxhAZo3cM6s+iDsrM= -github.com/micro/go-micro v1.18.0 h1:gP70EZVHpJuUIT0YWth192JmlIci+qMOEByHm83XE9E= github.com/micro/go-micro v1.18.0/go.mod h1:klwUJL1gkdY1MHFyz+fFJXn52dKcty4hoe95Mp571AA= github.com/micro/go-micro/v2 v2.0.0 h1:bMx549RwJ9Yuiui8cDVlfYhVNP8I8KBJTMyLthEXpRw= github.com/micro/go-micro/v2 v2.0.0/go.mod h1:v7QP5UhKRt37ixjJe8DouWmg0/eE6dltr5h0idJ9BpE= github.com/micro/go-plugins/wrapper/trace/opencensus/v2 v2.0.1/go.mod h1:QrkcwcDtIs2hIJpIEhozekyf6Rfz5C36kFI8+zzCpX0= -github.com/micro/mdns v0.3.0 h1:bYycYe+98AXR3s8Nq5qvt6C573uFTDPIYzJemWON0QE= github.com/micro/mdns v0.3.0/go.mod h1:KJ0dW7KmicXU2BV++qkLlmHYcVv7/hHnbtguSWt9Aoc= github.com/micro/protoc-gen-micro v1.0.0/go.mod h1:C8ij4DJhapBmypcT00AXdb0cZ675/3PqUO02buWWqbE= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= @@ -661,7 +604,6 @@ github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3N github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.27 h1:aEH/kqUzUxGJ/UHcEKdJY+ugH6WEzsEBBSPa8zuy1aM= github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= -github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -669,19 +611,14 @@ github.com/mitchellh/go-vnc v0.0.0-20150629162542-723ed9867aed/go.mod h1:3rdaFaC github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= github.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.3.0 h1:iDwIio/3gk2QtLLEsqU5lInaMzos0hDTz8a6lazSFVw= -github.com/mitchellh/mapstructure v1.3.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.3.1 h1:cCBH2gTD2K0OtLlv/Y5H01VQCqmlDxz30kS5Y5bqfLA= github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg= github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q= github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= @@ -708,10 +645,8 @@ github.com/nrdcg/auroradns v1.0.0/go.mod h1:6JPXKzIRzZzMqtTDgueIhTi6rFf1QvYE/Hzq github.com/nrdcg/dnspod-go v0.3.0/go.mod h1:vZSoFSFeQVm2gWLMkyX61LZ8HI3BaqtHZWgPTGKr6KQ= github.com/nrdcg/goinwx v0.6.1/go.mod h1:XPiut7enlbEdntAqalBIqcYcTEVhpv/dKWgDCX2SwKQ= github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw= -github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/oleiade/reflections v1.0.0 h1:0ir4pc6v8/PJ0yw5AEtMddfXpWBXg9cnG7SgSoJuCgY= github.com/oleiade/reflections v1.0.0/go.mod h1:RbATFBbKYkVdqmSFtx13Bb/tVhR0lgOBXunWTZKeL4w= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -732,18 +667,11 @@ github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJ github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/ory/fosite v0.29.0/go.mod h1:0atSZmXO7CAcs6NPMI/Qtot8tmZYj04Nddoold4S2h0= -github.com/ory/fosite v0.31.0/go.mod h1:lSSqjo8Kr/U1P3kJWxsNGHmq7TnH/7pS1ijvQRT7G+g= -github.com/ory/fosite v0.31.3 h1:5WjLwfs+yUALZjzKUKGN/M+ddBJ5Ol6NawxuCO2TuAg= -github.com/ory/fosite v0.31.3/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= -github.com/ory/fosite v0.32.0 h1:g89HkBt0dgm+HPrbsYZTmyks1NIw0BH/UlEaw84e1ss= -github.com/ory/fosite v0.32.0/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= -github.com/ory/fosite v0.32.1/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= github.com/ory/fosite v0.32.2 h1:iRV495P/9EyoYQ8qEHYxFQeeYCdDFawqjAML+qiMF9s= github.com/ory/fosite v0.32.2/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= github.com/ory/go-acc v0.0.0-20181118080137-ddc355013f90/go.mod h1:sxnvPCxChFuSmTJGj8FdMupeq1BezCiEpDjTUXQ4hf4= github.com/ory/go-acc v0.2.1 h1:Pwcmwd/cSnwJsYN76+w3HU7oXeWFTkwj/KUj1qGDrVw= github.com/ory/go-acc v0.2.1/go.mod h1:0omgy2aa3nDBJ45VAKeLHH8ccPBudxLeic4xiDRtug0= -github.com/ory/go-convenience v0.1.0 h1:zouLKfF2GoSGnJwGq+PE/nJAE6dj2Zj5QlTgmMTsTS8= github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= github.com/ory/gojsonreference v0.0.0-20190720135523-6b606c2d8ee8/go.mod h1:wsH1C4nIeeQClDtD5AH7kF1uTS6zWyqfjVDTmB0Em7A= github.com/ory/gojsonschema v1.1.1-0.20190919112458-f254ca73d5e9/go.mod h1:BNZpdJgB74KOLSsWFvzw6roXg1I6O51WO8roMmW+T7Y= @@ -758,12 +686,10 @@ github.com/owncloud/ocis-pkg/v2 v2.2.1 h1:LK7WxHYugEFQ9NHTOz0EP8DRjbt51wXhyqruV0 github.com/owncloud/ocis-pkg/v2 v2.2.1/go.mod h1:MXv7QzsYsu4YWuyJxhq1kLLmJa/r5gbqHe1FXulMHaw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= -github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= -github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4= github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -771,43 +697,33 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= -github.com/pkg/xattr v0.4.1 h1:dhclzL6EqOXNaPDWqoeb9tIxATfBSmjqL0b4DpSjwRw= github.com/pkg/xattr v0.4.1/go.mod h1:W2cGD0TBEus7MkUgv0tNZ9JutLtVO3cXu+IBRuHqnFs= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 h1:J9b7z+QKAmPf4YLrFg6oQUotqHQeUNWwkvo7jZp1GLU= github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.2.1 h1:JnMpQc6ppsNgw9QPAGF6Dod479itz7lvlsMzzNayLOI= github.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee h1:iBZPTYkGLvdu6+A5TsMUJQkQX9Ad4aCEnSQtdxPuTCQ= github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.7.0 h1:L+1lyG48J1zAQXA3RBX/nG/B3gjlHq0zTt2tlbJLyCY= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.6/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/statsd_exporter v0.15.0 h1:UiwC1L5HkxEPeapXdm2Ye0u1vUJfTj7uwT5yydYpa1E= github.com/prometheus/statsd_exporter v0.15.0/go.mod h1:Dv8HnkoLQkeEjkIE4/2ndAA7WL1zHKK7WMqFQqu72rw= @@ -822,18 +738,13 @@ github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= -github.com/rs/zerolog v1.18.0 h1:CbAm3kP2Tptby1i9sYy2MGRg0uxIN9cyDb59Ys7W8z8= -github.com/rs/zerolog v1.18.0/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= github.com/rs/zerolog v1.19.0 h1:hYz4ZVdUgjXTBUmrkrw55j1nHx68LfOKIQk5IYtyScg= github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo= github.com/rubenv/sql-migrate v0.0.0-20190212093014-1007f53448d7/go.mod h1:WS0rl9eEliYI8DPnr3TOwz4439pay+qNgzJoVya/DmY= -github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sacloud/libsacloud v1.26.1/go.mod h1:79ZwATmHLIFZIMd7sxA3LwzVy/B77uj3LDoToVTxDoQ= github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4= @@ -851,7 +762,6 @@ github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1: github.com/shurcooL/highlight_go v0.0.0-20170515013102-78fb10f4a5f8/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= github.com/shurcooL/octicon v0.0.0-20180602230221-c42b0e3b24d9/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.1.0/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A= @@ -859,14 +769,11 @@ github.com/sirupsen/logrus v1.1.1/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8 github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= @@ -874,25 +781,19 @@ github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= -github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI= github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.6.1 h1:VPZzIkznI1YhVMRi6vNFLHSwhnhReBfgTxIPccpfdZk= github.com/spf13/viper v1.6.1/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -904,7 +805,6 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/subosito/gotenv v1.1.1/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= @@ -915,7 +815,6 @@ github.com/tidwall/sjson v1.0.4/go.mod h1:bURseu1nuBkFpIES5cz6zBtjmYeOQmEESshn7V github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4o2HM0m3DZYQWsj6/MEowD57VzoH0v3d7igeFY= github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2 h1:rcji4q9wMuSrz0tZt3kgIr/3WsB5kUqFja6RrgeCGEo= @@ -923,7 +822,6 @@ github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2/go.mod h1:ygrT4B9ZSb27d github.com/tus/tusd v1.3.0 h1:fGxm7iCUHHP2fxmV+3u7ZQcGMBWR23Y/Suxiri66+hA= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= -github.com/uber/jaeger-client-go v2.20.1+incompatible h1:HgqpYBng0n7tLJIlyT4kPCIv5XgCsF+kai1NnnrJzEU= github.com/uber/jaeger-client-go v2.20.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -954,8 +852,6 @@ go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4 h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -991,7 +887,6 @@ golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -1039,7 +934,6 @@ golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1076,7 +970,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1129,13 +1022,11 @@ golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191105231009-c1f44814a5cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191113165036-4c7a9d0fe056/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1203,7 +1094,6 @@ google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1 google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.14.0 h1:uMf5uLi4eQMRrMKhCplNik4U4H8Z6C1br3zOtAa/aDE= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1241,8 +1131,6 @@ google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRn google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -1254,10 +1142,8 @@ google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyz google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= gopkg.in/Acconut/lockfile.v1 v1.1.0/go.mod h1:6UCz3wJ8tSFUsPR6uP/j8uegEtDuEEqFxlpi0JI4Umw= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= -gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1279,7 +1165,6 @@ gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.1 h1:GyboHr4UqMiLUybYjd22ZjQIKEJEpgtLXtuGbR21Oho= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU= gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= gopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw= gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw= From 26fcbce8938e3809d8e6c386a370065d320081f0 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Mon, 29 Jun 2020 15:53:15 +0200 Subject: [PATCH 160/346] Prepare 0.8.0 --- .../{unreleased => 0.8.0_2020-06-29}/update-reva-to-20200629.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.8.0_2020-06-29}/update-reva-to-20200629.md (100%) diff --git a/changelog/unreleased/update-reva-to-20200629.md b/changelog/0.8.0_2020-06-29/update-reva-to-20200629.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200629.md rename to changelog/0.8.0_2020-06-29/update-reva-to-20200629.md From dedae473f0524313504f0946d8c58565dc806a91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Mon, 29 Jun 2020 13:57:06 +0000 Subject: [PATCH 161/346] Automated changelog update [skip ci] --- CHANGELOG.md | 16 ++++++++++------ go.sum | 6 ++++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b2267dff4..1ac5779083 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,23 +1,27 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.8.0] (2020-06-29) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.8.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.7.0...master +[0.8.0]: https://github.com/owncloud/ocis-reva/compare/v0.7.0...v0.8.0 ## Summary -* Enhancement - Update reva to v0.1.1-0.20200629094927-e33d65230abc: [#309](https://github.com/owncloud/ocis-reva/pull/309) +* Enhancement - Update reva to v0.1.1-0.20200629131207-04298ea1c088: [#309](https://github.com/owncloud/ocis-reva/pull/309) ## Details -* Enhancement - Update reva to v0.1.1-0.20200629094927-e33d65230abc: [#309](https://github.com/owncloud/ocis-reva/pull/309) +* Enhancement - Update reva to v0.1.1-0.20200629131207-04298ea1c088: [#309](https://github.com/owncloud/ocis-reva/pull/309) - Update reva to v0.1.1-0.20200629094927-e33d65230abc (#309) - Fix public link file share - (#278, reva/#895) + (#278, reva/#895, reva/#900) - Delete public share (reva/#899) - Updated reva to + v0.1.1-0.20200629131207-04298ea1c088 (#313) https://github.com/owncloud/ocis-reva/issues/278 https://github.com/owncloud/ocis-reva/pull/309 https://github.com/cs3org/reva/pull/895 + https://github.com/cs3org/reva/pull/899 + https://github.com/cs3org/reva/pull/900 + https://github.com/owncloud/ocis-reva/pull/313 # Changelog for [0.7.0] (2020-06-26) diff --git a/go.sum b/go.sum index 15a2e43088..5aa5f2d9c0 100644 --- a/go.sum +++ b/go.sum @@ -446,6 +446,7 @@ github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OI github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= @@ -488,6 +489,7 @@ github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= @@ -604,6 +606,7 @@ github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3N github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.27 h1:aEH/kqUzUxGJ/UHcEKdJY+ugH6WEzsEBBSPa8zuy1aM= github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -614,6 +617,7 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg= github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -783,6 +787,7 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= +github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= @@ -790,6 +795,7 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6 github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI= github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= From 856d53ba492d2c1514f53c520c89b6b5891ad4b5 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 30 Jun 2020 10:39:53 +0545 Subject: [PATCH 162/346] Adjust apiTests to use core commit --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 6c03e65750..db3722bb2a 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', 'ad274cb7f2a20ffba7fb9c65726ae9ef9270e4c0'), + apiTests(ctx, 'master', '0dc76b2452ef0c4388af765a738679097bd1491d'), ] stages = [ From 9efcb23f8379bbb907f2b5b637254c6ac4ca5cab Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 30 Jun 2020 10:15:02 +0200 Subject: [PATCH 163/346] Update reva to v0.1.1-0.20200630075923-39a90d431566 Fixes for public link Webdav COPY and password field in response. --- changelog/unreleased/update-reva-to-20200630.md | 11 +++++++++++ go.mod | 2 +- go.sum | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/update-reva-to-20200630.md diff --git a/changelog/unreleased/update-reva-to-20200630.md b/changelog/unreleased/update-reva-to-20200630.md new file mode 100644 index 0000000000..777390293a --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200630.md @@ -0,0 +1,11 @@ +Enhancement: update reva to v0.1.1-0.20200630075923-39a90d431566 + +- Update reva to v0.1.1-0.20200630075923-39a90d431566 (#320) +- Return special value for public link password (#294, reva/#904) +- Fix public stat and listcontainer response to contain the correct prefix (#310, reva/#902) + +https://github.com/owncloud/ocis-reva/pull/320 +https://github.com/owncloud/ocis-reva/issues/310 +https://github.com/cs3org/reva/pull/902 +https://github.com/owncloud/ocis-reva/issues/294 +https://github.com/cs3org/reva/pull/904 diff --git a/go.mod b/go.mod index f9e5231d34..314c9ac623 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088 + github.com/cs3org/reva v0.1.1-0.20200630075923-39a90d431566 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 5aa5f2d9c0..9a197c9365 100644 --- a/go.sum +++ b/go.sum @@ -161,6 +161,8 @@ github.com/cs3org/go-cs3apis v0.0.0-20200625121012-96e791152b14 h1:ORPIrxw/T33AL github.com/cs3org/go-cs3apis v0.0.0-20200625121012-96e791152b14/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088 h1:oCRNwQ4M1JoROK/jlYK1Cj1ElXky7ubFO8AA/YKMNfA= github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088/go.mod h1:aTjgnI4OFVK+1Ed6EtyDw5Q7Ujs9sSbY74d3I4Ph/xY= +github.com/cs3org/reva v0.1.1-0.20200630075923-39a90d431566 h1:U70hDCk1IUY8i/lHMMdS18AyLLcicyn/G8LTHMvT/rE= +github.com/cs3org/reva v0.1.1-0.20200630075923-39a90d431566/go.mod h1:aTjgnI4OFVK+1Ed6EtyDw5Q7Ujs9sSbY74d3I4Ph/xY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= From 9d423a1a787e8f2b6941ac2672fddd39f9580f3d Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 30 Jun 2020 08:52:24 +0000 Subject: [PATCH 164/346] Automated changelog update [skip ci] --- CHANGELOG.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ac5779083..36a87359c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,27 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.8.0...master + +## Summary + +* Enhancement - Update reva to v0.1.1-0.20200630075923-39a90d431566: [#320](https://github.com/owncloud/ocis-reva/pull/320) + +## Details + +* Enhancement - Update reva to v0.1.1-0.20200630075923-39a90d431566: [#320](https://github.com/owncloud/ocis-reva/pull/320) + + - Update reva to v0.1.1-0.20200630075923-39a90d431566 (#320) - Return special value for + public link password (#294, reva/#904) - Fix public stat and listcontainer response to + contain the correct prefix (#310, reva/#902) + + https://github.com/owncloud/ocis-reva/issues/310 + https://github.com/owncloud/ocis-reva/issues/294 + https://github.com/owncloud/ocis-reva/pull/320 + https://github.com/cs3org/reva/pull/902 + https://github.com/cs3org/reva/pull/904 + # Changelog for [0.8.0] (2020-06-29) The following sections list the changes in ocis-reva 0.8.0. From 723e979e4e3caec4107cd29a9a447a09b2104e2f Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 30 Jun 2020 18:02:03 +0545 Subject: [PATCH 165/346] Remove unneeded TestAlsoOnExternalUserBackend local_storage skipOnLDAP tags --- .drone.star | 4 ++-- docs/testing.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.drone.star b/.drone.star index db3722bb2a..952a076a18 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', '0dc76b2452ef0c4388af765a738679097bd1491d'), + apiTests(ctx, 'master', 'f7bf41b725b8dac55748c1a090c0d6b3617c89e5'), ] stages = [ @@ -97,7 +97,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnOcis-OC-Storage&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage', + 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnOcis-OC-Storage', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'TEST_OCIS':'true', diff --git a/docs/testing.md b/docs/testing.md index f776967255..7014a2ec19 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -82,7 +82,7 @@ TEST_SERVER_URL=http://localhost:9140 \ TEST_EXTERNAL_USER_BACKENDS=true \ TEST_OCIS=true \ OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ -BEHAT_FILTER_TAGS='~@skipOnOcis&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage' \ +BEHAT_FILTER_TAGS='~@skipOnOcis' \ SKELETON_DIR=apps/testing/data/apiSkeleton ``` @@ -111,7 +111,7 @@ If you want to work on a specific issue TEST_EXTERNAL_USER_BACKENDS=true \ TEST_OCIS=true \ OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ - BEHAT_FILTER_TAGS='~@skipOnOcV10&&~@skipOnLDAP&&@TestAlsoOnExternalUserBackend&&~@local_storage&&@issue-ocis-reva-122' + BEHAT_FILTER_TAGS='~@skipOnOcV10&&@issue-ocis-reva-122' ``` Note that the `~@skipOnOcis` tag is replaced by `~@skipOnOcV10` and the issue tag `@issue-ocis-reva-122` is added. From 77cc899a44f8c16421074245a64116421fe94182 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 30 Jun 2020 16:18:16 +0200 Subject: [PATCH 166/346] Increase transfer token life time to 24h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- changelog/unreleased/allow-datagateway-transfers-24h.md | 5 +++++ pkg/flagset/gateway.go | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/allow-datagateway-transfers-24h.md diff --git a/changelog/unreleased/allow-datagateway-transfers-24h.md b/changelog/unreleased/allow-datagateway-transfers-24h.md new file mode 100644 index 0000000000..800e557f83 --- /dev/null +++ b/changelog/unreleased/allow-datagateway-transfers-24h.md @@ -0,0 +1,5 @@ +Enhancement: Allow datagateway transfers to take 24h + +- Increase transfer token life time to 24h (PR #323) + +https://github.com/owncloud/ocis-reva/pull/323 diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index 6ca1bb378b..c8863aa34a 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -1,6 +1,8 @@ package flagset import ( + "time" + "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -90,7 +92,7 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { }, &cli.IntFlag{ Name: "transfer-expires", - Value: 10, + Value: 24 * int(time.Hour), Usage: "Transfer secret for datagateway", EnvVars: []string{"REVA_TRANSFER_EXPIRES"}, Destination: &cfg.Reva.TransferExpires, From e3e202cd8b8125825986bacbec604229a7d841b8 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 1 Jul 2020 16:30:17 +0200 Subject: [PATCH 167/346] Fix config default value for token expiry --- pkg/flagset/gateway.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index c8863aa34a..fe2b209367 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -1,8 +1,6 @@ package flagset import ( - "time" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) @@ -92,7 +90,7 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { }, &cli.IntFlag{ Name: "transfer-expires", - Value: 24 * int(time.Hour), + Value: 24 * 60 * 60, Usage: "Transfer secret for datagateway", EnvVars: []string{"REVA_TRANSFER_EXPIRES"}, Destination: &cfg.Reva.TransferExpires, From 50a39c0ba8f4148de2ca259f7d63074322945295 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 1 Jul 2020 20:26:34 +0200 Subject: [PATCH 168/346] Update reva to 20200701 (#328) * Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66 * update the api tests to core commit a3cac3dad60348fc962d1d8743b202bc5f79596b Co-authored-by: Michael Barz --- .drone.star | 2 +- .../unreleased/update-reva-to-20200701.md | 30 +++++++++++++++++++ go.mod | 2 +- go.sum | 5 ++++ 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 changelog/unreleased/update-reva-to-20200701.md diff --git a/.drone.star b/.drone.star index 952a076a18..09723d92eb 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', 'f7bf41b725b8dac55748c1a090c0d6b3617c89e5'), + apiTests(ctx, 'master', 'a3cac3dad60348fc962d1d8743b202bc5f79596b'), ] stages = [ diff --git a/changelog/unreleased/update-reva-to-20200701.md b/changelog/unreleased/update-reva-to-20200701.md new file mode 100644 index 0000000000..ac104ea386 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200701.md @@ -0,0 +1,30 @@ +Enhancement: update reva to v0.1.1-0.20200701152626-2f6cc60e2f66 + +- Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66 (#328) +- Use sync.Map on pool package (reva/#909) +- Use mutex instead of sync.Map (reva/#915) +- Use gatewayProviders instead of storageProviders on conn pool (reva/#916) +- Add logic to ls and stat to process arbitrary metadata keys (reva/#905) +- Preliminary implementation of Set/UnsetArbitraryMetadata (reva/#912) +- Make datagateway forward headers (reva/#913, reva/#926) +- Add option to cmd upload to disable tus (reva/#911) +- OCS Share Allow date-only expiration for public shares (#288, reva/#918) +- OCS Share Remove array from OCS Share update response (#252, reva/#919) +- OCS Share Implement GET request for single shares (#249, reva/#921) + +https://github.com/owncloud/ocis-reva/pull/328 +https://github.com/cs3org/reva/pull/909 +https://github.com/cs3org/reva/pull/915 +https://github.com/cs3org/reva/pull/916 +https://github.com/cs3org/reva/pull/905 +https://github.com/cs3org/reva/pull/912 +https://github.com/cs3org/reva/pull/913 +https://github.com/cs3org/reva/pull/926 +https://github.com/cs3org/reva/pull/911 +https://github.com/owncloud/ocis-reva/issues/288 +https://github.com/cs3org/reva/pull/918 +https://github.com/owncloud/ocis-reva/issues/252 +https://github.com/cs3org/reva/pull/919 +https://github.com/owncloud/ocis-reva/issues/249 +https://github.com/cs3org/reva/pull/921 + diff --git a/go.mod b/go.mod index 314c9ac623..dce9915c97 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200630075923-39a90d431566 + github.com/cs3org/reva v0.1.1-0.20200701152626-2f6cc60e2f66 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 9a197c9365..9a92e969ea 100644 --- a/go.sum +++ b/go.sum @@ -97,6 +97,7 @@ github.com/aws/aws-sdk-go v1.32.10 h1:cEJTxGcBGlsM2tN36MZQKhlK93O9HrnaRs+lq2f0zN github.com/aws/aws-sdk-go v1.32.10/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.11 h1:1nYF+Tfccn/hnAZsuwPPMSCVUVnx3j6LKOpx/WhgH0A= github.com/aws/aws-sdk-go v1.32.11/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.32.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -163,6 +164,10 @@ github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088 h1:oCRNwQ4M1JoROK/jl github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088/go.mod h1:aTjgnI4OFVK+1Ed6EtyDw5Q7Ujs9sSbY74d3I4Ph/xY= github.com/cs3org/reva v0.1.1-0.20200630075923-39a90d431566 h1:U70hDCk1IUY8i/lHMMdS18AyLLcicyn/G8LTHMvT/rE= github.com/cs3org/reva v0.1.1-0.20200630075923-39a90d431566/go.mod h1:aTjgnI4OFVK+1Ed6EtyDw5Q7Ujs9sSbY74d3I4Ph/xY= +github.com/cs3org/reva v0.1.1-0.20200701132325-5a4b59490469 h1:XcNOq0v1EM8GPb1tFa6vNq7NgQtJ49X01ku3T1JECyA= +github.com/cs3org/reva v0.1.1-0.20200701132325-5a4b59490469/go.mod h1:umXd+gBuq0t1hiR8f+EplUxeWPcBnAIKPNKbXtA9EWU= +github.com/cs3org/reva v0.1.1-0.20200701152626-2f6cc60e2f66 h1:0FEaqg/OF1wci6uVsn9VgU6BOrCYF9RUrOIzEXIfb6M= +github.com/cs3org/reva v0.1.1-0.20200701152626-2f6cc60e2f66/go.mod h1:umXd+gBuq0t1hiR8f+EplUxeWPcBnAIKPNKbXtA9EWU= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= From 5d30c53a6d1f0181972e2e0a79925d7464b5c0c6 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 1 Jul 2020 18:38:06 +0000 Subject: [PATCH 169/346] Automated changelog update [skip ci] --- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36a87359c1..730f7cfb9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,19 @@ The following sections list the changes in ocis-reva unreleased. ## Summary +* Enhancement - Allow datagateway transfers to take 24h: [#323](https://github.com/owncloud/ocis-reva/pull/323) * Enhancement - Update reva to v0.1.1-0.20200630075923-39a90d431566: [#320](https://github.com/owncloud/ocis-reva/pull/320) +* Enhancement - Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66: [#328](https://github.com/owncloud/ocis-reva/pull/328) ## Details +* Enhancement - Allow datagateway transfers to take 24h: [#323](https://github.com/owncloud/ocis-reva/pull/323) + + - Increase transfer token life time to 24h (PR #323) + + https://github.com/owncloud/ocis-reva/pull/323 + + * Enhancement - Update reva to v0.1.1-0.20200630075923-39a90d431566: [#320](https://github.com/owncloud/ocis-reva/pull/320) - Update reva to v0.1.1-0.20200630075923-39a90d431566 (#320) - Return special value for @@ -22,6 +31,34 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/cs3org/reva/pull/902 https://github.com/cs3org/reva/pull/904 + +* Enhancement - Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66: [#328](https://github.com/owncloud/ocis-reva/pull/328) + + - Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66 (#328) - Use sync.Map on pool package + (reva/#909) - Use mutex instead of sync.Map (reva/#915) - Use gatewayProviders instead of + storageProviders on conn pool (reva/#916) - Add logic to ls and stat to process arbitrary + metadata keys (reva/#905) - Preliminary implementation of Set/UnsetArbitraryMetadata + (reva/#912) - Make datagateway forward headers (reva/#913, reva/#926) - Add option to cmd + upload to disable tus (reva/#911) - OCS Share Allow date-only expiration for public shares + (#288, reva/#918) - OCS Share Remove array from OCS Share update response (#252, reva/#919) - + OCS Share Implement GET request for single shares (#249, reva/#921) + + https://github.com/owncloud/ocis-reva/issues/288 + https://github.com/owncloud/ocis-reva/issues/252 + https://github.com/owncloud/ocis-reva/issues/249 + https://github.com/owncloud/ocis-reva/pull/328 + https://github.com/cs3org/reva/pull/909 + https://github.com/cs3org/reva/pull/915 + https://github.com/cs3org/reva/pull/916 + https://github.com/cs3org/reva/pull/905 + https://github.com/cs3org/reva/pull/912 + https://github.com/cs3org/reva/pull/913 + https://github.com/cs3org/reva/pull/926 + https://github.com/cs3org/reva/pull/911 + https://github.com/cs3org/reva/pull/918 + https://github.com/cs3org/reva/pull/919 + https://github.com/cs3org/reva/pull/921 + # Changelog for [0.8.0] (2020-06-29) The following sections list the changes in ocis-reva 0.8.0. From 67116a6124e0720111d2834814eba1ee40b44a5a Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Wed, 1 Jul 2020 20:46:08 +0200 Subject: [PATCH 170/346] prepare 0.9.0 release --- .../allow-datagateway-transfers-24h.md | 0 .../{unreleased => 0.9.0_2020-07-01}/update-reva-to-20200630.md | 0 .../{unreleased => 0.9.0_2020-07-01}/update-reva-to-20200701.md | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.9.0_2020-07-01}/allow-datagateway-transfers-24h.md (100%) rename changelog/{unreleased => 0.9.0_2020-07-01}/update-reva-to-20200630.md (100%) rename changelog/{unreleased => 0.9.0_2020-07-01}/update-reva-to-20200701.md (100%) diff --git a/changelog/unreleased/allow-datagateway-transfers-24h.md b/changelog/0.9.0_2020-07-01/allow-datagateway-transfers-24h.md similarity index 100% rename from changelog/unreleased/allow-datagateway-transfers-24h.md rename to changelog/0.9.0_2020-07-01/allow-datagateway-transfers-24h.md diff --git a/changelog/unreleased/update-reva-to-20200630.md b/changelog/0.9.0_2020-07-01/update-reva-to-20200630.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200630.md rename to changelog/0.9.0_2020-07-01/update-reva-to-20200630.md diff --git a/changelog/unreleased/update-reva-to-20200701.md b/changelog/0.9.0_2020-07-01/update-reva-to-20200701.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200701.md rename to changelog/0.9.0_2020-07-01/update-reva-to-20200701.md From a6346a1a9863684236249d678ddc7e46508b4364 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Wed, 1 Jul 2020 19:00:51 +0000 Subject: [PATCH 171/346] Automated changelog update [skip ci] --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 730f7cfb9d..ec3d6bd389 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.9.0] (2020-07-01) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.9.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.8.0...master +[0.9.0]: https://github.com/owncloud/ocis-reva/compare/v0.8.0...v0.9.0 ## Summary From ac26af32cf55beb553a16a64a0866f6870fbcd58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 1 Jul 2020 23:08:17 +0200 Subject: [PATCH 172/346] add new config options for the http client (#330) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/command/frontend.go | 4 ++++ pkg/command/storageeosdata.go | 4 +++- pkg/command/storagehomedata.go | 4 +++- pkg/command/storageocdata.go | 4 +++- pkg/flagset/gateway.go | 4 ++-- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index e3e6b54ad4..6ce3ec569a 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -121,12 +121,16 @@ func Frontend(cfg *config.Config) *cli.Command { "services": map[string]interface{}{ "datagateway": map[string]interface{}{ "transfer_shared_secret": cfg.Reva.TransferSecret, + "timeout": 86400, + "insecure": true, }, "ocdav": map[string]interface{}{ "prefix": "", "chunk_folder": "/var/tmp/reva/chunks", "files_namespace": cfg.Reva.OCDav.DavFilesNamespace, "webdav_namespace": cfg.Reva.OCDav.WebdavNamespace, + "timeout": 86400, + "insecure": true, "disable_tus": cfg.Reva.UploadDisableTus, }, "ocs": map[string]interface{}{ diff --git a/pkg/command/storageeosdata.go b/pkg/command/storageeosdata.go index 019af03902..7fc8ec56d4 100644 --- a/pkg/command/storageeosdata.go +++ b/pkg/command/storageeosdata.go @@ -128,7 +128,9 @@ func StorageEOSData(cfg *config.Config) *cli.Command { "user_layout": cfg.Reva.Storages.EOS.Layout, }, }, - "temp_folder": cfg.Reva.StorageEOSData.TempFolder, + "timeout": 86400, + "insecure": true, + "disable_tus": false, }, }, }, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 1f11b18112..316f1d6ca1 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -146,7 +146,9 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.Storages.S3.Prefix, }, }, - "temp_folder": cfg.Reva.StorageHomeData.TempFolder, + "timeout": 86400, + "insecure": true, + "disable_tus": false, }, }, }, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index e171da587e..78da2e9b58 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -146,7 +146,9 @@ func StorageOCData(cfg *config.Config) *cli.Command { "prefix": cfg.Reva.Storages.S3.Prefix, }, }, - "temp_folder": cfg.Reva.StorageOCData.TempFolder, + "timeout": 86400, + "insecure": true, + "disable_tus": false, }, }, }, diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index fe2b209367..68c9838a3f 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -90,8 +90,8 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { }, &cli.IntFlag{ Name: "transfer-expires", - Value: 24 * 60 * 60, - Usage: "Transfer secret for datagateway", + Value: 24 * 60 * 60, // one day + Usage: "Transfer token ttl in seconds", EnvVars: []string{"REVA_TRANSFER_EXPIRES"}, Destination: &cfg.Reva.TransferExpires, }, From e6c2b460126ddc12c7c163c27f1d35d873477c05 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Thu, 2 Jul 2020 11:33:17 +0200 Subject: [PATCH 173/346] add changelog for new config options --- changelog/0.9.1_2020-07-02/new-config-options | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelog/0.9.1_2020-07-02/new-config-options diff --git a/changelog/0.9.1_2020-07-02/new-config-options b/changelog/0.9.1_2020-07-02/new-config-options new file mode 100644 index 0000000000..e11d65fb69 --- /dev/null +++ b/changelog/0.9.1_2020-07-02/new-config-options @@ -0,0 +1,5 @@ +Enhancement: add new config options for the http client + +The internal certificates are checked for validity after https://github.com/cs3org/reva/pull/914, which causes the acceptance tests to fail. This change sets new hardcoded defaults. + +https://github.com/owncloud/ocis-reva/pull/330 \ No newline at end of file From 0f4b06f48d0f952bcfa34fd7e515a8f1fc8be841 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Thu, 2 Jul 2020 09:50:25 +0000 Subject: [PATCH 174/346] Automated changelog update [skip ci] --- CHANGELOG.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec3d6bd389..fca17d029c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,23 @@ +# Changelog for [0.9.1] (2020-07-02) + +The following sections list the changes in ocis-reva 0.9.1. + +[0.9.1]: https://github.com/owncloud/ocis-reva/compare/v0.9.0...v0.9.1 + +## Summary + +* Enhancement - Add new config options for the http client: [#330](https://github.com/owncloud/ocis-reva/pull/330) + +## Details + +* Enhancement - Add new config options for the http client: [#330](https://github.com/owncloud/ocis-reva/pull/330) + + The internal certificates are checked for validity after + https://github.com/cs3org/reva/pull/914, which causes the acceptance tests to fail. This + change sets new hardcoded defaults. + + https://github.com/owncloud/ocis-reva/pull/330 + # Changelog for [0.9.0] (2020-07-01) The following sections list the changes in ocis-reva 0.9.0. From 0e7a6f99f696dedad1c074ca0601ef046ac061f7 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 3 Jul 2020 16:40:29 +0200 Subject: [PATCH 175/346] Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66 With fixes of public link editing on API level --- changelog/unreleased/update-reva-to-20200703.md | 13 +++++++++++++ go.mod | 2 +- go.sum | 3 +++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/update-reva-to-20200703.md diff --git a/changelog/unreleased/update-reva-to-20200703.md b/changelog/unreleased/update-reva-to-20200703.md new file mode 100644 index 0000000000..0fbdc08808 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200703.md @@ -0,0 +1,13 @@ +Enhancement: update reva to v0.1.1-0.20200701152626-2f6cc60e2f66 + +- Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66 (#341) +- Added country information to Mentix (reva/#924) +- Refactor metrics package to implement reader interface (reva/#934) +- Fix OCS public link share update values logic (#252, #288, reva/#930) + +https://github.com/owncloud/ocis-reva/pull/341 +https://github.com/cs3org/reva/pull/924 +https://github.com/cs3org/reva/pull/934 +https://github.com/owncloud/ocis-reva/issues/252 +https://github.com/owncloud/ocis-reva/issues/288 +https://github.com/cs3org/reva/pull/930 diff --git a/go.mod b/go.mod index dce9915c97..fff99e6dd8 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200701152626-2f6cc60e2f66 + github.com/cs3org/reva v0.1.1-0.20200703120955-223eaed348f0 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 9a92e969ea..61b5372048 100644 --- a/go.sum +++ b/go.sum @@ -98,6 +98,7 @@ github.com/aws/aws-sdk-go v1.32.10/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZve github.com/aws/aws-sdk-go v1.32.11 h1:1nYF+Tfccn/hnAZsuwPPMSCVUVnx3j6LKOpx/WhgH0A= github.com/aws/aws-sdk-go v1.32.11/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.33.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -168,6 +169,8 @@ github.com/cs3org/reva v0.1.1-0.20200701132325-5a4b59490469 h1:XcNOq0v1EM8GPb1tF github.com/cs3org/reva v0.1.1-0.20200701132325-5a4b59490469/go.mod h1:umXd+gBuq0t1hiR8f+EplUxeWPcBnAIKPNKbXtA9EWU= github.com/cs3org/reva v0.1.1-0.20200701152626-2f6cc60e2f66 h1:0FEaqg/OF1wci6uVsn9VgU6BOrCYF9RUrOIzEXIfb6M= github.com/cs3org/reva v0.1.1-0.20200701152626-2f6cc60e2f66/go.mod h1:umXd+gBuq0t1hiR8f+EplUxeWPcBnAIKPNKbXtA9EWU= +github.com/cs3org/reva v0.1.1-0.20200703120955-223eaed348f0 h1:8mWapjYcOdfkJdM2agfiLlnIsMULxEVwHhezTqA+SJg= +github.com/cs3org/reva v0.1.1-0.20200703120955-223eaed348f0/go.mod h1:VUBjQP8XCiWwFTPhE9P4I47k0NbdczQa2q6JsJN2PqY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= From a4e3a17ce73196f9873f42970d3fafaf013e4dcc Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 3 Jul 2020 16:21:33 +0200 Subject: [PATCH 176/346] Adjust drone master commit Brings in new tests for OCS Share API public links --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 09723d92eb..9ac646c8e2 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', 'a3cac3dad60348fc962d1d8743b202bc5f79596b'), + apiTests(ctx, 'master', '5d1cf1895083f143c4600a613bfbad5c1810846b'), ] stages = [ From 1884aef2184a2f08dcb87d651a60e74391657edc Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 3 Jul 2020 16:05:15 +0000 Subject: [PATCH 177/346] Automated changelog update [skip ci] --- CHANGELOG.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fca17d029c..d40c889488 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.9.1...master + +## Summary + +* Enhancement - Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66: [#341](https://github.com/owncloud/ocis-reva/pull/341) + +## Details + +* Enhancement - Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66: [#341](https://github.com/owncloud/ocis-reva/pull/341) + + - Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66 (#341) - Added country information + to Mentix (reva/#924) - Refactor metrics package to implement reader interface (reva/#934) - + Fix OCS public link share update values logic (#252, #288, reva/#930) + + https://github.com/owncloud/ocis-reva/issues/252 + https://github.com/owncloud/ocis-reva/issues/288 + https://github.com/owncloud/ocis-reva/pull/341 + https://github.com/cs3org/reva/pull/924 + https://github.com/cs3org/reva/pull/934 + https://github.com/cs3org/reva/pull/930 + # Changelog for [0.9.1] (2020-07-02) The following sections list the changes in ocis-reva 0.9.1. From cb81a50890075754bc10e1a00ab960c769e3e229 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 7 Jul 2020 18:01:28 +0545 Subject: [PATCH 178/346] Use latest osixia/openldap in CI --- .drone.star | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.drone.star b/.drone.star index 9ac646c8e2..57e8552b0e 100644 --- a/.drone.star +++ b/.drone.star @@ -124,14 +124,13 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'services': [ { 'name': 'ldap', - 'image': 'osixia/openldap:1.3.0', + 'image': 'osixia/openldap', 'pull': 'always', 'environment': { 'LDAP_DOMAIN': 'owncloud.com', 'LDAP_ORGANISATION': 'owncloud', 'LDAP_ADMIN_PASSWORD': 'admin', 'LDAP_TLS_VERIFY_CLIENT': 'never', - 'HOSTNAME': 'ldap' }, }, { @@ -335,14 +334,13 @@ def testing(ctx): 'services': [ { 'name': 'ldap', - 'image': 'osixia/openldap:1.3.0', + 'image': 'osixia/openldap', 'pull': 'always', 'environment': { 'LDAP_DOMAIN': 'owncloud.com', 'LDAP_ORGANISATION': 'owncloud', 'LDAP_ADMIN_PASSWORD': 'admin', 'LDAP_TLS_VERIFY_CLIENT': 'never', - 'HOSTNAME': 'ldap' }, }, { From 18afaaaea790d00fa2aa47160cc77493722702cb Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 6 Jul 2020 17:51:08 +0545 Subject: [PATCH 179/346] Use latest commit from core master when running acceptance tests. --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 57e8552b0e..94df45ba84 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', '5d1cf1895083f143c4600a613bfbad5c1810846b'), + apiTests(ctx, 'master', 'ba243879dbda86c563f1e767791759fd6f5d97e1'), ] stages = [ From be2f4370a2a643bc2c48c316d1e9dbaa8ded204a Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Wed, 8 Jul 2020 10:27:25 +0545 Subject: [PATCH 180/346] add REVA_FRONTEND_URL & REVA_DATAGATEWAY_URL conf --- docs/testing.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/testing.md b/docs/testing.md index 7014a2ec19..2de3619d0c 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -56,6 +56,8 @@ export REVA_LDAP_SCHEMA_UID=uid export REVA_LDAP_SCHEMA_MAIL=mail export REVA_LDAP_SCHEMA_DISPLAYNAME=displayName export REVA_LDAP_SCHEMA_CN=cn +export REVA_FRONTEND_URL=http://localhost:9140 # needed because the proxy is not started +export REVA_DATAGATEWAY_URL=http://localhost:9140/data # needed because the proxy is not started ``` Then you need to start the ocis-reva services From 83d2fe3daf8694ade63011a17df9b9de09c57d1e Mon Sep 17 00:00:00 2001 From: jasson99 Date: Tue, 7 Jul 2020 11:19:34 +0545 Subject: [PATCH 181/346] docs improved --- docs/testing.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/testing.md b/docs/testing.md index 2de3619d0c..551f2a0481 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -84,13 +84,13 @@ TEST_SERVER_URL=http://localhost:9140 \ TEST_EXTERNAL_USER_BACKENDS=true \ TEST_OCIS=true \ OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ -BEHAT_FILTER_TAGS='~@skipOnOcis' \ +BEHAT_FILTER_TAGS='~@skipOnOcis&&~@skipOnOcis-OC-Storage' \ SKELETON_DIR=apps/testing/data/apiSkeleton ``` Make sure to adjust the settings `TEST_SERVER_URL`,`OCIS_REVA_DATA_ROOT` and `SKELETON_DIR` according to your environment -This will run all tests that can work with LDAP and are not skipped on OCIS +This will run all tests that can work with LDAP, and are not skipped on OCIS or on OCIS with OC Storage. To run a single test add `BEHAT_FEATURE=` and specify the path to the feature file and an optional line number. For example: `BEHAT_FEATURE='tests/acceptance/features/apiWebdavUpload1/uploadFile.feature:12'` @@ -101,6 +101,7 @@ Every scenario that does not work in OCIS, is tagged with `@skipOnOcis` and addi This tag means that this particular scenario is skipped because of [issue no 122 in the ocis-reva repository](https://github.com/owncloud/ocis-reva/issues/122). Additionally, some issues have scenarios that demonstrate the current buggy behaviour in ocis(reva) and are skipped on oC10. Have a look into the [documentation](https://doc.owncloud.com/server/developer_manual/testing/acceptance-tests.html#writing-scenarios-for-bugs) to understand why we are writing those tests. +Also, ocis behaves partly differently with EOS-Storage and OC-Storage. There are scenarios that do not work in OCIS when run on EOS-storage, but works when on OC-Storage, and vice-versa. For those kind of scenarios, ` @skipOnOcis-EOS-Storage` and `@skipOnOcis-OC-Storage` tags are used. For instance, for a scenario that fails on EOS-Storage but passes on OC-Storage, we use `@skipOnOcis-EOS-Storage` tag to let it run on OC-Storage, where it works as expected, instead of skipping on ocis with `@skipOnOcis` tag. If you want to work on a specific issue @@ -116,7 +117,7 @@ If you want to work on a specific issue BEHAT_FILTER_TAGS='~@skipOnOcV10&&@issue-ocis-reva-122' ``` - Note that the `~@skipOnOcis` tag is replaced by `~@skipOnOcV10` and the issue tag `@issue-ocis-reva-122` is added. + Note that the `~@skipOnOcis` and `~@skipOnOcis-OC-Storage` tags are replaced by `~@skipOnOcV10` and the issue tag `@issue-ocis-reva-122` is added. We want to run all tests that are skipped in CI because of this particular bug, but we don't want to run the tests that demonstrate the current buggy behaviour. From b75cfbf39e5e36efcb06c013f30c0ba81facebde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 9 Jul 2020 10:33:35 +0200 Subject: [PATCH 182/346] make frontend prefixes configurable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/command/frontend.go | 4 +++- pkg/config/config.go | 11 ++++++++++- pkg/flagset/frontend.go | 21 +++++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index 6ce3ec569a..01d5e0d17a 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -120,12 +120,13 @@ func Frontend(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "datagateway": map[string]interface{}{ + "prefix": cfg.Reva.Frontend.DatagatewayPrefix, "transfer_shared_secret": cfg.Reva.TransferSecret, "timeout": 86400, "insecure": true, }, "ocdav": map[string]interface{}{ - "prefix": "", + "prefix": cfg.Reva.Frontend.OCDavPrefix, "chunk_folder": "/var/tmp/reva/chunks", "files_namespace": cfg.Reva.OCDav.DavFilesNamespace, "webdav_namespace": cfg.Reva.OCDav.WebdavNamespace, @@ -134,6 +135,7 @@ func Frontend(cfg *config.Config) *cli.Command { "disable_tus": cfg.Reva.UploadDisableTus, }, "ocs": map[string]interface{}{ + "prefix": cfg.Reva.Frontend.OCSPrefix, "config": map[string]interface{}{ "version": "1.8", "website": "reva", diff --git a/pkg/config/config.go b/pkg/config/config.go index 942b48b767..2c3f7beb26 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -65,6 +65,15 @@ type Users struct { JSON string } +// FrontendPort defines the available frontend configuration. +type FrontendPort struct { + Port + + DatagatewayPrefix string + OCDavPrefix string + OCSPrefix string +} + // StoragePort defines the available storage configuration. type StoragePort struct { Port @@ -230,7 +239,7 @@ type Reva struct { OCDav OCDav Storages StorageConfig // Ports are used to configure which services to start on which port - Frontend Port + Frontend FrontendPort DataGateway Port Gateway Gateway Users Users diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index b4117df7e4..4c559a7e80 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -147,6 +147,27 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { Usage: "--service ocdav [--service ocs]", EnvVars: []string{"REVA_FRONTEND_SERVICES"}, }, + &cli.StringFlag{ + Name: "datagateway-prefix", + Value: "data", + Usage: "datagateway prefix", + EnvVars: []string{"REVA_FRONTEND_DATAGATEWAY_PREFIX"}, + Destination: &cfg.Reva.Frontend.DatagatewayPrefix, + }, + &cli.StringFlag{ + Name: "ocdav-prefix", + Value: "", + Usage: "owncloud webdav endpoint prefix", + EnvVars: []string{"REVA_FRONTEND_OCDAV_PREFIX"}, + Destination: &cfg.Reva.Frontend.OCDavPrefix, + }, + &cli.StringFlag{ + Name: "ocs-prefix", + Value: "ocs", + Usage: "open collaboration services endpoint prefix", + EnvVars: []string{"REVA_FRONTEND_OCS_PREFIX"}, + Destination: &cfg.Reva.Frontend.OCDavPrefix, + }, // Gateway From 5bd582484e89858f66134dccd995e8fa259e5b94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 9 Jul 2020 11:17:53 +0200 Subject: [PATCH 183/346] add changelog, fix typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .../make-frontend-prefixes-configurable.md | 14 ++++++++++++++ pkg/flagset/frontend.go | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/make-frontend-prefixes-configurable.md diff --git a/changelog/unreleased/make-frontend-prefixes-configurable.md b/changelog/unreleased/make-frontend-prefixes-configurable.md new file mode 100644 index 0000000000..becf695a3b --- /dev/null +++ b/changelog/unreleased/make-frontend-prefixes-configurable.md @@ -0,0 +1,14 @@ +Enhancement: make frontend prefixes configurable + +We introduce three new environment variables and preconfigure them the following way: + +``` +REVA_FRONTEND_DATAGATEWAY_PREFIX="data" +REVA_FRONTEND_OCDAV_PREFIX="" +REVA_FRONTEND_OCS_PREFIX="ocs" +``` + +This restores the reva defaults that were changed upstream. + +https://github.com/owncloud/ocis-reva/pull/363 +https://github.com/cs3org/reva/pull/936/files#diff-51bf4fb310f7362f5c4306581132fc3bR63 \ No newline at end of file diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index 4c559a7e80..94ec4a9347 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -166,7 +166,7 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { Value: "ocs", Usage: "open collaboration services endpoint prefix", EnvVars: []string{"REVA_FRONTEND_OCS_PREFIX"}, - Destination: &cfg.Reva.Frontend.OCDavPrefix, + Destination: &cfg.Reva.Frontend.OCSPrefix, }, // Gateway From 3c2766defabbd791b9d70dcb1e9223f66b3d6729 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 9 Jul 2020 09:12:19 +0200 Subject: [PATCH 184/346] Update reva to 20200709 Also update the test commit --- .drone.star | 2 +- .../unreleased/update-reva-to-20200709.md | 32 +++++++++++++++++++ go.mod | 2 +- go.sum | 2 ++ 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 changelog/unreleased/update-reva-to-20200709.md diff --git a/.drone.star b/.drone.star index 94df45ba84..5af1bb2c77 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', 'ba243879dbda86c563f1e767791759fd6f5d97e1'), + apiTests(ctx, 'master', '3861d0ad74aebd474f9b6b64bd4e1d7d7081955e'), ] stages = [ diff --git a/changelog/unreleased/update-reva-to-20200709.md b/changelog/unreleased/update-reva-to-20200709.md new file mode 100644 index 0000000000..19af62ebd4 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200709.md @@ -0,0 +1,32 @@ +Enhancement: update reva to v0.1.1-0.20200709064551-91eed007038f + +- Update reva to v0.1.1-0.20200709064551-91eed007038f (#362) +- Fix config for uploads when data server is not exposed (reva/#936) +- Update OCM partners endpoints (reva/#937) +- Update Ailleron endpoint (reva/#938) +- OCS: Fix initialization of shares json file (reva/#940) +- OCS: Fix returned public link URL (#336, reva/#945) +- OCS: Share wrap resource id correctly (#344, reva/#951) +- OCS: Implement share handling for accepting and listing shares (#11, reva/#929) +- ocm: dynamically lookup IPs for provider check (reva/#946) +- ocm: add functionality to mail OCM invite tokens (reva/#944) +- Change percentagused to percentageused (reva/#903) +- Fix file-descriptor leak (reva/#954) + +https://github.com/owncloud/ocis-reva/pull/362 +https://github.com/cs3org/reva/pull/936 +https://github.com/cs3org/reva/pull/937 +https://github.com/cs3org/reva/pull/938 +https://github.com/cs3org/reva/pull/940 +https://github.com/cs3org/reva/pull/951 +https://github.com/owncloud/ocis-reva/issues/344 +https://github.com/cs3org/reva/pull/945 +https://github.com/owncloud/ocis-reva/issues/336 +https://github.com/cs3org/reva/pull/929 +https://github.com/owncloud/ocis-reva/issues/11 +https://github.com/cs3org/reva/pull/946 +https://github.com/cs3org/reva/pull/944 +https://github.com/cs3org/reva/pull/903 +https://github.com/cs3org/reva/pull/954 + + diff --git a/go.mod b/go.mod index fff99e6dd8..d6f668fb1c 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200703120955-223eaed348f0 + github.com/cs3org/reva v0.1.1-0.20200709064551-91eed007038f github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 61b5372048..389d65708f 100644 --- a/go.sum +++ b/go.sum @@ -171,6 +171,8 @@ github.com/cs3org/reva v0.1.1-0.20200701152626-2f6cc60e2f66 h1:0FEaqg/OF1wci6uVs github.com/cs3org/reva v0.1.1-0.20200701152626-2f6cc60e2f66/go.mod h1:umXd+gBuq0t1hiR8f+EplUxeWPcBnAIKPNKbXtA9EWU= github.com/cs3org/reva v0.1.1-0.20200703120955-223eaed348f0 h1:8mWapjYcOdfkJdM2agfiLlnIsMULxEVwHhezTqA+SJg= github.com/cs3org/reva v0.1.1-0.20200703120955-223eaed348f0/go.mod h1:VUBjQP8XCiWwFTPhE9P4I47k0NbdczQa2q6JsJN2PqY= +github.com/cs3org/reva v0.1.1-0.20200709064551-91eed007038f h1:wsQOmNJGqxiXC3uTYHy1IPi39lO+UKD1adu2V3+8YtE= +github.com/cs3org/reva v0.1.1-0.20200709064551-91eed007038f/go.mod h1:VUBjQP8XCiWwFTPhE9P4I47k0NbdczQa2q6JsJN2PqY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= From f2118fd6dda979b4500972152f44419ddc940a61 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 9 Jul 2020 10:28:47 +0000 Subject: [PATCH 185/346] Automated changelog update [skip ci] --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d40c889488..45e5acaa11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,24 @@ The following sections list the changes in ocis-reva unreleased. ## Summary +* Enhancement - Make frontend prefixes configurable: [#363](https://github.com/owncloud/ocis-reva/pull/363) * Enhancement - Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66: [#341](https://github.com/owncloud/ocis-reva/pull/341) ## Details +* Enhancement - Make frontend prefixes configurable: [#363](https://github.com/owncloud/ocis-reva/pull/363) + + We introduce three new environment variables and preconfigure them the following way: + + ``` REVA_FRONTEND_DATAGATEWAY_PREFIX="data" REVA_FRONTEND_OCDAV_PREFIX="" + REVA_FRONTEND_OCS_PREFIX="ocs" ``` + + This restores the reva defaults that were changed upstream. + + https://github.com/owncloud/ocis-reva/pull/363 + https://github.com/cs3org/reva/pull/936/files#diff-51bf4fb310f7362f5c4306581132fc3bR63 + + * Enhancement - Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66: [#341](https://github.com/owncloud/ocis-reva/pull/341) - Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66 (#341) - Added country information From f9fdb751cd8b3ead81589b46c26d595133778ba1 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 10 Jul 2020 10:59:50 +0545 Subject: [PATCH 186/346] Bump core commit for tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 5af1bb2c77..f4dd9515bc 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', '3861d0ad74aebd474f9b6b64bd4e1d7d7081955e'), + apiTests(ctx, 'master', 'eafeb8f4189b017aa151e0be642c1725e5ccac62'), ] stages = [ From 4346976d57513cc4a1890375163fcafb8efe526d Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Fri, 10 Jul 2020 07:07:50 +0000 Subject: [PATCH 187/346] Automated changelog update [skip ci] --- CHANGELOG.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 45e5acaa11..141f001358 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ The following sections list the changes in ocis-reva unreleased. * Enhancement - Make frontend prefixes configurable: [#363](https://github.com/owncloud/ocis-reva/pull/363) * Enhancement - Update reva to v0.1.1-0.20200701152626-2f6cc60e2f66: [#341](https://github.com/owncloud/ocis-reva/pull/341) +* Enhancement - Update reva to v0.1.1-0.20200709064551-91eed007038f: [#362](https://github.com/owncloud/ocis-reva/pull/362) ## Details @@ -37,6 +38,34 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/cs3org/reva/pull/934 https://github.com/cs3org/reva/pull/930 + +* Enhancement - Update reva to v0.1.1-0.20200709064551-91eed007038f: [#362](https://github.com/owncloud/ocis-reva/pull/362) + + - Update reva to v0.1.1-0.20200709064551-91eed007038f (#362) - Fix config for uploads when + data server is not exposed (reva/#936) - Update OCM partners endpoints (reva/#937) - Update + Ailleron endpoint (reva/#938) - OCS: Fix initialization of shares json file (reva/#940) - + OCS: Fix returned public link URL (#336, reva/#945) - OCS: Share wrap resource id correctly + (#344, reva/#951) - OCS: Implement share handling for accepting and listing shares (#11, + reva/#929) - ocm: dynamically lookup IPs for provider check (reva/#946) - ocm: add + functionality to mail OCM invite tokens (reva/#944) - Change percentagused to + percentageused (reva/#903) - Fix file-descriptor leak (reva/#954) + + https://github.com/owncloud/ocis-reva/issues/344 + https://github.com/owncloud/ocis-reva/issues/336 + https://github.com/owncloud/ocis-reva/issues/11 + https://github.com/owncloud/ocis-reva/pull/362 + https://github.com/cs3org/reva/pull/936 + https://github.com/cs3org/reva/pull/937 + https://github.com/cs3org/reva/pull/938 + https://github.com/cs3org/reva/pull/940 + https://github.com/cs3org/reva/pull/951 + https://github.com/cs3org/reva/pull/945 + https://github.com/cs3org/reva/pull/929 + https://github.com/cs3org/reva/pull/946 + https://github.com/cs3org/reva/pull/944 + https://github.com/cs3org/reva/pull/903 + https://github.com/cs3org/reva/pull/954 + # Changelog for [0.9.1] (2020-07-02) The following sections list the changes in ocis-reva 0.9.1. From 2aa47f9f74e8c0661feab268fcf9bc1395907bef Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 10 Jul 2020 14:34:23 +0200 Subject: [PATCH 188/346] Prepare 0.10.0 release --- .../make-frontend-prefixes-configurable.md | 0 .../{unreleased => 0.10.0_2020-07-10}/update-reva-to-20200703.md | 0 .../{unreleased => 0.10.0_2020-07-10}/update-reva-to-20200709.md | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.10.0_2020-07-10}/make-frontend-prefixes-configurable.md (100%) rename changelog/{unreleased => 0.10.0_2020-07-10}/update-reva-to-20200703.md (100%) rename changelog/{unreleased => 0.10.0_2020-07-10}/update-reva-to-20200709.md (100%) diff --git a/changelog/unreleased/make-frontend-prefixes-configurable.md b/changelog/0.10.0_2020-07-10/make-frontend-prefixes-configurable.md similarity index 100% rename from changelog/unreleased/make-frontend-prefixes-configurable.md rename to changelog/0.10.0_2020-07-10/make-frontend-prefixes-configurable.md diff --git a/changelog/unreleased/update-reva-to-20200703.md b/changelog/0.10.0_2020-07-10/update-reva-to-20200703.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200703.md rename to changelog/0.10.0_2020-07-10/update-reva-to-20200703.md diff --git a/changelog/unreleased/update-reva-to-20200709.md b/changelog/0.10.0_2020-07-10/update-reva-to-20200709.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200709.md rename to changelog/0.10.0_2020-07-10/update-reva-to-20200709.md From fb68187798bf80aa68ec82ee2f2a7344bedc1c95 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 10 Jul 2020 13:12:56 +0000 Subject: [PATCH 189/346] Automated changelog update [skip ci] --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 141f001358..64083fa990 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.10.0] (2020-07-10) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.10.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.9.1...master +[0.10.0]: https://github.com/owncloud/ocis-reva/compare/v0.9.1...v0.10.0 ## Summary From f2a9a89b5ee287675bc0f8a525be33161d39d584 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 10 Jul 2020 20:10:12 +0545 Subject: [PATCH 190/346] Update reva to 20200710 --- .drone.star | 2 +- changelog/unreleased/update-reva-to-20200710.md | 14 ++++++++++++++ go.mod | 2 +- go.sum | 4 ++++ 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 changelog/unreleased/update-reva-to-20200710.md diff --git a/.drone.star b/.drone.star index f4dd9515bc..1830018dd1 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', 'eafeb8f4189b017aa151e0be642c1725e5ccac62'), + apiTests(ctx, 'master', '73023ed1e0009dc25a68d4cfd3ddf11b9c33d115'), ] stages = [ diff --git a/changelog/unreleased/update-reva-to-20200710.md b/changelog/unreleased/update-reva-to-20200710.md new file mode 100644 index 0000000000..133c446cc6 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200710.md @@ -0,0 +1,14 @@ +Enhancement: update reva to v0.1.1-0.20200710143425-cf38a45220c5 + +- Update reva to v0.1.1-0.20200710143425-cf38a45220c5 (#371) +- Add wopi open (reva/#920) +- Added a CS3API compliant data exporter to Mentix (reva/#955) +- Read SMTP password from env if not set in config (reva/#953) +- OCS share fix including file info after update (reva/#958) +- Add flag to smtpclient for for unauthenticated SMTP (reva/#963) + +https://github.com/cs3org/reva/pull/920 +https://github.com/cs3org/reva/pull/953 +https://github.com/cs3org/reva/pull/955 +https://github.com/cs3org/reva/pull/958 +https://github.com/cs3org/reva/pull/963 diff --git a/go.mod b/go.mod index d6f668fb1c..e892acb3df 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200709064551-91eed007038f + github.com/cs3org/reva v0.1.1-0.20200710143425-cf38a45220c5 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 389d65708f..1b5ce82e5e 100644 --- a/go.sum +++ b/go.sum @@ -159,8 +159,10 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSY github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cs3org/cato v0.0.0-20200618163134-e83dd323b17e/go.mod h1:6GOQIYvO+ZepxBKY9geuIAF7qfozDeDsTrX0BW9LZ0k= +github.com/cs3org/cato v0.0.0-20200626150132-28a40e643719/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= github.com/cs3org/go-cs3apis v0.0.0-20200625121012-96e791152b14 h1:ORPIrxw/T33ALlpaon9IMRzf54ArJQWCYlcECZiRmEc= github.com/cs3org/go-cs3apis v0.0.0-20200625121012-96e791152b14/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/go-cs3apis v0.0.0-20200709064917-d96c5f2a42ad/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088 h1:oCRNwQ4M1JoROK/jlYK1Cj1ElXky7ubFO8AA/YKMNfA= github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088/go.mod h1:aTjgnI4OFVK+1Ed6EtyDw5Q7Ujs9sSbY74d3I4Ph/xY= github.com/cs3org/reva v0.1.1-0.20200630075923-39a90d431566 h1:U70hDCk1IUY8i/lHMMdS18AyLLcicyn/G8LTHMvT/rE= @@ -173,6 +175,8 @@ github.com/cs3org/reva v0.1.1-0.20200703120955-223eaed348f0 h1:8mWapjYcOdfkJdM2a github.com/cs3org/reva v0.1.1-0.20200703120955-223eaed348f0/go.mod h1:VUBjQP8XCiWwFTPhE9P4I47k0NbdczQa2q6JsJN2PqY= github.com/cs3org/reva v0.1.1-0.20200709064551-91eed007038f h1:wsQOmNJGqxiXC3uTYHy1IPi39lO+UKD1adu2V3+8YtE= github.com/cs3org/reva v0.1.1-0.20200709064551-91eed007038f/go.mod h1:VUBjQP8XCiWwFTPhE9P4I47k0NbdczQa2q6JsJN2PqY= +github.com/cs3org/reva v0.1.1-0.20200710143425-cf38a45220c5 h1:buENUkKNviU7c3/+E19GTY2Vk+KpSHbXUeWJQsNbpCE= +github.com/cs3org/reva v0.1.1-0.20200710143425-cf38a45220c5/go.mod h1:V/SuCrkQ+Mz7EOs4gAHgl6Bq9JmpWy0beVIfE3fGGX8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= From 23694c627ac2621119b81fe97bd2b44f6f353014 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 13 Jul 2020 09:39:05 +0000 Subject: [PATCH 191/346] Automated changelog update [skip ci] --- CHANGELOG.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64083fa990..384772c289 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.10.0...master + +## Summary + +* Enhancement - Update reva to v0.1.1-0.20200710143425-cf38a45220c5: [#920](https://github.com/cs3org/reva/pull/920) + +## Details + +* Enhancement - Update reva to v0.1.1-0.20200710143425-cf38a45220c5: [#920](https://github.com/cs3org/reva/pull/920) + + - Update reva to v0.1.1-0.20200710143425-cf38a45220c5 (#371) - Add wopi open (reva/#920) - + Added a CS3API compliant data exporter to Mentix (reva/#955) - Read SMTP password from env if + not set in config (reva/#953) - OCS share fix including file info after update (reva/#958) - Add + flag to smtpclient for for unauthenticated SMTP (reva/#963) + + https://github.com/cs3org/reva/pull/920 + https://github.com/cs3org/reva/pull/953 + https://github.com/cs3org/reva/pull/955 + https://github.com/cs3org/reva/pull/958 + https://github.com/cs3org/reva/pull/963 + # Changelog for [0.10.0] (2020-07-10) The following sections list the changes in ocis-reva 0.10.0. From cd1fe5995166e930abc952878156bfcf3e8e176a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 22 Jul 2020 13:14:41 +0200 Subject: [PATCH 192/346] more detailed storage aspects (#384) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * more detailed storage aspects Signed-off-by: Jörn Friedrich Dreyer * detail owncloud driver Signed-off-by: Jörn Friedrich Dreyer * link issue Signed-off-by: Jörn Friedrich Dreyer * fix typos Signed-off-by: Jörn Friedrich Dreyer --- docs/storages.md | 134 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 117 insertions(+), 17 deletions(-) diff --git a/docs/storages.md b/docs/storages.md index 9b4344eb90..e7821b863f 100644 --- a/docs/storages.md +++ b/docs/storages.md @@ -13,7 +13,7 @@ geekdocFilePath: storages.md ## Storage providers -To manage the file tree ocis uses reva *storage providers* that are accessing the underlying storage using a *storage driver*. The driver can be used to change the implementation of a storage aspect to better reflect the actual underying storage capabilities. As an example a move operation on a POSIX filesystem ([theoretically](https://danluu.com/deconstruct-files/)) is an atomic operation. When trying to implement a file tree on top S3 there is no native move operation that can be used. A naive implementation might fall bak on a COPY and DELETE. Some S3 implementations provide a COPY operation that uses an existing key as the source, so the file at least does not need to be reuploaded. In the worst case scenario, the rename of a folder with hundreds of thousands of objects, a reupload for every file has to be made. Instead of hiding this complexity a better choice might be to disable renaming of files or at least folders on S3. There are however implemetations of filesystems on top of S3 that store the tree metadata in dedicated objects or use a completely different persistance mechanism like a distributed key value store to implement the file tree aspect of a storage. +To manage the file tree ocis uses reva *storage providers* that are accessing the underlying storage using a *storage driver*. The driver can be used to change the implementation of a storage aspect to better reflect the actual underlying storage capabilities. As an example a move operation on a POSIX filesystem ([theoretically](https://danluu.com/deconstruct-files/)) is an atomic operation. When trying to implement a file tree on top S3 there is no native move operation that can be used. A naive implementation might fall bak on a COPY and DELETE. Some S3 implementations provide a COPY operation that uses an existing key as the source, so the file at least does not need to be reuploaded. In the worst case scenario, the rename of a folder with hundreds of thousands of objects, a reupload for every file has to be made. Instead of hiding this complexity a better choice might be to disable renaming of files or at least folders on S3. There are however implementations of filesystems on top of S3 that store the tree metadata in dedicated objects or use a completely different persistance mechanism like a distributed key value store to implement the file tree aspect of a storage. {{< hint info >}} @@ -21,18 +21,60 @@ While the *storage provider* is responsible for managing the tree, file up and d {{< /hint >}} ## Storage aspects +A lot of different storage technologies exist, ranging from general purpose file systems with POSIX semantics to software defined storage with multiple APIs. Choosing any of them is making a tradeoff decision. Or, if a storage technology is already in place it automatically predetermines the capabilities that can be made available. *Not all storage systems are created equal.* Unfortunately, no POSIX filesystem natively supports all storage aspects that ownCloud 10 requires: -- a hierarchical file tree - - id based lookup - - etag propagation - - subtree size accounting (size of all files in a folder and all its sub folders) -- sharing - - share expiry -- trash or undelete (trash can be done by wrapping rm) -- versions (only snapshots, which is a different concept) -A more extensive description of the storage aspects can be found in the [upstream documentation](https://reva.link/docs/concepts/storages/#aspects-of-storage-drivers) + +### A hierarchical file tree +An important aspect of a filesystem is organizing files and directories in a file hierarchy, or tree. It allows you to create, move and delete nodes. Beside the name a node also has well known metadata like size and mtime that are persisted in the tree as well. + +{{< hint info >}} +**Folders are not directories** +There is a difference between *folder* and *directory*: a *directory* is a file system concept. A *folder* is a metaphor for the concept of a physical file folder. There are also *virtual folders* or *smart folders* like the recent files folder which are no file system *directories*. So, every *directory* and every *virtual folder* is a *folder*, but not every *folder* is a *directory*. See [the folder metaphor in wikipedia](https://en.wikipedia.org/wiki/Directory_(computing)#Folder_metaphor). Also see the activity history below. +{{< /hint >}} + +#### Id based lookup +While traditionally nodes in the tree are reached by traversing the path the tree persistence should be prepared to look up a node by an id. Think of an inode in a POSIX filesystem. If this operation needs to be cached for performance reasons keep in mind that cache invalidation is hard and crawling all files to update the inode to path mapping takes O(n), not O(1). + +#### ETag propagation +For the state based sync a client can discover changes by recursively descending the tree and comparing the ETag for every node. If the storage technology supports propagating ETag changes up the tree, only the root node of a tree needs to be checked to determine if a discovery needs to be started and which nodes need to be traversed. This allows using the storage technology itself to persist all metadata that is necessary for sync, without additional services or caches. + +#### Subtree size accounting +The tree can keep track of how many bytes are stored in a folder. Similar to ETag propagation a change in file size is propagated up the hierarchy. + +{{< hint info >}} +**ETag and Size propagation** +When propagating the ETag (mtime) and size changes up the tree the question is where to stop. If all changes need to be propagated to the root of a storage then the root or busy folders will become a hotspot. There are two things to keep in mind: 1. propagation only happens until the root of a single space (a user private drive or a single group drive), 2. no cross storage propagation. The latter was used in oc10 to let clients detect when a file in a received shared folder changed. This functionality is moving to the storage registry which caches the ETag for every root so clients can discover if and which storage changed. +{{< /hint >}} + +#### Rename +Depending on the underlying storage technology some operations may either be slow, up to a point where it makes more sense to disable them entirely. One example is a folder rename: on S3 a *simple* folder rename translates to a copy and delete operation for every child of the renamed folder. There is an exception though: this restriction only applies if the S3 storage is treated like a filesystem, where the keys are the path and the value is the file content. There are smarter ways to implement file systems on top of S3, but again: there is always a tradeoff. + +{{< hint info >}} +**S3 has no rename** +Technically, [S3 has no rename operation at all](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-s3-objects.html#copy-object). By design, the location of the value is determined by the key, so it always has to do a copy and delete. Another example is the [redis RENAME operation](https://redis.io/commands/rename): while being specified as O(1) it *executes an implicit DEL operation, so if the deleted key contains a very big value it may cause high latency...* +{{< /hint >}} + +#### Arbitrary metadata persistence +In addition to well known metadata like name size and mtime, users might be able to add arbitrary metadata like tags, comments or [dublin core](https://en.wikipedia.org/wiki/Dublin_Core). In POSIX filesystems this maps to extended attributes. + +### Grant persistence +The CS3 API uses grants to describe access permissions. Storage systems have a wide range of permissions granularity and not all grants may be supported by every storage driver. POSIX ACLs for example have no expiry. If the storage system does not support certain grant properties, eg. expiry, then the storage driver may choose to implement them in a different way. Expiries could be persisted in a different way and checked periodically to remove the grants. Again: every decision is a tradeoff. + +### Trash persistence +After deleting a node the storage allows listing the deleted nodes and has an undo mechanism for them. + +### Versions persistence +A user can restore a previous version of a file. + +{{< hint info >}} +**Snapshots are not versions** +Modern POSIX filesystems support snapshotting of volumes. This is different from keeping track of versions to a file or folder, but might be another implementation strategy for a storage driver allow users to restore content. +{{< /hint >}} + +### Activity History +The storage keeps an activity history, tracking the different actions that have been performed. This does not only include file changes but also metadata changes like renames and permission changes. ## Storage drivers @@ -40,19 +82,77 @@ Reva currently has four storage driver implementations that can be used for *sto ### Local Storage Driver -The *minimal* storage driver for a POSIX based filesystem. It literally supports none of the storage aspect other than basic file tree management. Sharing can - to a degree - be implemented using POSIX ACLs, which is scheduled after finishing the eos storage driver. +The *minimal* storage driver for a POSIX based filesystem. It literally supports none of the storage aspect other than basic file tree management. Sharing can - to a degree - be implemented using POSIX ACLs. -To provide the other storage aspects we plan to implement a FUSE overlay filesystem which will add the different aspects on top of local filesystems like ext4, btrfs or xfs. It should work on NFSv45 as well, although NFSv4 supports RichACLs and we will explore how to leverage them to implement sharing at a future date. +- tree provided by a POSIX filesystem + - inefficient path by id lookup, currently uses the file path as id, so ids are not stable + - can store a uuid in extended attributes and use a cache to look them up, similar to the ownCloud driver + - no native ETag propagation, five options are available: + - built in propagation (changes bypassing ocis are not picked up until a rescan) + - built in inotify (requires 48 bytes of RAM per file, needs to keep track of every file and folder) + - external inotify (same RAM requirement, but could be triggered by external tools, eg. a workflow engine) + - kernel audit log (use the linux kernel audit to capture file events on the storage and offload them to a queue) + - fuse filesystem overlay + - no subtree accounting, same options as for ETag propagation + - efficient rename + - arbitrary metadata using extended attributes +- grant persistence + - using POSIX ACLs + - requires an LDAP server to make guest accounts available in the OS + - OCIS has glauth which contains all users + - an existing LDAP could be used if guests ar provisioned in another way + - using extended attributes to implement expiry or sharing that does not require OS level integration + - fuse filesystem overlay +- no native trash + - could use the [The FreeDesktop.org Trash specification](https://specifications.freedesktop.org/trash-spec/trashspec-latest.html) + - fuse filesystem overlay +- no native versions, multiple options possible + - git for folders + - rcs for single files + - rsnapshot for hourly / daily / weekly / monthly backups ... but this is not versioning as known from oc10 + - design new freedesktop spec, basically what is done in oc10 without the limitations or borrow ideas from the freedesktop trash spec + - fuse filesystem overlay + +To provide the other storage aspects we plan to implement a FUSE overlay filesystem which will add the different aspects on top of local filesystems like ext4, btrfs or xfs. It should work on NFSv45 as well, although NFSv4 supports RichACLs and we will explore how to leverage them to implement sharing at a future date. The idea is to use the storages native capabilities to deliver the best user experience. But again: that means making the right tradeoffs. ### OwnCloud Storage Driver -This is the current default storage driver. While it implements the file tree (using redis, including id based lookup), etag propagation, trash, versions and sharing (including expiry) using the data directory layout of ownCloud 10 it has [known limitations](https://github.com/owncloud/core/issues/28095) that cannot be fixed without changing the actual layout on disk. +This is the current default storage driver. While it implements the file tree (using redis, including id based lookup), ETag propagation, trash, versions and sharing (including expiry) using the data directory layout of ownCloud 10 it has [known limitations](https://github.com/owncloud/core/issues/28095) that cannot be fixed without changing the actual layout on disk. -We plan to deprecate it in favor of the local storage driver in combination with a FUSE based overlay filesystem when the migration path has been fully tested. +- tree provided by a POSIX filesystem + - file layout is mapped to the old ownCloud 10 layout + - the root of tree for a user on disk is prefixed with `/path/to/data//files/` + - efficient path by id lookup + - all files and folders get assigned a uuid in the extended attributes + - when starting the storage provider it will walk all files to populate a redis kv store for uuid to path lookup + - slow to boot trees with lots of nodes + - build in ETag propagation + - ETags are calculated based on mtime + - mtime is propagated by the storage driver + - changes bypassing ocis are not picked up until a restart of the storage provider + - no subtree accounting, same options as for local storage + - efficient rename + - TODO [update the kv store for path lookup](https://github.com/cs3org/reva/issues/985), this is an O(n) operation + - arbitrary metadata using extended attributes +- grant persistence + - using custom ACLs that are stored as extended attributes + - a grant corresponds to one extended attribute of 40-100 bytes, effectively limiting the number of shares to ~100-40 + - extended attributes have varying limitations, based on the underlying filesystem + - the linux kernel imposes a limit of 255bytes per name and 64KiB per value + - ext2/3/4: total bytes for all attributes of a file is limited to 4KiB (a filesystem block) + - xfs: limit of 64KiB per value + - btrfs: total bytes used for the name, value, and implementation overhead bytes 16KiB (the default filesystem nodesize value) + - does not require OS level integration +- built in trash + - trashed files are moved to `/path/to/data//files_trashbin/` + - trashed files are appended a timestamp `.d`, which [breaks trashing of files that reach the filesystems specific name limit](https://github.com/owncloud/core/issues/28095) +- built in versions + - file versions are stored in `/path/to/data//files_versions/` + - file versions are appended a timestamp `.d`, which [breaks versioning of files that reach the filesystems specific name limit](https://github.com/owncloud/core/issues/28095) ### EOS Storage Driver -The cern eos storage has evolved with ownCloud and natively supports id based lookup, etag propagation, subtree size accounting, sharing, trash and versions. To use it you need to change the default configuration of the `ocis-reva storage-home` command (or have a look at the Makefile ̀ eos-start` target): +The CERN eos storage has evolved with ownCloud and natively supports id based lookup, ETag propagation, subtree size accounting, sharing, trash and versions. To use it you need to change the default configuration of the `ocis-reva storage-home` command (or have a look at the Makefile ̀ eos-start` target): ``` export REVA_STORAGE_HOME_DRIVER=eos @@ -70,11 +170,11 @@ Pull requests to add explicit `reva storage-(s3|custom|...)` commands with worki ### S3 Storage Driver -A naive driver that treats the keys in an S3 cabaple storage as `/` delimited path names. While it does not support MOVE or etag propagation it can be used to read and write files. Better integration with native capabilities like versioning is possible but depends on the Use Case. Several storage solutions that provide an S3 interface also support some form of notifications that can be used to implement etag propagation. +A naive driver that treats the keys in an S3 capable storage as `/` delimited path names. While it does not support MOVE or ETag propagation it can be used to read and write files. Better integration with native capabilities like versioning is possible but depends on the Use Case. Several storage solutions that provide an S3 interface also support some form of notifications that can be used to implement ETag propagation. ## Data Providers -Clients using the CS3 API use an [InitiateFileDownload](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.InitiateFileDownloadRequest) and ]InitiateUpload](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.InitiateFileUploadRequest) request at the [reva gateway](https://cs3org.github.io/cs3apis/#cs3.gateway.v1beta1.GatewayAPI) to obtain a URL endpoint that can be used to eiter GET the file content or upload content using the resumable [tus.io](https://tus.io) protocol. +Clients using the CS3 API use an [InitiateFileDownload](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.InitiateFileDownloadRequest) and ]InitiateUpload](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.InitiateFileUploadRequest) request at the [reva gateway](https://cs3org.github.io/cs3apis/#cs3.gateway.v1beta1.GatewayAPI) to obtain a URL endpoint that can be used to either GET the file content or upload content using the resumable [tus.io](https://tus.io) protocol. The *data provider* uses the same *storage driver* as the *storage provider* but can be scaled independently. From 3781a22a4ed2408a1fcfafd9af2bba86fd70a141 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 22 Jul 2020 19:03:44 +0545 Subject: [PATCH 193/346] [Tests-Only] Update owncloud/core commit id for oC10APIAcceptanceTests (#391) arm failures unrelated --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 1830018dd1..27536aaf2b 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', '73023ed1e0009dc25a68d4cfd3ddf11b9c33d115'), + apiTests(ctx, 'master', '9db442250583d3b71e633cf77fbcf643ed67e994'), ] stages = [ From 8627042603e922ef6305138d04dfeb3d409fe0ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 22 Jul 2020 17:06:15 +0200 Subject: [PATCH 194/346] update reva for url signing (#392) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer arm build failures unrelated --- changelog/unreleased/update-reva-to-20200722.md | 13 +++++++++++++ go.mod | 2 +- go.sum | 5 +++++ pkg/command/frontend.go | 1 + 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/update-reva-to-20200722.md diff --git a/changelog/unreleased/update-reva-to-20200722.md b/changelog/unreleased/update-reva-to-20200722.md new file mode 100644 index 0000000000..018bf1f21b --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200722.md @@ -0,0 +1,13 @@ +Enhancement: update reva to v0.1.1-0.20200722125752-6dea7936f9d1 + +- Update reva to v0.1.1-0.20200722125752-6dea7936f9d1 +- Added signing key capability (reva/#986) +- Add functionality to create webdav references for OCM shares (reva/#974) +- Added a site locations exporter to Mentix (reva/#972) +- Add option to config to allow requests to hosts with unverified certificates (reva/#969) + +https://github.com/owncloud/ocis-reva/pull/392 +https://github.com/cs3org/reva/pull/986 +https://github.com/cs3org/reva/pull/974 +https://github.com/cs3org/reva/pull/972 +https://github.com/cs3org/reva/pull/969 diff --git a/go.mod b/go.mod index e892acb3df..49f4b65488 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200710143425-cf38a45220c5 + github.com/cs3org/reva v0.1.1-0.20200722125752-6dea7936f9d1 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect diff --git a/go.sum b/go.sum index 1b5ce82e5e..749d7d9ee3 100644 --- a/go.sum +++ b/go.sum @@ -99,6 +99,7 @@ github.com/aws/aws-sdk-go v1.32.11 h1:1nYF+Tfccn/hnAZsuwPPMSCVUVnx3j6LKOpx/WhgH0 github.com/aws/aws-sdk-go v1.32.11/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.33.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.33.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -177,6 +178,10 @@ github.com/cs3org/reva v0.1.1-0.20200709064551-91eed007038f h1:wsQOmNJGqxiXC3uTY github.com/cs3org/reva v0.1.1-0.20200709064551-91eed007038f/go.mod h1:VUBjQP8XCiWwFTPhE9P4I47k0NbdczQa2q6JsJN2PqY= github.com/cs3org/reva v0.1.1-0.20200710143425-cf38a45220c5 h1:buENUkKNviU7c3/+E19GTY2Vk+KpSHbXUeWJQsNbpCE= github.com/cs3org/reva v0.1.1-0.20200710143425-cf38a45220c5/go.mod h1:V/SuCrkQ+Mz7EOs4gAHgl6Bq9JmpWy0beVIfE3fGGX8= +github.com/cs3org/reva v0.1.1-0.20200722082002-1e57c4994e26 h1:F4Rq8kRwXvaQHDlSbgH1QTTDo54rmDuKOuMWf7ywVe8= +github.com/cs3org/reva v0.1.1-0.20200722082002-1e57c4994e26/go.mod h1:yPtGZIud+QVWLN7lxPwZLNj2/BCx3xu2DNUcTJE1Mkk= +github.com/cs3org/reva v0.1.1-0.20200722125752-6dea7936f9d1 h1:f/XZNSkCpS0ndLzMq/IRA0k2P1B/04Qvgf7s4qtQoGQ= +github.com/cs3org/reva v0.1.1-0.20200722125752-6dea7936f9d1/go.mod h1:yPtGZIud+QVWLN7lxPwZLNj2/BCx3xu2DNUcTJE1Mkk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= diff --git a/pkg/command/frontend.go b/pkg/command/frontend.go index 01d5e0d17a..815e0f3bf6 100644 --- a/pkg/command/frontend.go +++ b/pkg/command/frontend.go @@ -159,6 +159,7 @@ func Frontend(cfg *config.Config) *cli.Command { "productname": "reva", "hostname": "", }, + "support_url_signing": true, }, "checksums": map[string]interface{}{ "supported_types": []string{"SHA256"}, From e4ff8f693f3226967cf6e618d4677d50869c9b36 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Thu, 23 Jul 2020 10:44:45 +0200 Subject: [PATCH 195/346] Use alpine:latest instead of alpine:edge (#393) * Use alpine:latest instead of alpine:edge * Add changelog --- changelog/unreleased/use-alpine-latest.md | 5 +++++ docker/Dockerfile.linux.amd64 | 2 +- docker/Dockerfile.linux.arm | 2 +- docker/Dockerfile.linux.arm64 | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 changelog/unreleased/use-alpine-latest.md diff --git a/changelog/unreleased/use-alpine-latest.md b/changelog/unreleased/use-alpine-latest.md new file mode 100644 index 0000000000..8ef4ea4c80 --- /dev/null +++ b/changelog/unreleased/use-alpine-latest.md @@ -0,0 +1,5 @@ +Bugfix: build docker images with alpine:latest instead of alpine:edge + +ARM builds were failing when built on alpine:edge, so we switched to alpine:latest instead. + +https://github.com/owncloud/ocis-reva/pull/393 diff --git a/docker/Dockerfile.linux.amd64 b/docker/Dockerfile.linux.amd64 index af5c8f4d4e..231e033f2e 100644 --- a/docker/Dockerfile.linux.amd64 +++ b/docker/Dockerfile.linux.amd64 @@ -1,4 +1,4 @@ -FROM amd64/alpine:edge +FROM amd64/alpine:latest RUN apk update && \ apk upgrade && \ diff --git a/docker/Dockerfile.linux.arm b/docker/Dockerfile.linux.arm index 050d2234c3..af07021030 100644 --- a/docker/Dockerfile.linux.arm +++ b/docker/Dockerfile.linux.arm @@ -1,4 +1,4 @@ -FROM arm32v6/alpine:edge +FROM arm32v6/alpine:latest RUN apk update && \ apk upgrade && \ diff --git a/docker/Dockerfile.linux.arm64 b/docker/Dockerfile.linux.arm64 index d0fee613a8..e8f5ac3626 100644 --- a/docker/Dockerfile.linux.arm64 +++ b/docker/Dockerfile.linux.arm64 @@ -1,4 +1,4 @@ -FROM arm64v8/alpine:edge +FROM arm64v8/alpine:latest RUN apk update && \ apk upgrade && \ From 7a8442b75daeb7031b7a9d21d230acc2bfc107e3 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Thu, 23 Jul 2020 09:01:55 +0000 Subject: [PATCH 196/346] Automated changelog update [skip ci] --- CHANGELOG.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 384772c289..78196b7f8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,19 @@ The following sections list the changes in ocis-reva unreleased. ## Summary +* Bugfix - Build docker images with alpine:latest instead of alpine:edge: [#393](https://github.com/owncloud/ocis-reva/pull/393) * Enhancement - Update reva to v0.1.1-0.20200710143425-cf38a45220c5: [#920](https://github.com/cs3org/reva/pull/920) +* Enhancement - Update reva to v0.1.1-0.20200722125752-6dea7936f9d1: [#392](https://github.com/owncloud/ocis-reva/pull/392) ## Details +* Bugfix - Build docker images with alpine:latest instead of alpine:edge: [#393](https://github.com/owncloud/ocis-reva/pull/393) + + ARM builds were failing when built on alpine:edge, so we switched to alpine:latest instead. + + https://github.com/owncloud/ocis-reva/pull/393 + + * Enhancement - Update reva to v0.1.1-0.20200710143425-cf38a45220c5: [#920](https://github.com/cs3org/reva/pull/920) - Update reva to v0.1.1-0.20200710143425-cf38a45220c5 (#371) - Add wopi open (reva/#920) - @@ -23,6 +32,20 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/cs3org/reva/pull/958 https://github.com/cs3org/reva/pull/963 + +* Enhancement - Update reva to v0.1.1-0.20200722125752-6dea7936f9d1: [#392](https://github.com/owncloud/ocis-reva/pull/392) + + - Update reva to v0.1.1-0.20200722125752-6dea7936f9d1 - Added signing key capability + (reva/#986) - Add functionality to create webdav references for OCM shares (reva/#974) - + Added a site locations exporter to Mentix (reva/#972) - Add option to config to allow requests + to hosts with unverified certificates (reva/#969) + + https://github.com/owncloud/ocis-reva/pull/392 + https://github.com/cs3org/reva/pull/986 + https://github.com/cs3org/reva/pull/974 + https://github.com/cs3org/reva/pull/972 + https://github.com/cs3org/reva/pull/969 + # Changelog for [0.10.0] (2020-07-10) The following sections list the changes in ocis-reva 0.10.0. From ee3f1978b090034a299297b95a1bebd785f9c4e9 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Thu, 23 Jul 2020 13:21:33 +0200 Subject: [PATCH 197/346] Prepare release 0.11.0 (#395) --- .../{unreleased => 0.11.0_2020-07-23}/update-reva-to-20200710.md | 1 + .../{unreleased => 0.11.0_2020-07-23}/update-reva-to-20200722.md | 0 changelog/{unreleased => 0.11.0_2020-07-23}/use-alpine-latest.md | 0 3 files changed, 1 insertion(+) rename changelog/{unreleased => 0.11.0_2020-07-23}/update-reva-to-20200710.md (92%) rename changelog/{unreleased => 0.11.0_2020-07-23}/update-reva-to-20200722.md (100%) rename changelog/{unreleased => 0.11.0_2020-07-23}/use-alpine-latest.md (100%) diff --git a/changelog/unreleased/update-reva-to-20200710.md b/changelog/0.11.0_2020-07-23/update-reva-to-20200710.md similarity index 92% rename from changelog/unreleased/update-reva-to-20200710.md rename to changelog/0.11.0_2020-07-23/update-reva-to-20200710.md index 133c446cc6..a75b4dfdbe 100644 --- a/changelog/unreleased/update-reva-to-20200710.md +++ b/changelog/0.11.0_2020-07-23/update-reva-to-20200710.md @@ -7,6 +7,7 @@ Enhancement: update reva to v0.1.1-0.20200710143425-cf38a45220c5 - OCS share fix including file info after update (reva/#958) - Add flag to smtpclient for for unauthenticated SMTP (reva/#963) +https://github.com/owncloud/ocis-reva/pull/371 https://github.com/cs3org/reva/pull/920 https://github.com/cs3org/reva/pull/953 https://github.com/cs3org/reva/pull/955 diff --git a/changelog/unreleased/update-reva-to-20200722.md b/changelog/0.11.0_2020-07-23/update-reva-to-20200722.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200722.md rename to changelog/0.11.0_2020-07-23/update-reva-to-20200722.md diff --git a/changelog/unreleased/use-alpine-latest.md b/changelog/0.11.0_2020-07-23/use-alpine-latest.md similarity index 100% rename from changelog/unreleased/use-alpine-latest.md rename to changelog/0.11.0_2020-07-23/use-alpine-latest.md From 40a23cd2b3035327ddffad3bc85b01041e7a5043 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Thu, 23 Jul 2020 11:37:16 +0000 Subject: [PATCH 198/346] Automated changelog update [skip ci] --- CHANGELOG.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78196b7f8c..2d2e5fbe2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,13 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.11.0] (2020-07-23) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.11.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.10.0...master +[0.11.0]: https://github.com/owncloud/ocis-reva/compare/v0.10.0...v0.11.0 ## Summary * Bugfix - Build docker images with alpine:latest instead of alpine:edge: [#393](https://github.com/owncloud/ocis-reva/pull/393) -* Enhancement - Update reva to v0.1.1-0.20200710143425-cf38a45220c5: [#920](https://github.com/cs3org/reva/pull/920) +* Enhancement - Update reva to v0.1.1-0.20200710143425-cf38a45220c5: [#371](https://github.com/owncloud/ocis-reva/pull/371) * Enhancement - Update reva to v0.1.1-0.20200722125752-6dea7936f9d1: [#392](https://github.com/owncloud/ocis-reva/pull/392) ## Details @@ -19,13 +19,14 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/owncloud/ocis-reva/pull/393 -* Enhancement - Update reva to v0.1.1-0.20200710143425-cf38a45220c5: [#920](https://github.com/cs3org/reva/pull/920) +* Enhancement - Update reva to v0.1.1-0.20200710143425-cf38a45220c5: [#371](https://github.com/owncloud/ocis-reva/pull/371) - Update reva to v0.1.1-0.20200710143425-cf38a45220c5 (#371) - Add wopi open (reva/#920) - Added a CS3API compliant data exporter to Mentix (reva/#955) - Read SMTP password from env if not set in config (reva/#953) - OCS share fix including file info after update (reva/#958) - Add flag to smtpclient for for unauthenticated SMTP (reva/#963) + https://github.com/owncloud/ocis-reva/pull/371 https://github.com/cs3org/reva/pull/920 https://github.com/cs3org/reva/pull/953 https://github.com/cs3org/reva/pull/955 From d8224d5eda3365de736905e4085957d8c9b10696 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 22 Jul 2020 13:29:20 +0200 Subject: [PATCH 199/346] Fix typos in storage doc --- docs/storages.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/storages.md b/docs/storages.md index e7821b863f..aecb60d8f8 100644 --- a/docs/storages.md +++ b/docs/storages.md @@ -13,7 +13,7 @@ geekdocFilePath: storages.md ## Storage providers -To manage the file tree ocis uses reva *storage providers* that are accessing the underlying storage using a *storage driver*. The driver can be used to change the implementation of a storage aspect to better reflect the actual underlying storage capabilities. As an example a move operation on a POSIX filesystem ([theoretically](https://danluu.com/deconstruct-files/)) is an atomic operation. When trying to implement a file tree on top S3 there is no native move operation that can be used. A naive implementation might fall bak on a COPY and DELETE. Some S3 implementations provide a COPY operation that uses an existing key as the source, so the file at least does not need to be reuploaded. In the worst case scenario, the rename of a folder with hundreds of thousands of objects, a reupload for every file has to be made. Instead of hiding this complexity a better choice might be to disable renaming of files or at least folders on S3. There are however implementations of filesystems on top of S3 that store the tree metadata in dedicated objects or use a completely different persistance mechanism like a distributed key value store to implement the file tree aspect of a storage. +To manage the file tree ocis uses reva *storage providers* that are accessing the underlying storage using a *storage driver*. The driver can be used to change the implementation of a storage aspect to better reflect the actual underlying storage capabilities. As an example a move operation on a POSIX filesystem ([theoretically](https://danluu.com/deconstruct-files/)) is an atomic operation. When trying to implement a file tree on top of S3 there is no native move operation that can be used. A naive implementation might fall back on a COPY and DELETE. Some S3 implementations provide a COPY operation that uses an existing key as the source, so the file at least does not need to be reuploaded. In the worst case scenario, to rename of a folder with hundreds of thousands of objects, a reupload for every file has to be made. Instead of hiding this complexity a better choice might be to disable renaming of files or at least folders on S3. There are however implementations of filesystems on top of S3 that store the tree metadata in dedicated objects or use a completely different persistence mechanism like a distributed key value store to implement the file tree aspect of a storage. {{< hint info >}} @@ -45,7 +45,7 @@ The tree can keep track of how many bytes are stored in a folder. Similar to ETa {{< hint info >}} **ETag and Size propagation** -When propagating the ETag (mtime) and size changes up the tree the question is where to stop. If all changes need to be propagated to the root of a storage then the root or busy folders will become a hotspot. There are two things to keep in mind: 1. propagation only happens until the root of a single space (a user private drive or a single group drive), 2. no cross storage propagation. The latter was used in oc10 to let clients detect when a file in a received shared folder changed. This functionality is moving to the storage registry which caches the ETag for every root so clients can discover if and which storage changed. +When propagating the ETag (mtime) and size changes up the tree the question is where to stop. If all changes need to be propagated to the root of a storage then the root or busy folders will become a hotspot. There are two things to keep in mind: 1. propagation only happens up to the root of a single space (a user private drive or a single group drive), 2. no cross storage propagation. The latter was used in oc10 to let clients detect when a file in a received shared folder changed. This functionality is moving to the storage registry which caches the ETag for every root so clients can discover if and which storage changed. {{< /hint >}} #### Rename @@ -60,7 +60,7 @@ Technically, [S3 has no rename operation at all](https://docs.aws.amazon.com/sdk In addition to well known metadata like name size and mtime, users might be able to add arbitrary metadata like tags, comments or [dublin core](https://en.wikipedia.org/wiki/Dublin_Core). In POSIX filesystems this maps to extended attributes. ### Grant persistence -The CS3 API uses grants to describe access permissions. Storage systems have a wide range of permissions granularity and not all grants may be supported by every storage driver. POSIX ACLs for example have no expiry. If the storage system does not support certain grant properties, eg. expiry, then the storage driver may choose to implement them in a different way. Expiries could be persisted in a different way and checked periodically to remove the grants. Again: every decision is a tradeoff. +The CS3 API uses grants to describe access permissions. Storage systems have a wide range of permissions granularity and not all grants may be supported by every storage driver. POSIX ACLs for example have no expiry. If the storage system does not support certain grant properties, e.g. expiry, then the storage driver may choose to implement them in a different way. Expiries could be persisted in a different way and checked periodically to remove the grants. Again: every decision is a tradeoff. ### Trash persistence After deleting a node the storage allows listing the deleted nodes and has an undo mechanism for them. @@ -70,7 +70,7 @@ A user can restore a previous version of a file. {{< hint info >}} **Snapshots are not versions** -Modern POSIX filesystems support snapshotting of volumes. This is different from keeping track of versions to a file or folder, but might be another implementation strategy for a storage driver allow users to restore content. +Modern POSIX filesystems support snapshotting of volumes. This is different from keeping track of versions to a file or folder, but might be another implementation strategy for a storage driver to allow users to restore content. {{< /hint >}} ### Activity History @@ -90,7 +90,7 @@ The *minimal* storage driver for a POSIX based filesystem. It literally supports - no native ETag propagation, five options are available: - built in propagation (changes bypassing ocis are not picked up until a rescan) - built in inotify (requires 48 bytes of RAM per file, needs to keep track of every file and folder) - - external inotify (same RAM requirement, but could be triggered by external tools, eg. a workflow engine) + - external inotify (same RAM requirement, but could be triggered by external tools, e.g. a workflow engine) - kernel audit log (use the linux kernel audit to capture file events on the storage and offload them to a queue) - fuse filesystem overlay - no subtree accounting, same options as for ETag propagation @@ -188,4 +188,4 @@ We are planning to further separate the concerns and use a local storage provide It would allow us to extend the local storage driver with missing storage aspects while keeping a tree like filesystem that end users are used to see when sshing into the machine. ### Upload to Quarantine area -Antivirus scanning of random files uploaded from untrusted sources and executing metadata extraction or thumbnail generation should happen in a sandboxed system to prevent malicious users from gaining any information about the system. By spawning a new container with access to only the uploaded data we can further limit the attack surface. \ No newline at end of file +Antivirus scanning of random files uploaded from untrusted sources and executing metadata extraction or thumbnail generation should happen in a sandboxed system to prevent malicious users from gaining any information about the system. By spawning a new container with access to only the uploaded data we can further limit the attack surface. From 71647fdf1e67394d50cc4a098f33838e3fea0a9a Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 22 Jul 2020 13:32:46 +0200 Subject: [PATCH 200/346] Add changelog --- changelog/unreleased/update-docs.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 changelog/unreleased/update-docs.md diff --git a/changelog/unreleased/update-docs.md b/changelog/unreleased/update-docs.md new file mode 100644 index 0000000000..9e01c402a3 --- /dev/null +++ b/changelog/unreleased/update-docs.md @@ -0,0 +1,6 @@ +Enhancement: Update storage documentation + +We added details to the documentation about storage requirements known from ownCloud 10, the local storage driver and the ownCloud storage driver. + +https://github.com/owncloud/ocis-reva/pull/384 +https://github.com/owncloud/ocis-reva/pull/390 From 79068fe85f82e02581141fc70750b518c2c1d6c7 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Thu, 23 Jul 2020 08:27:00 +0200 Subject: [PATCH 201/346] Fix one more wording issue --- docs/storages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/storages.md b/docs/storages.md index aecb60d8f8..bc465e4ff7 100644 --- a/docs/storages.md +++ b/docs/storages.md @@ -13,7 +13,7 @@ geekdocFilePath: storages.md ## Storage providers -To manage the file tree ocis uses reva *storage providers* that are accessing the underlying storage using a *storage driver*. The driver can be used to change the implementation of a storage aspect to better reflect the actual underlying storage capabilities. As an example a move operation on a POSIX filesystem ([theoretically](https://danluu.com/deconstruct-files/)) is an atomic operation. When trying to implement a file tree on top of S3 there is no native move operation that can be used. A naive implementation might fall back on a COPY and DELETE. Some S3 implementations provide a COPY operation that uses an existing key as the source, so the file at least does not need to be reuploaded. In the worst case scenario, to rename of a folder with hundreds of thousands of objects, a reupload for every file has to be made. Instead of hiding this complexity a better choice might be to disable renaming of files or at least folders on S3. There are however implementations of filesystems on top of S3 that store the tree metadata in dedicated objects or use a completely different persistence mechanism like a distributed key value store to implement the file tree aspect of a storage. +To manage the file tree ocis uses reva *storage providers* that are accessing the underlying storage using a *storage driver*. The driver can be used to change the implementation of a storage aspect to better reflect the actual underlying storage capabilities. As an example a move operation on a POSIX filesystem ([theoretically](https://danluu.com/deconstruct-files/)) is an atomic operation. When trying to implement a file tree on top of S3 there is no native move operation that can be used. A naive implementation might fall back on a COPY and DELETE. Some S3 implementations provide a COPY operation that uses an existing key as the source, so the file at least does not need to be reuploaded. In the worst case scenario, which is renaming a folder with hundreds of thousands of objects, a reupload for every file has to be made. Instead of hiding this complexity a better choice might be to disable renaming of files or at least folders on S3. There are however implementations of filesystems on top of S3 that store the tree metadata in dedicated objects or use a completely different persistence mechanism like a distributed key value store to implement the file tree aspect of a storage. {{< hint info >}} From ef92a0b3ffedd4989e355d6672f672f1e98bb3bf Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Fri, 24 Jul 2020 11:53:18 +0000 Subject: [PATCH 202/346] Automated changelog update [skip ci] --- CHANGELOG.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d2e5fbe2b..67dc6a9601 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,23 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.11.0...master + +## Summary + +* Enhancement - Update storage documentation: [#384](https://github.com/owncloud/ocis-reva/pull/384) + +## Details + +* Enhancement - Update storage documentation: [#384](https://github.com/owncloud/ocis-reva/pull/384) + + We added details to the documentation about storage requirements known from ownCloud 10, the + local storage driver and the ownCloud storage driver. + + https://github.com/owncloud/ocis-reva/pull/384 + https://github.com/owncloud/ocis-reva/pull/390 + # Changelog for [0.11.0] (2020-07-23) The following sections list the changes in ocis-reva 0.11.0. From 5e5ae356df122ee22967c97fbfeb93ccb1cf7552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Mon, 27 Jul 2020 13:47:39 +0200 Subject: [PATCH 203/346] split LDAP filters (#399) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * split LDAP filters Signed-off-by: Jörn Friedrich Dreyer * use uid attribute for testing Signed-off-by: Jörn Friedrich Dreyer --- .drone.star | 4 ++-- changelog/unreleased/update-ldap-config.md | 12 ++++++++++ .../unreleased/update-reva-to-20200724.md | 13 +++++++++++ go.mod | 4 +++- go.sum | 9 ++++++++ pkg/command/authbasic.go | 3 +-- pkg/command/users.go | 1 + pkg/config/config.go | 2 ++ pkg/flagset/authbasic.go | 21 ++++++----------- pkg/flagset/users.go | 23 +++++++++++++------ 10 files changed, 66 insertions(+), 26 deletions(-) create mode 100644 changelog/unreleased/update-ldap-config.md create mode 100644 changelog/unreleased/update-reva-to-20200724.md diff --git a/.drone.star b/.drone.star index 27536aaf2b..489fa21d9e 100644 --- a/.drone.star +++ b/.drone.star @@ -58,7 +58,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', 'REVA_LDAP_BIND_PASSWORD': 'admin', 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', - 'REVA_LDAP_SCHEMA_DISPLAYNAME': 'displayName', + 'REVA_LDAP_SCHEMA_UID': 'uid', 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', @@ -272,7 +272,7 @@ def testing(ctx): 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', 'REVA_LDAP_BIND_PASSWORD': 'admin', 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', - 'REVA_LDAP_SCHEMA_DISPLAYNAME': 'displayName', + 'REVA_LDAP_SCHEMA_UID': 'uid', 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', diff --git a/changelog/unreleased/update-ldap-config.md b/changelog/unreleased/update-ldap-config.md new file mode 100644 index 0000000000..201a2a1efb --- /dev/null +++ b/changelog/unreleased/update-ldap-config.md @@ -0,0 +1,12 @@ +Bugfix: Update LDAP filters + +With the separation of use and find filters we can now use a filter that taken into account a users uuid as well as his username. This is necessary to make sharing work with the new account service which assigns accounts an immutable account id that is different from the username. Furthermore, the separate find filters now allows searching users by their displayname or email as well. + + +``` +userfilter = "(&(objectclass=posixAccount)(|(ownclouduuid={{.OpaqueId}})(cn={{.OpaqueId}})))" +findfilter = "(&(objectclass=posixAccount)(|(cn={{query}}*)(displayname={{query}}*)(mail={{query}}*)))" +``` + +https://github.com/owncloud/ocis-reva/pull/399 +https://github.com/cs3org/reva/pull/996 \ No newline at end of file diff --git a/changelog/unreleased/update-reva-to-20200724.md b/changelog/unreleased/update-reva-to-20200724.md new file mode 100644 index 0000000000..9f21964d58 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200724.md @@ -0,0 +1,13 @@ +Enhancement: update reva to v0.1.1-0.20200724135750-b46288b375d6 + +- Update reva to v0.1.1-0.20200724135750-b46288b375d6 +- Split LDAP user filters (reva/#996) +- meshdirectory: Add invite forward API to provider links (reva/#1000) +- OCM: Pass the link to the meshdirectory service in token mail (reva/#1002) +- Update github.com/go-ldap/ldap to v3 (reva/#1004) + +https://github.com/owncloud/ocis-reva/pull/399 +https://github.com/cs3org/reva/pull/996 +https://github.com/cs3org/reva/pull/1000 +https://github.com/cs3org/reva/pull/1002 +https://github.com/cs3org/reva/pull/1004 \ No newline at end of file diff --git a/go.mod b/go.mod index 49f4b65488..080c7e7d51 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200722125752-6dea7936f9d1 + github.com/cs3org/reva v0.1.1-0.20200724135750-b46288b375d6 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect @@ -19,5 +19,7 @@ require ( github.com/restic/calens v0.2.0 github.com/spf13/viper v1.6.1 github.com/uber/jaeger-client-go v2.20.1+incompatible // indirect + gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect gopkg.in/ini.v1 v1.51.1 // indirect + gopkg.in/ldap.v2 v2.5.1 // indirect ) diff --git a/go.sum b/go.sum index 749d7d9ee3..5890726701 100644 --- a/go.sum +++ b/go.sum @@ -34,6 +34,7 @@ github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocm github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvdeRAgDr0izn4z5Ij88= +github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -100,6 +101,7 @@ github.com/aws/aws-sdk-go v1.32.11/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZve github.com/aws/aws-sdk-go v1.32.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.33.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.33.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.33.11/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -182,6 +184,8 @@ github.com/cs3org/reva v0.1.1-0.20200722082002-1e57c4994e26 h1:F4Rq8kRwXvaQHDlSb github.com/cs3org/reva v0.1.1-0.20200722082002-1e57c4994e26/go.mod h1:yPtGZIud+QVWLN7lxPwZLNj2/BCx3xu2DNUcTJE1Mkk= github.com/cs3org/reva v0.1.1-0.20200722125752-6dea7936f9d1 h1:f/XZNSkCpS0ndLzMq/IRA0k2P1B/04Qvgf7s4qtQoGQ= github.com/cs3org/reva v0.1.1-0.20200722125752-6dea7936f9d1/go.mod h1:yPtGZIud+QVWLN7lxPwZLNj2/BCx3xu2DNUcTJE1Mkk= +github.com/cs3org/reva v0.1.1-0.20200724135750-b46288b375d6 h1:xTJzgtusJvbz08fYVnxlxNu4BhyGCS46uwiD4QrYnOI= +github.com/cs3org/reva v0.1.1-0.20200724135750-b46288b375d6/go.mod h1:qwW0YfYf6JaAcTxBXsPpa8JIn2wHxqt5j/bjH7myI1k= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= @@ -222,6 +226,7 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-acme/lego/v3 v3.1.0/go.mod h1:074uqt+JS6plx+c9Xaiz6+L+GBb+7itGtzfcDM2AhEE= github.com/go-acme/lego/v3 v3.3.0/go.mod h1:iGSY2vQrvQs3WezicSB/oVbO2eCrD88dpWPwb1qLqu0= +github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-cmd/cmd v1.0.5/go.mod h1:y8q8qlK5wQibcw63djSl/ntiHUHXHGdCkPk0j4QeW4s= @@ -230,6 +235,7 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-ini/ini v1.44.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-ldap/ldap/v3 v3.2.3/go.mod h1:iYS1MdmrmceOJ1QOTnRXrIs7i3kloqtmGQjRvjKpyMg= github.com/go-log/log v0.1.0/go.mod h1:4mBwpdRMFLiuXZDCwU2lKQFsoSCo72j3HqBK9d81N2M= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= @@ -459,6 +465,7 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -638,6 +645,7 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg= github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -927,6 +935,7 @@ golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200320181102-891825fb96df h1:lDWgvUvNnaTnNBc/dwOty86cFeKoKWbwy2wQj0gIxbU= golang.org/x/crypto v0.0.0-20200320181102-891825fb96df/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= diff --git a/pkg/command/authbasic.go b/pkg/command/authbasic.go index e01ded8633..96fda922de 100644 --- a/pkg/command/authbasic.go +++ b/pkg/command/authbasic.go @@ -97,8 +97,7 @@ func AuthBasic(cfg *config.Config) *cli.Command { "hostname": cfg.Reva.LDAP.Hostname, "port": cfg.Reva.LDAP.Port, "base_dn": cfg.Reva.LDAP.BaseDN, - "userfilter": cfg.Reva.LDAP.UserFilter, - "groupfilter": cfg.Reva.LDAP.GroupFilter, + "loginfilter": cfg.Reva.LDAP.LoginFilter, "bind_username": cfg.Reva.LDAP.BindDN, "bind_password": cfg.Reva.LDAP.BindPassword, "idp": cfg.Reva.LDAP.IDP, diff --git a/pkg/command/users.go b/pkg/command/users.go index 28b872a268..d215f59e87 100644 --- a/pkg/command/users.go +++ b/pkg/command/users.go @@ -97,6 +97,7 @@ func Users(cfg *config.Config) *cli.Command { "port": cfg.Reva.LDAP.Port, "base_dn": cfg.Reva.LDAP.BaseDN, "userfilter": cfg.Reva.LDAP.UserFilter, + "findfilter": cfg.Reva.LDAP.FindFilter, "groupfilter": cfg.Reva.LDAP.GroupFilter, "bind_username": cfg.Reva.LDAP.BindDN, "bind_password": cfg.Reva.LDAP.BindPassword, diff --git a/pkg/config/config.go b/pkg/config/config.go index 2c3f7beb26..c2b0654833 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -206,7 +206,9 @@ type LDAP struct { Hostname string Port int BaseDN string + LoginFilter string UserFilter string + FindFilter string GroupFilter string BindDN string BindPassword string diff --git a/pkg/flagset/authbasic.go b/pkg/flagset/authbasic.go index 7e0ee8f68b..021bba3ec1 100644 --- a/pkg/flagset/authbasic.go +++ b/pkg/flagset/authbasic.go @@ -123,18 +123,11 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.LDAP.BaseDN, }, &cli.StringFlag{ - Name: "ldap-userfilter", - Value: "(&(objectclass=posixAccount)(cn=%s))", - Usage: "LDAP userfilter", - EnvVars: []string{"REVA_LDAP_USERFILTER"}, - Destination: &cfg.Reva.LDAP.UserFilter, - }, - &cli.StringFlag{ - Name: "ldap-groupfilter", - Value: "(&(objectclass=posixGroup)(cn=%s))", - Usage: "LDAP groupfilter", - EnvVars: []string{"REVA_LDAP_GROUPFILTER"}, - Destination: &cfg.Reva.LDAP.GroupFilter, + Name: "ldap-loginfilter", + Value: "(&(objectclass=posixAccount)(|(cn={{login}})(mail={{login}})))", + Usage: "LDAP login filter", + EnvVars: []string{"REVA_LDAP_LOGINFILTER"}, + Destination: &cfg.Reva.LDAP.LoginFilter, }, &cli.StringFlag{ Name: "ldap-bind-dn", @@ -160,7 +153,7 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { // ldap dn is always the dn &cli.StringFlag{ Name: "ldap-schema-uid", - Value: "uid", + Value: "ownclouduuid", Usage: "LDAP schema uid", EnvVars: []string{"REVA_LDAP_SCHEMA_UID"}, Destination: &cfg.Reva.LDAP.Schema.UID, @@ -174,7 +167,7 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "ldap-schema-displayName", - Value: "sn", + Value: "displayname", Usage: "LDAP schema displayName", EnvVars: []string{"REVA_LDAP_SCHEMA_DISPLAYNAME"}, Destination: &cfg.Reva.LDAP.Schema.DisplayName, diff --git a/pkg/flagset/users.go b/pkg/flagset/users.go index 179a93ba2d..24b9b6ea0e 100644 --- a/pkg/flagset/users.go +++ b/pkg/flagset/users.go @@ -107,15 +107,24 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "ldap-userfilter", - Value: "(&(objectclass=posixAccount)(cn=%s*))", - Usage: "LDAP userfilter", + Value: "(&(objectclass=posixAccount)(|(ownclouduuid={{.OpaqueId}})(cn={{.OpaqueId}})))", + Usage: "LDAP filter used when getting a user. The CS3 userid properties {{.OpaqueId}} and {{.Idp}} are available.", EnvVars: []string{"REVA_LDAP_USERFILTER"}, Destination: &cfg.Reva.LDAP.UserFilter, }, &cli.StringFlag{ - Name: "ldap-groupfilter", - Value: "(&(objectclass=posixGroup)(cn=%s*))", - Usage: "LDAP groupfilter", + Name: "ldap-findfilter", + Value: "(&(objectclass=posixAccount)(|(cn={{query}}*)(displayname={{query}}*)(mail={{query}}*)))", + Usage: "LDAP filter used when searching for recipients. {{query}} will be replaced with the search query", + EnvVars: []string{"REVA_LDAP_FINDFILTER"}, + Destination: &cfg.Reva.LDAP.FindFilter, + }, + &cli.StringFlag{ + Name: "ldap-groupfilter", + // FIXME the reva implementation needs to use the memberof overlay to get the cn when it only has the uuid, + // because the ldap schema either uses the dn or the member(of) attributes to establish membership + Value: "(&(objectclass=posixGroup)(ownclouduuid={{.OpaqueId}}*))", // This filter will never work + Usage: "LDAP filter used when getting the groups of a user. The CS3 userid properties {{.OpaqueId}} and {{.Idp}} are available.", EnvVars: []string{"REVA_LDAP_GROUPFILTER"}, Destination: &cfg.Reva.LDAP.GroupFilter, }, @@ -143,7 +152,7 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { // ldap dn is always the dn &cli.StringFlag{ Name: "ldap-schema-uid", - Value: "uid", + Value: "ownclouduuid", Usage: "LDAP schema uid", EnvVars: []string{"REVA_LDAP_SCHEMA_UID"}, Destination: &cfg.Reva.LDAP.Schema.UID, @@ -157,7 +166,7 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "ldap-schema-displayName", - Value: "sn", + Value: "displayname", Usage: "LDAP schema displayName", EnvVars: []string{"REVA_LDAP_SCHEMA_DISPLAYNAME"}, Destination: &cfg.Reva.LDAP.Schema.DisplayName, From cd3009a1c0428ebbf346de48b25bf45ae8e11375 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Mon, 27 Jul 2020 12:02:38 +0000 Subject: [PATCH 204/346] Automated changelog update [skip ci] --- CHANGELOG.md | 34 ++++++++++++++++++++++++++++++++++ go.sum | 1 + 2 files changed, 35 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67dc6a9601..15e5c79870 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,30 @@ The following sections list the changes in ocis-reva unreleased. ## Summary +* Bugfix - Update LDAP filters: [#399](https://github.com/owncloud/ocis-reva/pull/399) * Enhancement - Update storage documentation: [#384](https://github.com/owncloud/ocis-reva/pull/384) +* Enhancement - Update reva to v0.1.1-0.20200724135750-b46288b375d6: [#399](https://github.com/owncloud/ocis-reva/pull/399) ## Details +* Bugfix - Update LDAP filters: [#399](https://github.com/owncloud/ocis-reva/pull/399) + + With the separation of use and find filters we can now use a filter that taken into account a users + uuid as well as his username. This is necessary to make sharing work with the new account service + which assigns accounts an immutable account id that is different from the username. + Furthermore, the separate find filters now allows searching users by their displayname or + email as well. + + ``` userfilter = + "(&(objectclass=posixAccount)(|(ownclouduuid={{.OpaqueId}})(cn={{.OpaqueId}})))" + findfilter = + "(&(objectclass=posixAccount)(|(cn={{query}}*)(displayname={{query}}*)(mail={{query}}*)))" + ``` + + https://github.com/owncloud/ocis-reva/pull/399 + https://github.com/cs3org/reva/pull/996 + + * Enhancement - Update storage documentation: [#384](https://github.com/owncloud/ocis-reva/pull/384) We added details to the documentation about storage requirements known from ownCloud 10, the @@ -18,6 +38,20 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/owncloud/ocis-reva/pull/384 https://github.com/owncloud/ocis-reva/pull/390 + +* Enhancement - Update reva to v0.1.1-0.20200724135750-b46288b375d6: [#399](https://github.com/owncloud/ocis-reva/pull/399) + + - Update reva to v0.1.1-0.20200724135750-b46288b375d6 - Split LDAP user filters + (reva/#996) - meshdirectory: Add invite forward API to provider links (reva/#1000) - OCM: + Pass the link to the meshdirectory service in token mail (reva/#1002) - Update + github.com/go-ldap/ldap to v3 (reva/#1004) + + https://github.com/owncloud/ocis-reva/pull/399 + https://github.com/cs3org/reva/pull/996 + https://github.com/cs3org/reva/pull/1000 + https://github.com/cs3org/reva/pull/1002 + https://github.com/cs3org/reva/pull/1004 + # Changelog for [0.11.0] (2020-07-23) The following sections list the changes in ocis-reva 0.11.0. diff --git a/go.sum b/go.sum index 5890726701..24549abdcc 100644 --- a/go.sum +++ b/go.sum @@ -935,6 +935,7 @@ golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200320181102-891825fb96df h1:lDWgvUvNnaTnNBc/dwOty86cFeKoKWbwy2wQj0gIxbU= golang.org/x/crypto v0.0.0-20200320181102-891825fb96df/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9 h1:vEg9joUBmeBcK9iSJftGNf3coIG4HqZElCPehJsfAYM= golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= From 8de1129e7790b1035271c5ac3af4363dfbb792ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 28 Jul 2020 10:40:33 +0200 Subject: [PATCH 205/346] update reva to v0.1.1-0.20200728071211-c948977dd3a0 (#407) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .../unreleased/update-reva-to-20200728.md | 11 ++++ go.mod | 5 +- go.sum | 65 +++++-------------- 3 files changed, 27 insertions(+), 54 deletions(-) create mode 100644 changelog/unreleased/update-reva-to-20200728.md diff --git a/changelog/unreleased/update-reva-to-20200728.md b/changelog/unreleased/update-reva-to-20200728.md new file mode 100644 index 0000000000..132f0ee93f --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200728.md @@ -0,0 +1,11 @@ +Enhancement: update reva to v0.1.1-0.20200728071211-c948977dd3a0 + +- Update reva to v0.1.1-0.20200728071211-c948977dd3a0 +- Use proper logging for ldap auth requests (reva/#1008) +- Update github.com/eventials/go-tus to v0.0.0-20200718001131-45c7ec8f5d59 (reva/#1007) +- Check if SMTP credentials are nil (reva/#1006) + +https://github.com/owncloud/ocis-reva/pull/407 +https://github.com/cs3org/reva/pull/1008 +https://github.com/cs3org/reva/pull/1007 +https://github.com/cs3org/reva/pull/1006 \ No newline at end of file diff --git a/go.mod b/go.mod index 080c7e7d51..9b4746b740 100644 --- a/go.mod +++ b/go.mod @@ -3,10 +3,9 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200724135750-b46288b375d6 + github.com/cs3org/reva v0.1.1-0.20200728071211-c948977dd3a0 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect - github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect github.com/micro/cli/v2 v2.1.1 github.com/micro/go-micro v1.18.0 github.com/micro/go-micro/v2 v2.0.0 @@ -19,7 +18,5 @@ require ( github.com/restic/calens v0.2.0 github.com/spf13/viper v1.6.1 github.com/uber/jaeger-client-go v2.20.1+incompatible // indirect - gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect gopkg.in/ini.v1 v1.51.1 // indirect - gopkg.in/ldap.v2 v2.5.1 // indirect ) diff --git a/go.sum b/go.sum index 24549abdcc..d2885547de 100644 --- a/go.sum +++ b/go.sum @@ -15,8 +15,6 @@ cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiy contrib.go.opencensus.io/exporter/jaeger v0.2.0 h1:nhTv/Ry3lGmqbJ/JGvCjWxBl5ozRfqo86Ngz59UAlfk= contrib.go.opencensus.io/exporter/jaeger v0.2.0/go.mod h1:ukdzwIYYHgZ7QYtwVFQUjiT28BJHiMhTERo32s6qVgM= contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= -contrib.go.opencensus.io/exporter/prometheus v0.1.0 h1:SByaIoWwNgMdPSgl5sMqM2KDE5H/ukPWBRo314xiDvg= -contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= contrib.go.opencensus.io/exporter/prometheus v0.2.0 h1:9PUk0/8V0LGoPqVCrf8fQZJkFGBxudu8jOjQSMwoD6w= contrib.go.opencensus.io/exporter/prometheus v0.2.0/go.mod h1:TYmVAyE8Tn1lyPcltF5IYYfWp2KHu7lQGIZnj8iZMys= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -34,6 +32,7 @@ github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocm github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvdeRAgDr0izn4z5Ij88= +github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= @@ -84,23 +83,7 @@ github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt github.com/aws/aws-sdk-go v1.20.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.31.1 h1:5tv3VtTS/IM1yZ6lxMQQVmH28SkkR3b3w+6u+9rcLx4= -github.com/aws/aws-sdk-go v1.31.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.31.7 h1:TCA+pXKvzDMA3vVqhK21cCy5GarC8pTQb/DrVOWI3iY= -github.com/aws/aws-sdk-go v1.31.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.32.3/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.32.5/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.32.8/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.32.9 h1:ai+NZsCV+Z97+jqIKya49gbCObOay9FKww0/VCNuXug= -github.com/aws/aws-sdk-go v1.32.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.32.10 h1:cEJTxGcBGlsM2tN36MZQKhlK93O9HrnaRs+lq2f0zN8= -github.com/aws/aws-sdk-go v1.32.10/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.32.11 h1:1nYF+Tfccn/hnAZsuwPPMSCVUVnx3j6LKOpx/WhgH0A= -github.com/aws/aws-sdk-go v1.32.11/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.32.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.33.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.33.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.33.11 h1:A7b3mNKbh/0zrhnNN/KxWD0YZJw2RImnjFXWOquYKB4= github.com/aws/aws-sdk-go v1.33.11/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= @@ -161,31 +144,11 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cs3org/cato v0.0.0-20200618163134-e83dd323b17e/go.mod h1:6GOQIYvO+ZepxBKY9geuIAF7qfozDeDsTrX0BW9LZ0k= github.com/cs3org/cato v0.0.0-20200626150132-28a40e643719/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= -github.com/cs3org/go-cs3apis v0.0.0-20200625121012-96e791152b14 h1:ORPIrxw/T33ALlpaon9IMRzf54ArJQWCYlcECZiRmEc= -github.com/cs3org/go-cs3apis v0.0.0-20200625121012-96e791152b14/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/go-cs3apis v0.0.0-20200709064917-d96c5f2a42ad h1:XxB0h+UKILRKdr+WgPJaOfW8duVPeVKq/18aip5D/Ws= github.com/cs3org/go-cs3apis v0.0.0-20200709064917-d96c5f2a42ad/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088 h1:oCRNwQ4M1JoROK/jlYK1Cj1ElXky7ubFO8AA/YKMNfA= -github.com/cs3org/reva v0.1.1-0.20200629131207-04298ea1c088/go.mod h1:aTjgnI4OFVK+1Ed6EtyDw5Q7Ujs9sSbY74d3I4Ph/xY= -github.com/cs3org/reva v0.1.1-0.20200630075923-39a90d431566 h1:U70hDCk1IUY8i/lHMMdS18AyLLcicyn/G8LTHMvT/rE= -github.com/cs3org/reva v0.1.1-0.20200630075923-39a90d431566/go.mod h1:aTjgnI4OFVK+1Ed6EtyDw5Q7Ujs9sSbY74d3I4Ph/xY= -github.com/cs3org/reva v0.1.1-0.20200701132325-5a4b59490469 h1:XcNOq0v1EM8GPb1tFa6vNq7NgQtJ49X01ku3T1JECyA= -github.com/cs3org/reva v0.1.1-0.20200701132325-5a4b59490469/go.mod h1:umXd+gBuq0t1hiR8f+EplUxeWPcBnAIKPNKbXtA9EWU= -github.com/cs3org/reva v0.1.1-0.20200701152626-2f6cc60e2f66 h1:0FEaqg/OF1wci6uVsn9VgU6BOrCYF9RUrOIzEXIfb6M= -github.com/cs3org/reva v0.1.1-0.20200701152626-2f6cc60e2f66/go.mod h1:umXd+gBuq0t1hiR8f+EplUxeWPcBnAIKPNKbXtA9EWU= -github.com/cs3org/reva v0.1.1-0.20200703120955-223eaed348f0 h1:8mWapjYcOdfkJdM2agfiLlnIsMULxEVwHhezTqA+SJg= -github.com/cs3org/reva v0.1.1-0.20200703120955-223eaed348f0/go.mod h1:VUBjQP8XCiWwFTPhE9P4I47k0NbdczQa2q6JsJN2PqY= -github.com/cs3org/reva v0.1.1-0.20200709064551-91eed007038f h1:wsQOmNJGqxiXC3uTYHy1IPi39lO+UKD1adu2V3+8YtE= -github.com/cs3org/reva v0.1.1-0.20200709064551-91eed007038f/go.mod h1:VUBjQP8XCiWwFTPhE9P4I47k0NbdczQa2q6JsJN2PqY= -github.com/cs3org/reva v0.1.1-0.20200710143425-cf38a45220c5 h1:buENUkKNviU7c3/+E19GTY2Vk+KpSHbXUeWJQsNbpCE= -github.com/cs3org/reva v0.1.1-0.20200710143425-cf38a45220c5/go.mod h1:V/SuCrkQ+Mz7EOs4gAHgl6Bq9JmpWy0beVIfE3fGGX8= -github.com/cs3org/reva v0.1.1-0.20200722082002-1e57c4994e26 h1:F4Rq8kRwXvaQHDlSbgH1QTTDo54rmDuKOuMWf7ywVe8= -github.com/cs3org/reva v0.1.1-0.20200722082002-1e57c4994e26/go.mod h1:yPtGZIud+QVWLN7lxPwZLNj2/BCx3xu2DNUcTJE1Mkk= -github.com/cs3org/reva v0.1.1-0.20200722125752-6dea7936f9d1 h1:f/XZNSkCpS0ndLzMq/IRA0k2P1B/04Qvgf7s4qtQoGQ= -github.com/cs3org/reva v0.1.1-0.20200722125752-6dea7936f9d1/go.mod h1:yPtGZIud+QVWLN7lxPwZLNj2/BCx3xu2DNUcTJE1Mkk= -github.com/cs3org/reva v0.1.1-0.20200724135750-b46288b375d6 h1:xTJzgtusJvbz08fYVnxlxNu4BhyGCS46uwiD4QrYnOI= -github.com/cs3org/reva v0.1.1-0.20200724135750-b46288b375d6/go.mod h1:qwW0YfYf6JaAcTxBXsPpa8JIn2wHxqt5j/bjH7myI1k= +github.com/cs3org/reva v0.1.1-0.20200728071211-c948977dd3a0 h1:v1+My73gml0FW0t8pokmbQ32QhJJyxiiJ8zHYL+g81I= +github.com/cs3org/reva v0.1.1-0.20200728071211-c948977dd3a0/go.mod h1:hpkioVUPS+7USJq1cW1ikT22fxeMbVvHfonQVYcix4g= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= @@ -211,8 +174,8 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/eventials/go-tus v0.0.0-20190617130015-9db47421f6a0 h1:iJijjXGuAFvYA8rTypGm7xMcl3QKlhuNn+nn5dNGA/k= -github.com/eventials/go-tus v0.0.0-20190617130015-9db47421f6a0/go.mod h1:CfBfpEHiX55nX/EXkG3bOskUPrYe51D/guFiBupNSik= +github.com/eventials/go-tus v0.0.0-20200718001131-45c7ec8f5d59 h1:t2+zxJPT/jq/YOx/JRsoByAZI/GHOxYJ7MKeillEX4U= +github.com/eventials/go-tus v0.0.0-20200718001131-45c7ec8f5d59/go.mod h1:XYuK1S5+kS6FGhlIUFuZFPvWiSrOIoLk6+ro33Xce3Y= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= @@ -226,6 +189,7 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-acme/lego/v3 v3.1.0/go.mod h1:074uqt+JS6plx+c9Xaiz6+L+GBb+7itGtzfcDM2AhEE= github.com/go-acme/lego/v3 v3.3.0/go.mod h1:iGSY2vQrvQs3WezicSB/oVbO2eCrD88dpWPwb1qLqu0= +github.com/go-asn1-ber/asn1-ber v1.5.1 h1:pDbRAunXzIUXfx4CB2QJFv5IuPiuoW+sWvr/Us009o8= github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= @@ -235,6 +199,7 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-ini/ini v1.44.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-ldap/ldap/v3 v3.2.3 h1:FBt+5w3q/vPVPb4eYMQSn+pOiz4zewPamYhlGMmc7yM= github.com/go-ldap/ldap/v3 v3.2.3/go.mod h1:iYS1MdmrmceOJ1QOTnRXrIs7i3kloqtmGQjRvjKpyMg= github.com/go-log/log v0.1.0/go.mod h1:4mBwpdRMFLiuXZDCwU2lKQFsoSCo72j3HqBK9d81N2M= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -509,7 +474,6 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5/go.mod h1:0YZ2wQSuwviXXXGUiK6zXzskyBLAbLXhamxzcFHSLoM= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/huandu/xstrings v1.3.0 h1:gvV6jG9dTgFEncxo+AF7PH6MZXi/vZl25owA/8Dg8Wo= @@ -617,14 +581,17 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/mholt/certmagic v0.7.5/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= github.com/mholt/certmagic v0.8.3/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= github.com/mholt/certmagic v0.9.1/go.mod h1:nu8jbsbtwK4205EDH/ZUMTKsfYpJA1Q7MKXHfgTihNw= +github.com/micro/cli v0.2.0 h1:ut3rV5JWqZjsXIa2MvGF+qMUP8DAUTvHX9Br5gO4afA= github.com/micro/cli v0.2.0/go.mod h1:jRT9gmfVKWSS6pkKcXQ8YhUyj6bzwxK8Fp5b0Y7qNnk= github.com/micro/cli/v2 v2.1.1 h1:uFw0SMIKmGuyHIm8lXns/NOn7V62bM5y7DnlxUM+BEQ= github.com/micro/cli/v2 v2.1.1/go.mod h1:EguNh6DAoWKm9nmk+k/Rg0H3lQnDxqzu5x5srOtGtYg= github.com/micro/go-micro v1.16.0/go.mod h1:A0F58bHLh2m0LAI9QyhvmbN8c1cxhAZo3cM6s+iDsrM= +github.com/micro/go-micro v1.18.0 h1:gP70EZVHpJuUIT0YWth192JmlIci+qMOEByHm83XE9E= github.com/micro/go-micro v1.18.0/go.mod h1:klwUJL1gkdY1MHFyz+fFJXn52dKcty4hoe95Mp571AA= github.com/micro/go-micro/v2 v2.0.0 h1:bMx549RwJ9Yuiui8cDVlfYhVNP8I8KBJTMyLthEXpRw= github.com/micro/go-micro/v2 v2.0.0/go.mod h1:v7QP5UhKRt37ixjJe8DouWmg0/eE6dltr5h0idJ9BpE= github.com/micro/go-plugins/wrapper/trace/opencensus/v2 v2.0.1/go.mod h1:QrkcwcDtIs2hIJpIEhozekyf6Rfz5C36kFI8+zzCpX0= +github.com/micro/mdns v0.3.0 h1:bYycYe+98AXR3s8Nq5qvt6C573uFTDPIYzJemWON0QE= github.com/micro/mdns v0.3.0/go.mod h1:KJ0dW7KmicXU2BV++qkLlmHYcVv7/hHnbtguSWt9Aoc= github.com/micro/protoc-gen-micro v1.0.0/go.mod h1:C8ij4DJhapBmypcT00AXdb0cZ675/3PqUO02buWWqbE= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= @@ -643,8 +610,7 @@ github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1D github.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg= -github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= @@ -842,6 +808,7 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/subosito/gotenv v1.1.1/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= github.com/tidwall/gjson v1.3.2/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls= github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E= @@ -852,9 +819,9 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1 github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4o2HM0m3DZYQWsj6/MEowD57VzoH0v3d7igeFY= +github.com/tus/tusd v1.1.0/go.mod h1:3DWPOdeCnjBwKtv98y5dSws3itPqfce5TVa0s59LRiA= github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2 h1:rcji4q9wMuSrz0tZt3kgIr/3WsB5kUqFja6RrgeCGEo= github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2/go.mod h1:ygrT4B9ZSb27dx3uTnobX5nOFDnutBL6iWKLH4+KpA0= -github.com/tus/tusd v1.3.0 h1:fGxm7iCUHHP2fxmV+3u7ZQcGMBWR23Y/Suxiri66+hA= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.20.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= @@ -1181,7 +1148,6 @@ gopkg.in/Acconut/lockfile.v1 v1.1.0/go.mod h1:6UCz3wJ8tSFUsPR6uP/j8uegEtDuEEqFxl gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= @@ -1202,7 +1168,6 @@ gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.1 h1:GyboHr4UqMiLUybYjd22ZjQIKEJEpgtLXtuGbR21Oho= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= gopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw= gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw= gopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc= From f5cdb804c1523fdd08e15e3b643a75dc17be41cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 28 Jul 2020 08:56:33 +0000 Subject: [PATCH 206/346] Automated changelog update [skip ci] --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15e5c79870..25796b58f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The following sections list the changes in ocis-reva unreleased. * Bugfix - Update LDAP filters: [#399](https://github.com/owncloud/ocis-reva/pull/399) * Enhancement - Update storage documentation: [#384](https://github.com/owncloud/ocis-reva/pull/384) * Enhancement - Update reva to v0.1.1-0.20200724135750-b46288b375d6: [#399](https://github.com/owncloud/ocis-reva/pull/399) +* Enhancement - Update reva to v0.1.1-0.20200728071211-c948977dd3a0: [#407](https://github.com/owncloud/ocis-reva/pull/407) ## Details @@ -52,6 +53,19 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/cs3org/reva/pull/1002 https://github.com/cs3org/reva/pull/1004 + +* Enhancement - Update reva to v0.1.1-0.20200728071211-c948977dd3a0: [#407](https://github.com/owncloud/ocis-reva/pull/407) + + - Update reva to v0.1.1-0.20200728071211-c948977dd3a0 - Use proper logging for ldap auth + requests (reva/#1008) - Update github.com/eventials/go-tus to + v0.0.0-20200718001131-45c7ec8f5d59 (reva/#1007) - Check if SMTP credentials are nil + (reva/#1006) + + https://github.com/owncloud/ocis-reva/pull/407 + https://github.com/cs3org/reva/pull/1008 + https://github.com/cs3org/reva/pull/1007 + https://github.com/cs3org/reva/pull/1006 + # Changelog for [0.11.0] (2020-07-23) The following sections list the changes in ocis-reva 0.11.0. From 1b9b94507160696d836d848c8ebd47bae3b5b758 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 28 Jul 2020 14:00:12 +0545 Subject: [PATCH 207/346] Bump commit id for apiTests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 489fa21d9e..6dd6633c68 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', '9db442250583d3b71e633cf77fbcf643ed67e994'), + apiTests(ctx, 'master', 'e33cfcb2816abd07ec97a244ee41e92af2267ad9'), ] stages = [ From 6fcac3782210cfc6e1c02bb07bda92970c99da0a Mon Sep 17 00:00:00 2001 From: Dipak Acharya Date: Tue, 28 Jul 2020 11:24:46 +0545 Subject: [PATCH 208/346] [docs] Add docs about running tests in CI --- docs/testing.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/testing.md b/docs/testing.md index 551f2a0481..0a07a25d20 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -135,13 +135,18 @@ If you want to work on a specific issue 8. make a PR to ocis-reva running the adjusted tests To confirm that all tests (old and changed) run fine make a PR to ocis-reva with your code changes and point drone to your branch in core to get the changed tests. - For that change this line in the `acceptance-tests` section + For that change this line in the `main` function. - `'git clone -b master --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner',` + `apiTests(ctx, 'master', '9db442250583d3b71e633cf77fbcf643ed67e994'),` - to clone your core branch e.g. + In place of master use your branch name. If you dont specify the commit ID, you will run the tests using the HEAD of the branch you specified. + + `apiTests(ctx, 'my-new-tests', '')` + + Also make sure to change the commit ID if you want to run tests on any other commit. eg: + + `apiTests(ctx, 'my-new-tests', '7d468c05414b1dc745ca713d9deb443bc4e5f333')` - `'git clone -b fixRevaIssue122 --depth=1 https://github.com/owncloud/core.git /srv/app/testrunner',` 9. merge PRs From 065fa2a3c7be3eeae7303a84fe1912d0a7d267c8 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 28 Jul 2020 16:58:23 +0545 Subject: [PATCH 209/346] Bump commit id for oC10APIAcceptanceTests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 6dd6633c68..4715182043 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', 'e33cfcb2816abd07ec97a244ee41e92af2267ad9'), + apiTests(ctx, 'master', '378d38ab844e048bc88ca7cc365592017f0c7227'), ] stages = [ From c6434558c067abe0308bc21fa5bba9b5e479daa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Villaf=C3=A1=C3=B1ez?= Date: Fri, 24 Jul 2020 11:43:10 +0200 Subject: [PATCH 210/346] Document additional restrictions for the oc storage --- docs/storages.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/storages.md b/docs/storages.md index bc465e4ff7..bc623d0650 100644 --- a/docs/storages.md +++ b/docs/storages.md @@ -119,6 +119,9 @@ To provide the other storage aspects we plan to implement a FUSE overlay filesys This is the current default storage driver. While it implements the file tree (using redis, including id based lookup), ETag propagation, trash, versions and sharing (including expiry) using the data directory layout of ownCloud 10 it has [known limitations](https://github.com/owncloud/core/issues/28095) that cannot be fixed without changing the actual layout on disk. +To setup it up properly in a distributed fashion, the storage-home and the storage-oc need to share the same underlying FS. Their "data" counterparts also need access to the same shared FS. +For a simple docker-compose setup, you can create a volume which will be used by the "ocis-reva-storage-home", "ocis-reva-storage-home-data", "ocis-reva-storage-oc" and "ocis-reva-storage-oc-data" containers. Using the `owncloud/ocis-reva` docker image, the volume would need to be hooked in the `/var/tmp/reva` folder insde the containers. + - tree provided by a POSIX filesystem - file layout is mapped to the old ownCloud 10 layout - the root of tree for a user on disk is prefixed with `/path/to/data//files/` From 37c883fffbbb9970130ee1bd7a82d8db35688ac4 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 30 Jul 2020 12:52:28 +0545 Subject: [PATCH 211/346] Bump commit for oC10APIAcceptanceTests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 4715182043..c4e478c61e 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', '378d38ab844e048bc88ca7cc365592017f0c7227'), + apiTests(ctx, 'master', '24b305a38f259584b683256880eb9e42f99f19c5'), ] stages = [ From e48530fd5e72cabb13af36e0ddbc80d5b860a4dd Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 31 Jul 2020 14:40:34 +0545 Subject: [PATCH 212/346] Bump core commit id for core PR 37753 --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index c4e478c61e..2201fd9d91 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', '24b305a38f259584b683256880eb9e42f99f19c5'), + apiTests(ctx, 'master', 'b4e4e2e76bcd1770412602113882256bec5444b8'), ] stages = [ From 017bbdfec46dfddf8805a4f9baab6a3dd93d57af Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 31 Jul 2020 14:24:30 +0545 Subject: [PATCH 213/346] Bump core commit id for API acceptance tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 2201fd9d91..5633cf82a5 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', 'b4e4e2e76bcd1770412602113882256bec5444b8'), + apiTests(ctx, 'master', '7f1c384e8027b17f89427a1dd430ab273c15c7ef'), ] stages = [ From 421baee5538fc55bb36e5e7f73e77ef9ebfc14a4 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 27 Jul 2020 16:55:54 +0545 Subject: [PATCH 214/346] Run with latest core master commit id --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 5633cf82a5..3a5e29cb61 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', '7f1c384e8027b17f89427a1dd430ab273c15c7ef'), + apiTests(ctx, 'master', 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa'), ] stages = [ From 6a4daa7b83447a15fcd8415257c3378ee76c3b4b Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 27 Jul 2020 17:00:47 +0545 Subject: [PATCH 215/346] Use expected-failures.txt in core acceptance tests --- .drone.star | 5 +++-- tests/acceptance/expected-failures.txt | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 tests/acceptance/expected-failures.txt diff --git a/.drone.star b/.drone.star index 3a5e29cb61..2b4f1dd620 100644 --- a/.drone.star +++ b/.drone.star @@ -92,7 +92,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): ] }, { - 'name': 'acceptance-tests', + 'name': 'core-acceptance-tests', 'image': 'owncloudci/php:7.2', 'pull': 'always', 'environment' : { @@ -102,7 +102,8 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'TEST_EXTERNAL_USER_BACKENDS':'true', 'TEST_OCIS':'true', 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', - 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton' + 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', + 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures.txt' }, 'commands': [ 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt new file mode 100644 index 0000000000..2fc4ebdf82 --- /dev/null +++ b/tests/acceptance/expected-failures.txt @@ -0,0 +1 @@ +# this file contains the scenarios from ownCloud10 core API tests that are currently expected to fail From 7c2fc3e2df08247890cfe751503e81f1a2ababf3 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 27 Jul 2020 17:22:27 +0545 Subject: [PATCH 216/346] Run all core acceptance tests that are not specifically tagged about OCIS --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 2b4f1dd620..75b1075a79 100644 --- a/.drone.star +++ b/.drone.star @@ -97,7 +97,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnOcis-OC-Storage', + 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~@skipOnOcis-OC-Storage', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'TEST_OCIS':'true', From d21b66308b811d6e445490dc811924271419c18a Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 27 Jul 2020 19:32:06 +0545 Subject: [PATCH 217/346] Add expected failure scenarios --- tests/acceptance/expected-failures.txt | 635 +++++++++++++++++++++++++ 1 file changed, 635 insertions(+) diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt index 2fc4ebdf82..db1ce210f6 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures.txt @@ -1 +1,636 @@ # this file contains the scenarios from ownCloud10 core API tests that are currently expected to fail +apiMain/checksums.feature:24 +apiMain/checksums.feature:25 +apiMain/checksums.feature:35 +apiMain/checksums.feature:36 +apiMain/checksums.feature:60 +apiMain/checksums.feature:61 +apiMain/checksums.feature:64 +apiMain/checksums.feature:72 +apiMain/checksums.feature:81 +apiMain/checksums.feature:113 +apiMain/checksums.feature:114 +apiMain/checksums.feature:117 +apiMain/checksums.feature:124 +apiMain/checksums.feature:144 +apiMain/checksums.feature:154 +apiMain/checksums.feature:163 +apiMain/checksums.feature:172 +apiMain/checksums.feature:183 +apiMain/checksums.feature:199 +apiMain/checksums.feature:217 +apiMain/checksums.feature:242 +apiMain/checksums.feature:243 +apiMain/checksums.feature:277 +apiMain/checksums.feature:278 +apiMain/checksums.feature:310 +apiMain/checksums.feature:331 +apiMain/checksums.feature:332 +apiMain/checksums.feature:347 +apiMain/checksums.feature:348 +apiMain/checksums.feature:360 +apiMain/checksums.feature:361 +apiMain/checksums.feature:364 +apiMain/checksums.feature:376 +apiMain/main.feature:5 +apiMain/quota.feature:9 +apiMain/quota.feature:16 +apiMain/quota.feature:23 +apiMain/quota.feature:30 +apiMain/quota.feature:41 +apiMain/quota.feature:54 +apiMain/quota.feature:68 +apiMain/quota.feature:82 +apiMain/quota.feature:99 +apiMain/quota.feature:112 +apiMain/status.feature:5 +apiAuthOcs/ocsDELETEAuth.feature:9 +apiAuthOcs/ocsGETAuth.feature:10 +apiAuthOcs/ocsGETAuth.feature:33 +apiAuthOcs/ocsGETAuth.feature:82 +apiAuthOcs/ocsGETAuth.feature:171 +apiAuthOcs/ocsGETAuth.feature:234 +apiAuthOcs/ocsGETAuth.feature:252 +apiAuthOcs/ocsPOSTAuth.feature:10 +apiAuthOcs/ocsPUTAuth.feature:10 +apiAuthWebDav/webDavDELETEAuth.feature:36 +apiAuthWebDav/webDavLOCKAuth.feature:38 +apiAuthWebDav/webDavMKCOLAuth.feature:37 +apiAuthWebDav/webDavMOVEAuth.feature:37 +apiAuthWebDav/webDavPOSTAuth.feature:38 +apiAuthWebDav/webDavPROPFINDAuth.feature:37 +apiAuthWebDav/webDavPROPPATCHAuth.feature:38 +apiAuthWebDav/webDavPUTAuth.feature:38 +apiCapabilities/capabilitiesWithNormalUser.feature:52 +apiFavorites/favorites.feature:239 +apiFavorites/favorites.feature:240 +apiSharees/sharees.feature:32 +apiSharees/sharees.feature:33 +apiSharees/sharees.feature:53 +apiSharees/sharees.feature:54 +apiSharees/sharees.feature:74 +apiSharees/sharees.feature:75 +apiSharees/sharees.feature:98 +apiSharees/sharees.feature:99 +apiSharees/sharees.feature:118 +apiSharees/sharees.feature:119 +apiSharees/sharees.feature:137 +apiSharees/sharees.feature:138 +apiSharees/sharees.feature:157 +apiSharees/sharees.feature:158 +apiSharees/sharees.feature:177 +apiSharees/sharees.feature:178 +apiSharees/sharees.feature:198 +apiSharees/sharees.feature:199 +apiSharees/sharees.feature:217 +apiSharees/sharees.feature:218 +apiSharees/sharees.feature:237 +apiSharees/sharees.feature:238 +apiSharees/sharees.feature:257 +apiSharees/sharees.feature:258 +apiSharees/sharees.feature:277 +apiSharees/sharees.feature:278 +apiSharees/sharees.feature:297 +apiSharees/sharees.feature:298 +apiSharees/sharees.feature:317 +apiSharees/sharees.feature:318 +apiSharees/sharees.feature:336 +apiSharees/sharees.feature:337 +apiSharees/sharees.feature:355 +apiSharees/sharees.feature:356 +apiSharees/sharees.feature:374 +apiSharees/sharees.feature:375 +apiSharees/sharees.feature:393 +apiSharees/sharees.feature:394 +apiSharees/sharees.feature:412 +apiSharees/sharees.feature:413 +apiSharees/sharees.feature:430 +apiSharees/sharees.feature:431 +apiSharees/sharees.feature:450 +apiSharees/sharees.feature:451 +apiSharees/sharees.feature:475 +apiSharees/sharees.feature:476 +apiSharees/sharees.feature:495 +apiSharees/sharees.feature:496 +apiSharees/sharees.feature:515 +apiSharees/sharees.feature:516 +apiSharees/sharees.feature:537 +apiSharees/sharees.feature:538 +apiShareManagementBasic/createShare.feature:247 +apiShareManagementBasic/createShare.feature:248 +apiShareManagementBasic/createShare.feature:272 +apiShareManagementBasic/createShare.feature:273 +apiShareManagementBasic/createShare.feature:468 +apiShareManagementBasic/createShare.feature:528 +apiShareManagementBasic/createShare.feature:529 +apiShareManagementBasic/deleteShare.feature:36 +apiShareManagementBasic/deleteShare.feature:37 +apiShareOperations/accessToShare.feature:48 +apiShareOperations/accessToShare.feature:49 +apiShareOperations/accessToShare.feature:78 +apiShareOperations/accessToShare.feature:79 +apiShareOperations/gettingShares.feature:21 +apiShareOperations/gettingShares.feature:22 +apiShareOperations/gettingShares.feature:34 +apiShareOperations/gettingShares.feature:35 +apiShareOperations/gettingShares.feature:124 +apiShareOperations/gettingShares.feature:125 +apiShareOperations/gettingShares.feature:168 +apiShareOperations/gettingShares.feature:169 +apiShareOperations/gettingShares.feature:187 +apiShareOperations/gettingShares.feature:219 +apiShareOperations/gettingShares.feature:220 +apiShareOperations/getWebDAVSharePermissions.feature:21 +apiShareOperations/getWebDAVSharePermissions.feature:22 +apiShareOperations/getWebDAVSharePermissions.feature:148 +apiShareOperations/getWebDAVSharePermissions.feature:149 +apiSharePublicLink1/accessToPublicLinkShare.feature:10 +apiSharePublicLink1/accessToPublicLinkShare.feature:20 +apiSharePublicLink1/accessToPublicLinkShare.feature:30 +apiSharePublicLink1/accessToPublicLinkShare.feature:43 +apiSharePublicLink1/changingPublicLinkShare.feature:22 +apiSharePublicLink1/changingPublicLinkShare.feature:23 +apiSharePublicLink1/changingPublicLinkShare.feature:37 +apiSharePublicLink1/changingPublicLinkShare.feature:41 +apiSharePublicLink1/changingPublicLinkShare.feature:52 +apiSharePublicLink1/changingPublicLinkShare.feature:63 +apiSharePublicLink1/changingPublicLinkShare.feature:85 +apiSharePublicLink1/changingPublicLinkShare.feature:96 +apiSharePublicLink1/changingPublicLinkShare.feature:107 +apiSharePublicLink1/changingPublicLinkShare.feature:151 +apiSharePublicLink1/changingPublicLinkShare.feature:197 +apiSharePublicLink1/changingPublicLinkShare.feature:244 +apiSharePublicLink1/changingPublicLinkShare.feature:267 +apiSharePublicLink1/changingPublicLinkShare.feature:278 +apiSharePublicLink1/changingPublicLinkShare.feature:289 +apiSharePublicLink1/changingPublicLinkShare.feature:300 +apiSharePublicLink1/createPublicLinkShare.feature:34 +apiSharePublicLink1/createPublicLinkShare.feature:35 +apiSharePublicLink1/createPublicLinkShare.feature:63 +apiSharePublicLink1/createPublicLinkShare.feature:64 +apiSharePublicLink1/createPublicLinkShare.feature:95 +apiSharePublicLink1/createPublicLinkShare.feature:96 +apiSharePublicLink1/createPublicLinkShare.feature:127 +apiSharePublicLink1/createPublicLinkShare.feature:128 +apiSharePublicLink1/createPublicLinkShare.feature:155 +apiSharePublicLink1/createPublicLinkShare.feature:156 +apiSharePublicLink1/createPublicLinkShare.feature:183 +apiSharePublicLink1/createPublicLinkShare.feature:184 +apiSharePublicLink1/createPublicLinkShare.feature:214 +apiSharePublicLink1/createPublicLinkShare.feature:215 +apiSharePublicLink1/createPublicLinkShare.feature:245 +apiSharePublicLink1/createPublicLinkShare.feature:246 +apiSharePublicLink1/createPublicLinkShare.feature:276 +apiSharePublicLink1/createPublicLinkShare.feature:277 +apiSharePublicLink1/createPublicLinkShare.feature:307 +apiSharePublicLink1/createPublicLinkShare.feature:308 +apiSharePublicLink1/createPublicLinkShare.feature:370 +apiSharePublicLink1/createPublicLinkShare.feature:371 +apiSharePublicLink1/createPublicLinkShare.feature:389 +apiSharePublicLink1/createPublicLinkShare.feature:390 +apiSharePublicLink1/createPublicLinkShare.feature:411 +apiSharePublicLink1/createPublicLinkShare.feature:413 +apiSharePublicLink1/createPublicLinkShare.feature:435 +apiSharePublicLink1/createPublicLinkShare.feature:437 +apiSharePublicLink1/createPublicLinkShare.feature:461 +apiSharePublicLink1/createPublicLinkShare.feature:463 +apiSharePublicLink1/createPublicLinkShare.feature:487 +apiSharePublicLink1/createPublicLinkShare.feature:489 +apiSharePublicLink1/createPublicLinkShare.feature:491 +apiSharePublicLink1/createPublicLinkShare.feature:493 +apiSharePublicLink1/createPublicLinkShare.feature:495 +apiSharePublicLink1/createPublicLinkShare.feature:497 +apiSharePublicLink1/createPublicLinkShare.feature:518 +apiSharePublicLink1/createPublicLinkShare.feature:519 +apiSharePublicLink1/createPublicLinkShare.feature:534 +apiSharePublicLink1/createPublicLinkShare.feature:535 +apiSharePublicLink1/createPublicLinkShare.feature:553 +apiSharePublicLink1/createPublicLinkShare.feature:554 +apiSharePublicLink1/createPublicLinkShare.feature:590 +apiSharePublicLink1/createPublicLinkShare.feature:591 +apiSharePublicLink1/createPublicLinkShare.feature:620 +apiSharePublicLink1/createPublicLinkShare.feature:621 +apiSharePublicLink1/createPublicLinkShare.feature:634 +apiSharePublicLink1/createPublicLinkShare.feature:635 +apiSharePublicLink1/createPublicLinkShare.feature:663 +apiSharePublicLink1/createPublicLinkShare.feature:664 +apiSharePublicLink1/createPublicLinkShare.feature:714 +apiSharePublicLink1/createPublicLinkShare.feature:715 +apiSharePublicLink1/createPublicLinkShare.feature:718 +apiSharePublicLink1/createPublicLinkShare.feature:727 +apiSharePublicLink1/createPublicLinkShare.feature:790 +apiSharePublicLink1/createPublicLinkShare.feature:816 +apiSharePublicLink1/deletePublicLinkShare.feature:37 +apiSharePublicLink1/deletePublicLinkShare.feature:38 +apiSharePublicLink2/copyFromPublicLink.feature:60 +apiSharePublicLink2/copyFromPublicLink.feature:198 +apiSharePublicLink2/copyFromPublicLink.feature:199 +apiSharePublicLink2/copyFromPublicLink.feature:230 +apiSharePublicLink2/copyFromPublicLink.feature:231 +apiSharePublicLink2/updatePublicLinkShare.feature:135 +apiSharePublicLink2/updatePublicLinkShare.feature:136 +apiSharePublicLink2/updatePublicLinkShare.feature:326 +apiSharePublicLink2/updatePublicLinkShare.feature:327 +apiSharePublicLink2/updatePublicLinkShare.feature:345 +apiSharePublicLink2/updatePublicLinkShare.feature:346 +apiSharePublicLink2/updatePublicLinkShare.feature:364 +apiSharePublicLink2/updatePublicLinkShare.feature:365 +apiSharePublicLink2/updatePublicLinkShare.feature:383 +apiSharePublicLink2/updatePublicLinkShare.feature:384 +apiSharePublicLink2/updatePublicLinkShare.feature:402 +apiSharePublicLink2/updatePublicLinkShare.feature:403 +apiSharePublicLink2/updatePublicLinkShare.feature:421 +apiSharePublicLink2/updatePublicLinkShare.feature:422 +apiSharePublicLink2/updatePublicLinkShare.feature:440 +apiSharePublicLink2/updatePublicLinkShare.feature:441 +apiSharePublicLink2/updatePublicLinkShare.feature:459 +apiSharePublicLink2/updatePublicLinkShare.feature:460 +apiSharePublicLink2/updatePublicLinkShare.feature:481 +apiSharePublicLink2/updatePublicLinkShare.feature:482 +apiSharePublicLink2/updatePublicLinkShare.feature:503 +apiSharePublicLink2/updatePublicLinkShare.feature:504 +apiSharePublicLink2/updatePublicLinkShare.feature:528 +apiSharePublicLink2/updatePublicLinkShare.feature:529 +apiSharePublicLink2/uploadToPublicLinkShare.feature:9 +apiSharePublicLink2/uploadToPublicLinkShare.feature:23 +apiSharePublicLink2/uploadToPublicLinkShare.feature:48 +apiSharePublicLink2/uploadToPublicLinkShare.feature:49 +apiSharePublicLink2/uploadToPublicLinkShare.feature:62 +apiSharePublicLink2/uploadToPublicLinkShare.feature:63 +apiSharePublicLink2/uploadToPublicLinkShare.feature:77 +apiSharePublicLink2/uploadToPublicLinkShare.feature:85 +apiSharePublicLink2/uploadToPublicLinkShare.feature:94 +apiSharePublicLink2/uploadToPublicLinkShare.feature:114 +apiSharePublicLink2/uploadToPublicLinkShare.feature:132 +apiSharePublicLink2/uploadToPublicLinkShare.feature:150 +apiSharePublicLink2/uploadToPublicLinkShare.feature:159 +apiSharePublicLink2/uploadToPublicLinkShare.feature:169 +apiSharePublicLink2/uploadToPublicLinkShare.feature:178 +apiSharePublicLink2/uploadToPublicLinkShare.feature:188 +apiSharePublicLink2/uploadToPublicLinkShare.feature:197 +apiSharePublicLink2/uploadToPublicLinkShare.feature:207 +apiSharePublicLink2/uploadToPublicLinkShare.feature:217 +apiSharePublicLink2/uploadToPublicLinkShare.feature:228 +apiSharePublicLink2/uploadToPublicLinkShare.feature:238 +apiSharePublicLink2/uploadToPublicLinkShare.feature:249 +apiSharePublicLink2/uploadToPublicLinkShare.feature:266 +apiSharePublicLink2/uploadToPublicLinkShare.feature:284 +apiVersions/fileVersions.feature:15 +apiVersions/fileVersions.feature:32 +apiVersions/fileVersions.feature:45 +apiVersions/fileVersions.feature:64 +apiVersions/fileVersions.feature:107 +apiVersions/fileVersions.feature:108 +apiVersions/fileVersions.feature:112 +apiVersions/fileVersions.feature:123 +apiVersions/fileVersions.feature:334 +apiVersions/fileVersions.feature:464 +apiVersions/fileVersions.feature:488 +apiWebdavMove1/moveFileAsync.feature:26 +apiWebdavMove1/moveFileAsync.feature:27 +apiWebdavMove1/moveFileAsync.feature:28 +apiWebdavMove1/moveFileAsync.feature:29 +apiWebdavMove1/moveFileAsync.feature:30 +apiWebdavMove1/moveFileAsync.feature:31 +apiWebdavMove1/moveFileAsync.feature:33 +apiWebdavMove1/moveFileAsync.feature:46 +apiWebdavMove1/moveFileAsync.feature:59 +apiWebdavMove1/moveFileAsync.feature:73 +apiWebdavMove1/moveFileAsync.feature:88 +apiWebdavMove1/moveFileAsync.feature:107 +apiWebdavMove1/moveFileAsync.feature:125 +apiWebdavMove1/moveFileAsync.feature:135 +apiWebdavMove1/moveFileAsync.feature:141 +apiWebdavMove1/moveFileAsync.feature:156 +apiWebdavMove1/moveFileAsync.feature:173 +apiWebdavMove1/moveFileAsync.feature:174 +apiWebdavMove1/moveFileAsync.feature:184 +apiWebdavMove1/moveFileAsync.feature:185 +apiWebdavMove1/moveFileAsync.feature:204 +apiWebdavMove1/moveFileAsync.feature:205 +apiWebdavMove1/moveFileAsync.feature:224 +apiWebdavMove1/moveFileAsync.feature:225 +apiWebdavMove1/moveFileAsync.feature:234 +apiWebdavMove1/moveFileAsync.feature:235 +apiWebdavMove1/moveFileAsync.feature:240 +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:12 +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:18 +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:26 +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:12 +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:19 +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:27 +apiWebdavMove1/moveFolder.feature:21 +apiWebdavMove1/moveFolder.feature:22 +apiWebdavMove1/moveFolder.feature:46 +apiWebdavMove1/moveFolder.feature:47 +apiWebdavMove1/moveFolder.feature:71 +apiWebdavMove1/moveFolder.feature:72 +apiWebdavMove1/moveFolderToBlacklistedName.feature:21 +apiWebdavMove1/moveFolderToBlacklistedName.feature:22 +apiWebdavMove1/moveFolderToBlacklistedName.feature:48 +apiWebdavMove1/moveFolderToBlacklistedName.feature:49 +apiWebdavMove1/moveFolderToBlacklistedName.feature:83 +apiWebdavMove1/moveFolderToBlacklistedName.feature:84 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:21 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:22 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:34 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:35 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:70 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:71 +apiWebdavMove2/moveFile.feature:89 +apiWebdavMove2/moveFile.feature:90 +apiWebdavMove2/moveFile.feature:91 +apiWebdavMove2/moveFile.feature:92 +apiWebdavMove2/moveFile.feature:112 +apiWebdavMove2/moveFile.feature:113 +apiWebdavMove2/moveFile.feature:136 +apiWebdavMove2/moveFile.feature:137 +apiWebdavMove2/moveFile.feature:138 +apiWebdavMove2/moveFile.feature:139 +apiWebdavMove2/moveFile.feature:160 +apiWebdavMove2/moveFile.feature:161 +apiWebdavMove2/moveFile.feature:181 +apiWebdavMove2/moveFile.feature:182 +apiWebdavMove2/moveFile.feature:200 +apiWebdavMove2/moveFile.feature:201 +apiWebdavMove2/moveFile.feature:219 +apiWebdavMove2/moveFile.feature:220 +apiWebdavMove2/moveFile.feature:267 +apiWebdavMove2/moveFile.feature:268 +apiWebdavMove2/moveFile.feature:284 +apiWebdavMove2/moveFile.feature:285 +apiWebdavMove2/moveFileToBlacklistedName.feature:18 +apiWebdavMove2/moveFileToBlacklistedName.feature:19 +apiWebdavMove2/moveFileToBlacklistedName.feature:41 +apiWebdavMove2/moveFileToBlacklistedName.feature:42 +apiWebdavMove2/moveFileToBlacklistedName.feature:74 +apiWebdavMove2/moveFileToBlacklistedName.feature:75 +apiWebdavMove2/moveFileToExcludedDirectory.feature:18 +apiWebdavMove2/moveFileToExcludedDirectory.feature:19 +apiWebdavMove2/moveFileToExcludedDirectory.feature:28 +apiWebdavMove2/moveFileToExcludedDirectory.feature:29 +apiWebdavMove2/moveFileToExcludedDirectory.feature:63 +apiWebdavMove2/moveFileToExcludedDirectory.feature:64 +apiWebdavOperations/deleteFolder.feature:67 +apiWebdavOperations/deleteFolder.feature:68 +apiWebdavOperations/deleteFolder.feature:69 +apiWebdavOperations/deleteFolder.feature:70 +apiWebdavOperations/deleteFolder.feature:91 +apiWebdavOperations/deleteFolder.feature:92 +apiWebdavOperations/downloadFile.feature:29 +apiWebdavOperations/downloadFile.feature:30 +apiWebdavOperations/downloadFile.feature:72 +apiWebdavOperations/downloadFile.feature:73 +apiWebdavOperations/downloadFile.feature:84 +apiWebdavOperations/downloadFile.feature:85 +apiWebdavOperations/refuseAccess.feature:21 +apiWebdavOperations/refuseAccess.feature:22 +apiWebdavOperations/refuseAccess.feature:47 +apiWebdavOperations/refuseAccess.feature:48 +apiWebdavOperations/search.feature:42 +apiWebdavOperations/search.feature:43 +apiWebdavOperations/search.feature:57 +apiWebdavOperations/search.feature:58 +apiWebdavOperations/search.feature:74 +apiWebdavOperations/search.feature:75 +apiWebdavOperations/search.feature:83 +apiWebdavOperations/search.feature:84 +apiWebdavOperations/search.feature:101 +apiWebdavOperations/search.feature:102 +apiWebdavOperations/search.feature:119 +apiWebdavOperations/search.feature:120 +apiWebdavOperations/search.feature:138 +apiWebdavOperations/search.feature:139 +apiWebdavOperations/search.feature:165 +apiWebdavOperations/search.feature:166 +apiWebdavOperations/search.feature:191 +apiWebdavOperations/search.feature:192 +apiWebdavOperations/search.feature:210 +apiWebdavOperations/search.feature:211 +apiWebdavOperations/search.feature:213 +apiWebdavOperations/search.feature:229 +apiWebdavPreviews/previews.feature:15 +apiWebdavPreviews/previews.feature:16 +apiWebdavPreviews/previews.feature:17 +apiWebdavPreviews/previews.feature:18 +apiWebdavPreviews/previews.feature:19 +apiWebdavPreviews/previews.feature:30 +apiWebdavPreviews/previews.feature:31 +apiWebdavPreviews/previews.feature:32 +apiWebdavPreviews/previews.feature:33 +apiWebdavPreviews/previews.feature:34 +apiWebdavPreviews/previews.feature:35 +apiWebdavPreviews/previews.feature:36 +apiWebdavPreviews/previews.feature:63 +apiWebdavPreviews/previews.feature:64 +apiWebdavPreviews/previews.feature:65 +apiWebdavPreviews/previews.feature:66 +apiWebdavPreviews/previews.feature:67 +apiWebdavPreviews/previews.feature:68 +apiWebdavPreviews/previews.feature:69 +apiWebdavPreviews/previews.feature:88 +apiWebdavPreviews/previews.feature:103 +apiWebdavPreviews/previews.feature:104 +apiWebdavPreviews/previews.feature:105 +apiWebdavPreviews/previews.feature:127 +apiWebdavPreviews/previews.feature:128 +apiWebdavPreviews/previews.feature:143 +apiWebdavPreviews/previews.feature:160 +apiWebdavPreviews/previews.feature:169 +apiWebdavPreviews/previews.feature:186 +apiWebdavPreviews/previews.feature:201 +apiWebdavPreviews/previews.feature:208 +apiWebdavPreviews/previews.feature:224 +apiWebdavPreviews/previews.feature:242 +apiWebdavPreviews/previews.feature:271 +apiWebdavPreviews/previews.feature:272 +apiWebdavPreviews/previews.feature:273 +apiWebdavPreviews/previews.feature:274 +apiWebdavPreviews/previews.feature:286 +apiWebdavPreviews/previews.feature:287 +apiWebdavProperties1/copyFile.feature:65 +apiWebdavProperties1/copyFile.feature:66 +apiWebdavProperties1/copyFile.feature:85 +apiWebdavProperties1/copyFile.feature:86 +apiWebdavProperties1/copyFile.feature:102 +apiWebdavProperties1/copyFile.feature:103 +apiWebdavProperties1/copyFile.feature:116 +apiWebdavProperties1/copyFile.feature:117 +apiWebdavProperties1/copyFile.feature:129 +apiWebdavProperties1/copyFile.feature:130 +apiWebdavProperties1/copyFile.feature:146 +apiWebdavProperties1/copyFile.feature:147 +apiWebdavProperties1/copyFile.feature:165 +apiWebdavProperties1/copyFile.feature:166 +apiWebdavProperties1/copyFile.feature:202 +apiWebdavProperties1/copyFile.feature:203 +apiWebdavProperties1/copyFile.feature:350 +apiWebdavProperties1/copyFile.feature:351 +apiWebdavProperties1/copyFile.feature:370 +apiWebdavProperties1/copyFile.feature:371 +apiWebdavProperties1/copyFile.feature:395 +apiWebdavProperties1/copyFile.feature:396 +apiWebdavProperties1/copyFile.feature:422 +apiWebdavProperties1/copyFile.feature:423 +apiWebdavProperties1/copyFile.feature:448 +apiWebdavProperties1/copyFile.feature:449 +apiWebdavProperties1/copyFile.feature:474 +apiWebdavProperties1/copyFile.feature:475 +apiWebdavProperties1/createFolder.feature:71 +apiWebdavProperties1/createFolder.feature:72 +apiWebdavProperties1/createFolder.feature:85 +apiWebdavProperties1/createFolder.feature:86 +apiWebdavProperties1/createFolder.feature:113 +apiWebdavProperties1/createFolder.feature:114 +apiWebdavProperties1/getQuota.feature:17 +apiWebdavProperties1/getQuota.feature:18 +apiWebdavProperties1/getQuota.feature:27 +apiWebdavProperties1/getQuota.feature:28 +apiWebdavProperties1/getQuota.feature:48 +apiWebdavProperties1/getQuota.feature:49 +apiWebdavProperties1/getQuota.feature:61 +apiWebdavProperties1/getQuota.feature:62 +apiWebdavProperties1/getQuota.feature:77 +apiWebdavProperties1/getQuota.feature:78 +apiWebdavProperties1/setFileProperties.feature:44 +apiWebdavProperties1/setFileProperties.feature:45 +apiWebdavProperties1/setFileProperties.feature:75 +apiWebdavProperties1/setFileProperties.feature:76 +apiWebdavProperties2/getFileProperties.feature:37 +apiWebdavProperties2/getFileProperties.feature:39 +apiWebdavProperties2/getFileProperties.feature:40 +apiWebdavProperties2/getFileProperties.feature:41 +apiWebdavProperties2/getFileProperties.feature:43 +apiWebdavProperties2/getFileProperties.feature:44 +apiWebdavProperties2/getFileProperties.feature:100 +apiWebdavProperties2/getFileProperties.feature:101 +apiWebdavProperties2/getFileProperties.feature:102 +apiWebdavProperties2/getFileProperties.feature:104 +apiWebdavProperties2/getFileProperties.feature:105 +apiWebdavProperties2/getFileProperties.feature:107 +apiWebdavProperties2/getFileProperties.feature:108 +apiWebdavProperties2/getFileProperties.feature:109 +apiWebdavProperties2/getFileProperties.feature:111 +apiWebdavProperties2/getFileProperties.feature:112 +apiWebdavProperties2/getFileProperties.feature:231 +apiWebdavProperties2/getFileProperties.feature:232 +apiWebdavProperties2/getFileProperties.feature:252 +apiWebdavProperties2/getFileProperties.feature:253 +apiWebdavProperties2/getFileProperties.feature:270 +apiWebdavProperties2/getFileProperties.feature:271 +apiWebdavProperties2/getFileProperties.feature:302 +apiWebdavProperties2/getFileProperties.feature:303 +apiWebdavProperties2/getFileProperties.feature:314 +apiWebdavProperties2/getFileProperties.feature:315 +apiWebdavProperties2/getFileProperties.feature:328 +apiWebdavProperties2/getFileProperties.feature:329 +apiWebdavProperties2/getFileProperties.feature:338 +apiWebdavProperties2/getFileProperties.feature:339 +apiWebdavProperties2/getFileProperties.feature:352 +apiWebdavProperties2/getFileProperties.feature:372 +apiWebdavProperties2/getFileProperties.feature:407 +apiWebdavProperties2/getFileProperties.feature:408 +apiWebdavProperties2/getFileProperties.feature:420 +apiWebdavProperties2/getFileProperties.feature:421 +apiWebdavProperties2/getFileProperties.feature:433 +apiWebdavProperties2/getFileProperties.feature:434 +apiWebdavProperties2/getFileProperties.feature:482 +apiWebdavProperties2/getFileProperties.feature:483 +apiWebdavProperties2/getFileProperties.feature:495 +apiWebdavProperties2/getFileProperties.feature:496 +apiWebdavProperties2/getFileProperties.feature:508 +apiWebdavProperties2/getFileProperties.feature:509 +apiWebdavProperties2/getFileProperties.feature:521 +apiWebdavProperties2/getFileProperties.feature:522 +apiWebdavProperties2/getFileProperties.feature:534 +apiWebdavProperties2/getFileProperties.feature:535 +apiWebdavProperties2/getFileProperties.feature:547 +apiWebdavProperties2/getFileProperties.feature:548 +apiWebdavProperties2/getFileProperties.feature:560 +apiWebdavProperties2/getFileProperties.feature:561 +apiWebdavUpload1/uploadFile.feature:123 +apiWebdavUpload1/uploadFile.feature:124 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:31 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:48 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:65 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:83 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:92 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:106 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:143 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:144 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:146 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:159 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:19 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:20 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:31 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:32 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:65 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:66 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:23 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:47 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:48 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:49 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:52 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:20 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:21 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:33 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:34 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:69 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:70 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:24 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:49 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:50 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:51 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:54 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:21 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:45 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:46 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:47 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:50 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:20 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:37 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:38 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:39 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:42 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:22 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:47 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:48 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:49 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:52 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:21 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:39 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:40 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:41 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:44 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:29 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:43 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:57 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:79 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:85 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:94 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:98 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:106 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:135 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:136 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:137 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:157 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:158 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:26 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:35 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:44 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:76 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:77 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:97 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:98 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:99 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:100 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:101 From c11aed5f228ff8838c5ccca02940e26954f926a3 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 29 Jul 2020 17:19:38 +0545 Subject: [PATCH 218/346] Run tests even if they have skipOnOcis-OC-Storage --- .drone.star | 2 +- tests/acceptance/expected-failures.txt | 34 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 75b1075a79..582e802bd3 100644 --- a/.drone.star +++ b/.drone.star @@ -97,7 +97,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~@skipOnOcis-OC-Storage', + 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'TEST_OCIS':'true', diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt index db1ce210f6..52c8c57332 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures.txt @@ -1,4 +1,38 @@ # this file contains the scenarios from ownCloud10 core API tests that are currently expected to fail +# +# test scenarios that fail with OC storage (that were tagged skipOnOcis-OC-Storage in core) +# +apiFavorites/favorites.feature:39 +apiFavorites/favorites.feature:40 +apiShareManagementBasic/createShare.feature:121 +apiShareManagementBasic/createShare.feature:122 +apiShareManagementBasic/createShare.feature:124 +apiShareManagementBasic/createShare.feature:125 +apiShareManagementBasic/createShare.feature:127 +apiShareManagementBasic/createShare.feature:128 +apiShareManagementBasic/createShare.feature:130 +apiShareManagementBasic/createShare.feature:131 +apiShareManagementBasic/createShare.feature:223 +apiShareManagementBasic/createShare.feature:224 +apiShareManagementBasic/createShare.feature:447 +apiShareManagementBasic/createShare.feature:589 +apiShareManagementBasic/createShare.feature:604 +apiShareManagementBasic/createShare.feature:619 +apiShareOperations/gettingShares.feature:155 +apiShareOperations/gettingShares.feature:156 +apiSharePublicLink2/multilinkSharing.feature:181 +apiWebdavMove2/moveFile.feature:316 +apiWebdavProperties1/setFileProperties.feature:32 +apiWebdavProperties1/setFileProperties.feature:33 +apiWebdavProperties2/getFileProperties.feature:84 +apiWebdavProperties2/getFileProperties.feature:85 +apiWebdavProperties2/getFileProperties.feature:166 +apiWebdavProperties2/getFileProperties.feature:167 +apiWebdavUpload1/uploadFile.feature:63 +apiWebdavUpload1/uploadFile.feature:64 +# +# test scenarios that fail for various reasons (to be specified) +# apiMain/checksums.feature:24 apiMain/checksums.feature:25 apiMain/checksums.feature:35 From f263630192b825113d9a8dd1702077d562ca1b85 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 30 Jul 2020 12:43:19 +0545 Subject: [PATCH 219/346] add comments to tests/acceptance/expected-failures.txt --- tests/acceptance/expected-failures.txt | 308 ++++++++++++++++++++++++- 1 file changed, 306 insertions(+), 2 deletions(-) diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt index 52c8c57332..c2dea4195e 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures.txt @@ -31,8 +31,7 @@ apiWebdavProperties2/getFileProperties.feature:167 apiWebdavUpload1/uploadFile.feature:63 apiWebdavUpload1/uploadFile.feature:64 # -# test scenarios that fail for various reasons (to be specified) -# +# https://github.com/owncloud/ocis-reva/issues/196 Checksum feature apiMain/checksums.feature:24 apiMain/checksums.feature:25 apiMain/checksums.feature:35 @@ -66,7 +65,11 @@ apiMain/checksums.feature:360 apiMain/checksums.feature:361 apiMain/checksums.feature:364 apiMain/checksums.feature:376 +# +# https://github.com/owncloud/ocis-reva/issues/100 no robots.txt available apiMain/main.feature:5 +# +# https://github.com/owncloud/ocis-reva/issues/101 quota query apiMain/quota.feature:9 apiMain/quota.feature:16 apiMain/quota.feature:23 @@ -77,7 +80,13 @@ apiMain/quota.feature:68 apiMain/quota.feature:82 apiMain/quota.feature:99 apiMain/quota.feature:112 +# +# https://github.com/owncloud/ocis-reva/issues/65 There is no such thing like a "super-user" +# https://github.com/owncloud/ocis-reva/issues/97 no command equivalent to occ apiMain/status.feature:5 +# +# https://github.com/owncloud/ocis-reva/issues/29 ocs config endpoint only accessible by authorized users +# https://github.com/owncloud/ocis-reva/issues/30 HTTP 401 Unauthorized responses don't contain a body apiAuthOcs/ocsDELETEAuth.feature:9 apiAuthOcs/ocsGETAuth.feature:10 apiAuthOcs/ocsGETAuth.feature:33 @@ -87,17 +96,40 @@ apiAuthOcs/ocsGETAuth.feature:234 apiAuthOcs/ocsGETAuth.feature:252 apiAuthOcs/ocsPOSTAuth.feature:10 apiAuthOcs/ocsPUTAuth.feature:10 +# +# https://github.com/owncloud/ocis-reva/issues/13 server returns 500 when trying to access a not existing file apiAuthWebDav/webDavDELETEAuth.feature:36 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API apiAuthWebDav/webDavLOCKAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API apiAuthWebDav/webDavMKCOLAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiAuthWebDav/webDavMOVEAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/179 send POST requests to another user's webDav endpoints as normal user apiAuthWebDav/webDavPOSTAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API apiAuthWebDav/webDavPROPFINDAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API apiAuthWebDav/webDavPROPPATCHAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API apiAuthWebDav/webDavPUTAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/175 Default capabilities for normal user not same as in oC-core +# https://github.com/owncloud/ocis-reva/issues/176 Difference in response content of status.php and default capabilities apiCapabilities/capabilitiesWithNormalUser.feature:52 +# +# https://github.com/owncloud/ocis-reva/issues/39 REPORT request not implemented apiFavorites/favorites.feature:239 apiFavorites/favorites.feature:240 +# +# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist apiSharees/sharees.feature:32 apiSharees/sharees.feature:33 apiSharees/sharees.feature:53 @@ -150,6 +182,8 @@ apiSharees/sharees.feature:515 apiSharees/sharees.feature:516 apiSharees/sharees.feature:537 apiSharees/sharees.feature:538 +# +# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist apiShareManagementBasic/createShare.feature:247 apiShareManagementBasic/createShare.feature:248 apiShareManagementBasic/createShare.feature:272 @@ -157,27 +191,53 @@ apiShareManagementBasic/createShare.feature:273 apiShareManagementBasic/createShare.feature:468 apiShareManagementBasic/createShare.feature:528 apiShareManagementBasic/createShare.feature:529 +# +# https://github.com/owncloud/ocis-reva/issues/356 Fields missing in delete share OCS response apiShareManagementBasic/deleteShare.feature:36 apiShareManagementBasic/deleteShare.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/260 Sharee retrieves the information about a share -but gets response containing all the shares apiShareOperations/accessToShare.feature:48 apiShareOperations/accessToShare.feature:49 +# +# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist +# https://github.com/owncloud/ocis-reva/issues/194 Group shares support apiShareOperations/accessToShare.feature:78 apiShareOperations/accessToShare.feature:79 +# +# https://github.com/owncloud/ocis-reva/issues/262 Shares are not deleted when user is deleted apiShareOperations/gettingShares.feature:21 apiShareOperations/gettingShares.feature:22 +# +# https://github.com/owncloud/ocis-reva/issues/65 There is no such thing like a "super-user" apiShareOperations/gettingShares.feature:34 apiShareOperations/gettingShares.feature:35 +# +# https://github.com/owncloud/ocis-reva/issues/357 Delete shares from user when user is deleted +# https://github.com/owncloud/ocis-reva/issues/301 no displayname_owner shown when creating a share +# https://github.com/owncloud/ocis-reva/issues/302 when sharing a file mime-type field is set to application/octet-stream apiShareOperations/gettingShares.feature:124 apiShareOperations/gettingShares.feature:125 +# +# https://github.com/owncloud/ocis-reva/issues/374 OCS error message for attempting to access share via share id as an unauthorized user is not informative apiShareOperations/gettingShares.feature:168 apiShareOperations/gettingShares.feature:169 +# +# https://github.com/owncloud/ocis-reva/issues/194 Group shares support apiShareOperations/gettingShares.feature:187 +# +# https://github.com/owncloud/ocis-reva/issues/372 Listing shares via ocs API does not show path for parent folders apiShareOperations/gettingShares.feature:219 apiShareOperations/gettingShares.feature:220 +# +# https://github.com/owncloud/ocis-reva/issues/47 cannot get ocs:share-permissions via WebDAV apiShareOperations/getWebDAVSharePermissions.feature:21 apiShareOperations/getWebDAVSharePermissions.feature:22 apiShareOperations/getWebDAVSharePermissions.feature:148 apiShareOperations/getWebDAVSharePermissions.feature:149 +# +# https://github.com/owncloud/ocis-reva/issues/282 Split old public API webdav tests from new public webdav tests +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink1/accessToPublicLinkShare.feature:10 apiSharePublicLink1/accessToPublicLinkShare.feature:20 apiSharePublicLink1/accessToPublicLinkShare.feature:30 @@ -200,115 +260,220 @@ apiSharePublicLink1/changingPublicLinkShare.feature:289 apiSharePublicLink1/changingPublicLinkShare.feature:300 apiSharePublicLink1/createPublicLinkShare.feature:34 apiSharePublicLink1/createPublicLinkShare.feature:35 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file apiSharePublicLink1/createPublicLinkShare.feature:63 apiSharePublicLink1/createPublicLinkShare.feature:64 +# apiSharePublicLink1/createPublicLinkShare.feature:95 apiSharePublicLink1/createPublicLinkShare.feature:96 +# +# https://github.com/owncloud/ocis-reva/issues/199 Ability to return error messages in Webdav response bodies apiSharePublicLink1/createPublicLinkShare.feature:127 apiSharePublicLink1/createPublicLinkShare.feature:128 +# apiSharePublicLink1/createPublicLinkShare.feature:155 apiSharePublicLink1/createPublicLinkShare.feature:156 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink1/createPublicLinkShare.feature:183 apiSharePublicLink1/createPublicLinkShare.feature:184 +# apiSharePublicLink1/createPublicLinkShare.feature:214 apiSharePublicLink1/createPublicLinkShare.feature:215 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file apiSharePublicLink1/createPublicLinkShare.feature:245 apiSharePublicLink1/createPublicLinkShare.feature:246 +# apiSharePublicLink1/createPublicLinkShare.feature:276 apiSharePublicLink1/createPublicLinkShare.feature:277 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink1/createPublicLinkShare.feature:307 apiSharePublicLink1/createPublicLinkShare.feature:308 +# apiSharePublicLink1/createPublicLinkShare.feature:370 apiSharePublicLink1/createPublicLinkShare.feature:371 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:389 apiSharePublicLink1/createPublicLinkShare.feature:390 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:411 apiSharePublicLink1/createPublicLinkShare.feature:413 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:435 apiSharePublicLink1/createPublicLinkShare.feature:437 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:461 apiSharePublicLink1/createPublicLinkShare.feature:463 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:487 apiSharePublicLink1/createPublicLinkShare.feature:489 apiSharePublicLink1/createPublicLinkShare.feature:491 apiSharePublicLink1/createPublicLinkShare.feature:493 apiSharePublicLink1/createPublicLinkShare.feature:495 apiSharePublicLink1/createPublicLinkShare.feature:497 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:518 apiSharePublicLink1/createPublicLinkShare.feature:519 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:534 apiSharePublicLink1/createPublicLinkShare.feature:535 +# apiSharePublicLink1/createPublicLinkShare.feature:553 apiSharePublicLink1/createPublicLinkShare.feature:554 +# apiSharePublicLink1/createPublicLinkShare.feature:590 apiSharePublicLink1/createPublicLinkShare.feature:591 +# +# https://github.com/owncloud/ocis-reva/issues/283 Prevent creating public share for the home root folder apiSharePublicLink1/createPublicLinkShare.feature:620 apiSharePublicLink1/createPublicLinkShare.feature:621 +# apiSharePublicLink1/createPublicLinkShare.feature:634 apiSharePublicLink1/createPublicLinkShare.feature:635 +# apiSharePublicLink1/createPublicLinkShare.feature:663 apiSharePublicLink1/createPublicLinkShare.feature:664 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:714 apiSharePublicLink1/createPublicLinkShare.feature:715 +# +# https://github.com/owncloud/ocis-reva/issues/199 Ability to return error messages in Webdav response bodies apiSharePublicLink1/createPublicLinkShare.feature:718 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink1/createPublicLinkShare.feature:727 +# +# https://github.com/owncloud/core/issues/37605 Public cannot upload file with mtime set on a public link share with new version of WebDAV API apiSharePublicLink1/createPublicLinkShare.feature:790 +# +# https://github.com/owncloud/core/issues/37605 Public cannot upload file with mtime set on a public link share with new version of WebDAV API apiSharePublicLink1/createPublicLinkShare.feature:816 +# +# https://github.com/owncloud/ocis-reva/issues/311 Deleting a public link after renaming a file apiSharePublicLink1/deletePublicLinkShare.feature:37 apiSharePublicLink1/deletePublicLinkShare.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/373 copying a folder within a public link folder to folder with same name as an already existing file overwrites the parent file apiSharePublicLink2/copyFromPublicLink.feature:60 +# +# https://github.com/owncloud/ocis-reva/issues/368 copying a file from within a public link folder to "/" overwrites the parent folder apiSharePublicLink2/copyFromPublicLink.feature:198 apiSharePublicLink2/copyFromPublicLink.feature:199 +# +# https://github.com/owncloud/ocis-reva/issues/368 copying a file from within a public link folder to "/" overwrites the parent folder apiSharePublicLink2/copyFromPublicLink.feature:230 apiSharePublicLink2/copyFromPublicLink.feature:231 +# apiSharePublicLink2/updatePublicLinkShare.feature:135 apiSharePublicLink2/updatePublicLinkShare.feature:136 +# apiSharePublicLink2/updatePublicLinkShare.feature:326 apiSharePublicLink2/updatePublicLinkShare.feature:327 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiSharePublicLink2/updatePublicLinkShare.feature:345 apiSharePublicLink2/updatePublicLinkShare.feature:346 +# apiSharePublicLink2/updatePublicLinkShare.feature:364 apiSharePublicLink2/updatePublicLinkShare.feature:365 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiSharePublicLink2/updatePublicLinkShare.feature:383 apiSharePublicLink2/updatePublicLinkShare.feature:384 +# apiSharePublicLink2/updatePublicLinkShare.feature:402 apiSharePublicLink2/updatePublicLinkShare.feature:403 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiSharePublicLink2/updatePublicLinkShare.feature:421 apiSharePublicLink2/updatePublicLinkShare.feature:422 +# apiSharePublicLink2/updatePublicLinkShare.feature:440 apiSharePublicLink2/updatePublicLinkShare.feature:441 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiSharePublicLink2/updatePublicLinkShare.feature:459 apiSharePublicLink2/updatePublicLinkShare.feature:460 +# apiSharePublicLink2/updatePublicLinkShare.feature:481 apiSharePublicLink2/updatePublicLinkShare.feature:482 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink2/updatePublicLinkShare.feature:503 apiSharePublicLink2/updatePublicLinkShare.feature:504 +# apiSharePublicLink2/updatePublicLinkShare.feature:528 apiSharePublicLink2/updatePublicLinkShare.feature:529 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:9 +# +# https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file apiSharePublicLink2/uploadToPublicLinkShare.feature:23 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:48 apiSharePublicLink2/uploadToPublicLinkShare.feature:49 +# +# https://github.com/owncloud/ocis-reva/issues/290 Accessing non-existing public link should return 404, not 500 apiSharePublicLink2/uploadToPublicLinkShare.feature:62 apiSharePublicLink2/uploadToPublicLinkShare.feature:63 +# +# https://github.com/owncloud/ocis-reva/issues/290 Accessing non-existing public link should return 404, not 500 apiSharePublicLink2/uploadToPublicLinkShare.feature:77 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink2/uploadToPublicLinkShare.feature:85 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:94 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:114 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:132 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:150 +# +# https://github.com/owncloud/ocis-reva/issues/195 Set quota over settings apiSharePublicLink2/uploadToPublicLinkShare.feature:159 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:169 +# +# https://github.com/owncloud/ocis-reva/issues/195 Set quota over settings apiSharePublicLink2/uploadToPublicLinkShare.feature:178 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:188 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink2/uploadToPublicLinkShare.feature:197 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:207 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink2/uploadToPublicLinkShare.feature:217 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:228 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink2/uploadToPublicLinkShare.feature:238 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:249 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:266 +# +# https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file apiSharePublicLink2/uploadToPublicLinkShare.feature:284 +# +# https://github.com/owncloud/ocis-reva/issues/17 uploading with old-chunking does not work +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiVersions/fileVersions.feature:15 apiVersions/fileVersions.feature:32 apiVersions/fileVersions.feature:45 @@ -320,6 +485,8 @@ apiVersions/fileVersions.feature:123 apiVersions/fileVersions.feature:334 apiVersions/fileVersions.feature:464 apiVersions/fileVersions.feature:488 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFileAsync.feature:26 apiWebdavMove1/moveFileAsync.feature:27 apiWebdavMove1/moveFileAsync.feature:28 @@ -347,30 +514,42 @@ apiWebdavMove1/moveFileAsync.feature:225 apiWebdavMove1/moveFileAsync.feature:234 apiWebdavMove1/moveFileAsync.feature:235 apiWebdavMove1/moveFileAsync.feature:240 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:12 apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:18 apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:26 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:12 apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:19 apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:27 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFolder.feature:21 apiWebdavMove1/moveFolder.feature:22 apiWebdavMove1/moveFolder.feature:46 apiWebdavMove1/moveFolder.feature:47 apiWebdavMove1/moveFolder.feature:71 apiWebdavMove1/moveFolder.feature:72 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFolderToBlacklistedName.feature:21 apiWebdavMove1/moveFolderToBlacklistedName.feature:22 apiWebdavMove1/moveFolderToBlacklistedName.feature:48 apiWebdavMove1/moveFolderToBlacklistedName.feature:49 apiWebdavMove1/moveFolderToBlacklistedName.feature:83 apiWebdavMove1/moveFolderToBlacklistedName.feature:84 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFolderToExcludedDirectory.feature:21 apiWebdavMove1/moveFolderToExcludedDirectory.feature:22 apiWebdavMove1/moveFolderToExcludedDirectory.feature:34 apiWebdavMove1/moveFolderToExcludedDirectory.feature:35 apiWebdavMove1/moveFolderToExcludedDirectory.feature:70 apiWebdavMove1/moveFolderToExcludedDirectory.feature:71 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove2/moveFile.feature:89 apiWebdavMove2/moveFile.feature:90 apiWebdavMove2/moveFile.feature:91 @@ -393,34 +572,48 @@ apiWebdavMove2/moveFile.feature:267 apiWebdavMove2/moveFile.feature:268 apiWebdavMove2/moveFile.feature:284 apiWebdavMove2/moveFile.feature:285 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove2/moveFileToBlacklistedName.feature:18 apiWebdavMove2/moveFileToBlacklistedName.feature:19 apiWebdavMove2/moveFileToBlacklistedName.feature:41 apiWebdavMove2/moveFileToBlacklistedName.feature:42 apiWebdavMove2/moveFileToBlacklistedName.feature:74 apiWebdavMove2/moveFileToBlacklistedName.feature:75 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove2/moveFileToExcludedDirectory.feature:18 apiWebdavMove2/moveFileToExcludedDirectory.feature:19 apiWebdavMove2/moveFileToExcludedDirectory.feature:28 apiWebdavMove2/moveFileToExcludedDirectory.feature:29 apiWebdavMove2/moveFileToExcludedDirectory.feature:63 apiWebdavMove2/moveFileToExcludedDirectory.feature:64 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavOperations/deleteFolder.feature:67 apiWebdavOperations/deleteFolder.feature:68 apiWebdavOperations/deleteFolder.feature:69 apiWebdavOperations/deleteFolder.feature:70 apiWebdavOperations/deleteFolder.feature:91 apiWebdavOperations/deleteFolder.feature:92 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file apiWebdavOperations/downloadFile.feature:29 apiWebdavOperations/downloadFile.feature:30 +# apiWebdavOperations/downloadFile.feature:72 apiWebdavOperations/downloadFile.feature:73 +# apiWebdavOperations/downloadFile.feature:84 apiWebdavOperations/downloadFile.feature:85 +# apiWebdavOperations/refuseAccess.feature:21 apiWebdavOperations/refuseAccess.feature:22 +# apiWebdavOperations/refuseAccess.feature:47 apiWebdavOperations/refuseAccess.feature:48 +# +# https://github.com/owncloud/ocis-reva/issues/39 REPORT request not implemented apiWebdavOperations/search.feature:42 apiWebdavOperations/search.feature:43 apiWebdavOperations/search.feature:57 @@ -443,6 +636,8 @@ apiWebdavOperations/search.feature:210 apiWebdavOperations/search.feature:211 apiWebdavOperations/search.feature:213 apiWebdavOperations/search.feature:229 +# +# https://github.com/owncloud/ocis/issues/187 Previews via webDAV API tests fails on OCIS apiWebdavPreviews/previews.feature:15 apiWebdavPreviews/previews.feature:16 apiWebdavPreviews/previews.feature:17 @@ -482,40 +677,76 @@ apiWebdavPreviews/previews.feature:273 apiWebdavPreviews/previews.feature:274 apiWebdavPreviews/previews.feature:286 apiWebdavPreviews/previews.feature:287 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties1/copyFile.feature:65 apiWebdavProperties1/copyFile.feature:66 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties1/copyFile.feature:85 apiWebdavProperties1/copyFile.feature:86 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavProperties1/copyFile.feature:102 apiWebdavProperties1/copyFile.feature:103 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:116 apiWebdavProperties1/copyFile.feature:117 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:129 apiWebdavProperties1/copyFile.feature:130 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:146 apiWebdavProperties1/copyFile.feature:147 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:165 apiWebdavProperties1/copyFile.feature:166 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:202 apiWebdavProperties1/copyFile.feature:203 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:350 apiWebdavProperties1/copyFile.feature:351 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:370 apiWebdavProperties1/copyFile.feature:371 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:395 apiWebdavProperties1/copyFile.feature:396 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:422 apiWebdavProperties1/copyFile.feature:423 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:448 apiWebdavProperties1/copyFile.feature:449 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:474 apiWebdavProperties1/copyFile.feature:475 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavProperties1/createFolder.feature:71 apiWebdavProperties1/createFolder.feature:72 +# +# https://github.com/owncloud/ocis-reva/issues/168 creating a folder that already exists returns an empty body apiWebdavProperties1/createFolder.feature:85 apiWebdavProperties1/createFolder.feature:86 +# +# https://github.com/owncloud/ocis-reva/issues/168 creating a folder that already exists returns an empty body apiWebdavProperties1/createFolder.feature:113 apiWebdavProperties1/createFolder.feature:114 +# +# https://github.com/owncloud/ocis-reva/issues/101 quota query apiWebdavProperties1/getQuota.feature:17 apiWebdavProperties1/getQuota.feature:18 apiWebdavProperties1/getQuota.feature:27 @@ -526,16 +757,24 @@ apiWebdavProperties1/getQuota.feature:61 apiWebdavProperties1/getQuota.feature:62 apiWebdavProperties1/getQuota.feature:77 apiWebdavProperties1/getQuota.feature:78 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties1/setFileProperties.feature:44 apiWebdavProperties1/setFileProperties.feature:45 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties1/setFileProperties.feature:75 apiWebdavProperties1/setFileProperties.feature:76 +# +# https://github.com/owncloud/ocis-reva/issues/214 XML properties in webdav response not properly encoded apiWebdavProperties2/getFileProperties.feature:37 apiWebdavProperties2/getFileProperties.feature:39 apiWebdavProperties2/getFileProperties.feature:40 apiWebdavProperties2/getFileProperties.feature:41 apiWebdavProperties2/getFileProperties.feature:43 apiWebdavProperties2/getFileProperties.feature:44 +# +# https://github.com/owncloud/ocis-reva/issues/214 XML properties in webdav response not properly encoded apiWebdavProperties2/getFileProperties.feature:100 apiWebdavProperties2/getFileProperties.feature:101 apiWebdavProperties2/getFileProperties.feature:102 @@ -546,44 +785,85 @@ apiWebdavProperties2/getFileProperties.feature:108 apiWebdavProperties2/getFileProperties.feature:109 apiWebdavProperties2/getFileProperties.feature:111 apiWebdavProperties2/getFileProperties.feature:112 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties2/getFileProperties.feature:231 apiWebdavProperties2/getFileProperties.feature:232 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties2/getFileProperties.feature:252 apiWebdavProperties2/getFileProperties.feature:253 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties2/getFileProperties.feature:270 apiWebdavProperties2/getFileProperties.feature:271 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties2/getFileProperties.feature:302 apiWebdavProperties2/getFileProperties.feature:303 +# apiWebdavProperties2/getFileProperties.feature:314 apiWebdavProperties2/getFileProperties.feature:315 +# +# https://github.com/owncloud/ocis-reva/issues/216 Private link support apiWebdavProperties2/getFileProperties.feature:328 apiWebdavProperties2/getFileProperties.feature:329 +# +# https://github.com/owncloud/ocis-reva/issues/163 trying to access a non-existing resource returns an empty body apiWebdavProperties2/getFileProperties.feature:338 apiWebdavProperties2/getFileProperties.feature:339 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:352 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:372 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:407 apiWebdavProperties2/getFileProperties.feature:408 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:420 apiWebdavProperties2/getFileProperties.feature:421 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:433 apiWebdavProperties2/getFileProperties.feature:434 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:482 apiWebdavProperties2/getFileProperties.feature:483 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:495 apiWebdavProperties2/getFileProperties.feature:496 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:508 apiWebdavProperties2/getFileProperties.feature:509 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:521 apiWebdavProperties2/getFileProperties.feature:522 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:534 apiWebdavProperties2/getFileProperties.feature:535 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:547 apiWebdavProperties2/getFileProperties.feature:548 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:560 apiWebdavProperties2/getFileProperties.feature:561 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavUpload1/uploadFile.feature:123 apiWebdavUpload1/uploadFile.feature:124 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:14 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:31 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:48 @@ -595,54 +875,76 @@ apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:143 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:144 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:146 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:159 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavUpload1/uploadFileToBlacklistedName.feature:19 apiWebdavUpload1/uploadFileToBlacklistedName.feature:20 +# +# https://github.com/owncloud/ocis-reva/issues/54 system configuration options missing apiWebdavUpload1/uploadFileToBlacklistedName.feature:31 apiWebdavUpload1/uploadFileToBlacklistedName.feature:32 +# +# https://github.com/owncloud/ocis-reva/issues/54 system configuration options missing apiWebdavUpload1/uploadFileToBlacklistedName.feature:65 apiWebdavUpload1/uploadFileToBlacklistedName.feature:66 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:14 apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:23 apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:47 apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:48 apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:49 apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:52 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload1/uploadFileToExcludedDirectory.feature:20 apiWebdavUpload1/uploadFileToExcludedDirectory.feature:21 apiWebdavUpload1/uploadFileToExcludedDirectory.feature:33 apiWebdavUpload1/uploadFileToExcludedDirectory.feature:34 apiWebdavUpload1/uploadFileToExcludedDirectory.feature:69 apiWebdavUpload1/uploadFileToExcludedDirectory.feature:70 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:14 apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:24 apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:49 apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:50 apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:51 apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:54 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:12 apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:21 apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:45 apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:46 apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:47 apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:50 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:13 apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:20 apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:37 apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:38 apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:39 apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:42 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:12 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:22 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:47 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:48 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:49 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:52 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:13 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:21 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:39 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:40 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:41 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:44 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload2/uploadFileUsingNewChunking.feature:12 apiWebdavUpload2/uploadFileUsingNewChunking.feature:29 apiWebdavUpload2/uploadFileUsingNewChunking.feature:43 @@ -657,6 +959,8 @@ apiWebdavUpload2/uploadFileUsingNewChunking.feature:136 apiWebdavUpload2/uploadFileUsingNewChunking.feature:137 apiWebdavUpload2/uploadFileUsingNewChunking.feature:157 apiWebdavUpload2/uploadFileUsingNewChunking.feature:158 +# +# https://github.com/owncloud/ocis-reva/issues/17 uploading with old-chunking does not work apiWebdavUpload2/uploadFileUsingOldChunking.feature:13 apiWebdavUpload2/uploadFileUsingOldChunking.feature:26 apiWebdavUpload2/uploadFileUsingOldChunking.feature:35 From 9d147b157a0f03eb6485be30ed66f6742da1b3b5 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 30 Jul 2020 14:18:03 +0545 Subject: [PATCH 220/346] Add infrastructure and first local acceptance test --- .codacy.yml | 1 + .drone.star | 46 +++++++++++++++++-- .gitignore | 7 +++ Makefile | 18 ++++++++ composer.json | 18 ++++++++ tests/acceptance/config/behat.yml | 30 ++++++++++++ .../apiOcisSpecific/ocsDELETEAuth.feature | 27 +++++++++++ .../features/bootstrap/RevaContext.php | 40 ++++++++++++++++ .../features/bootstrap/bootstrap.php | 14 ++++++ vendor-bin/behat/composer.json | 22 +++++++++ 10 files changed, 218 insertions(+), 5 deletions(-) create mode 100644 composer.json create mode 100644 tests/acceptance/config/behat.yml create mode 100644 tests/acceptance/features/apiOcisSpecific/ocsDELETEAuth.feature create mode 100644 tests/acceptance/features/bootstrap/RevaContext.php create mode 100644 tests/acceptance/features/bootstrap/bootstrap.php create mode 100644 vendor-bin/behat/composer.json diff --git a/.codacy.yml b/.codacy.yml index 855b4f298b..02e0cf2ebe 100644 --- a/.codacy.yml +++ b/.codacy.yml @@ -4,5 +4,6 @@ exclude_paths: - changelog/** - docs/** - pkg/proto/** + - tests/acceptance/features/bootstrap/* ... diff --git a/.drone.star b/.drone.star index 582e802bd3..fd7d2695ea 100644 --- a/.drone.star +++ b/.drone.star @@ -91,6 +91,47 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): }, ] }, + { + 'name': 'clone-test-repos', + 'image': 'owncloudci/php:7.2', + 'pull': 'always', + 'commands': [ + 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', + 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), + 'cd /srv/app/testrunner', + ] + ([ + 'git checkout %s' % (coreCommit) + ] if coreCommit != '' else []), + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, + { + 'name': 'local-acceptance-tests', + 'image': 'owncloudci/php:7.2', + 'pull': 'always', + 'environment' : { + 'TEST_SERVER_URL': 'http://reva-server:9140', + 'REVA_LDAP_HOSTNAME':'ldap', + 'TEST_EXTERNAL_USER_BACKENDS':'true', + 'TEST_OCIS':'true', + 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', + 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', + 'PATH_TO_CORE': '/srv/app/testrunner' + }, + 'commands': [ + 'make test-acceptance-api' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, { 'name': 'core-acceptance-tests', 'image': 'owncloudci/php:7.2', @@ -106,12 +147,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures.txt' }, 'commands': [ - 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', - 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), 'cd /srv/app/testrunner', - ] + ([ - 'git checkout %s' % (coreCommit) - ] if coreCommit != '' else []) + [ 'make test-acceptance-api' ], 'volumes': [ diff --git a/.gitignore b/.gitignore index 6067678797..4899c1247d 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,10 @@ coverage.out /node_modules /assets + +# API acceptance tests +composer.lock +/vendor +vendor-bin/**/vendor +vendor-bin/**/composer.lock +tests/acceptance/output diff --git a/Makefile b/Makefile index 511c344f59..3f90d955f2 100644 --- a/Makefile +++ b/Makefile @@ -159,3 +159,21 @@ docs: config-docs-generate docs-copy docs-build .PHONY: watch watch: go run github.com/cespare/reflex -c reflex.conf + +BEHAT_BIN=vendor-bin/behat/vendor/bin/behat + +.PHONY: test-acceptance-api +test-acceptance-api: vendor-bin/behat/vendor + BEHAT_BIN=$(BEHAT_BIN) $(PATH_TO_CORE)/tests/acceptance/run.sh --remote --type api + +vendor/bamarni/composer-bin-plugin: composer.lock + composer install + +vendor-bin/behat/vendor: vendor/bamarni/composer-bin-plugin vendor-bin/behat/composer.lock + composer bin behat install --no-progress + +vendor-bin/behat/composer.lock: vendor-bin/behat/composer.json + @echo behat composer.lock is not up to date. + +composer.lock: composer.json + @echo composer.lock is not up to date. diff --git a/composer.json b/composer.json new file mode 100644 index 0000000000..53c0a9c219 --- /dev/null +++ b/composer.json @@ -0,0 +1,18 @@ +{ + "name": "owncloud/ocis-reva", + "config" : { + "platform": { + "php": "7.2" + } + }, + "require": { + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4" + }, + "extra": { + "bamarni-bin": { + "bin-links": false + } + } +} diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml new file mode 100644 index 0000000000..b74d189ad5 --- /dev/null +++ b/tests/acceptance/config/behat.yml @@ -0,0 +1,30 @@ +default: + autoload: + '': '%paths.base%/../features/bootstrap' + + suites: + apiOcisSpecific: + paths: + - '%paths.base%/../features/apiOcisSpecific' + context: &common_ldap_suite_context + parameters: + ldapAdminPassword: admin + ldapUsersOU: TestUsers + ldapGroupsOU: TestGroups + ldapInitialUserFilePath: /../../config/ldap-users.ldif + contexts: + - RevaContext: + - OccContext: + - FeatureContext: &common_feature_context_params + baseUrl: http://localhost:8080 + adminUsername: admin + adminPassword: admin + regularUserPassword: 123456 + ocPath: apps/testing/api/v1/occ + - FavoritesContext: + - WebDavPropertiesContext: + + extensions: + jarnaiz\JUnitFormatter\JUnitFormatterExtension: + filename: report.xml + outputDir: '%paths.base%/../output/' diff --git a/tests/acceptance/features/apiOcisSpecific/ocsDELETEAuth.feature b/tests/acceptance/features/apiOcisSpecific/ocsDELETEAuth.feature new file mode 100644 index 0000000000..8be10830f8 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/ocsDELETEAuth.feature @@ -0,0 +1,27 @@ +@api +Feature: auth + + @issue-ocis-reva-30 @issue-ocis-reva-65 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: send DELETE requests to OCS endpoints as admin with wrong password + When the administrator requests these endpoints with "DELETE" using password "invalid" about user "Alice" + | endpoint | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/pending/123 | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/123 | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/123 | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/123 | + | /ocs/v2.php/apps/files_sharing/api/v1/shares/123 | + | /ocs/v1.php/apps/files_sharing/api/v1/shares/pending/123 | + | /ocs/v2.php/apps/files_sharing/api/v1/shares/pending/123 | + | /ocs/v1.php/cloud/apps/testing | + | /ocs/v2.php/cloud/apps/testing | + | /ocs/v1.php/cloud/groups/group1 | + | /ocs/v2.php/cloud/groups/group1 | + | /ocs/v1.php/cloud/users/%username% | + | /ocs/v2.php/cloud/users/%username% | + | /ocs/v1.php/cloud/users/%username%/groups | + | /ocs/v2.php/cloud/users/%username%/groups | + | /ocs/v1.php/cloud/users/%username%/subadmins | + | /ocs/v2.php/cloud/users/%username%/subadmins | + Then the HTTP status code of responses on all endpoints should be "401" + And the OCS status code of responses on all endpoints should be "notset" diff --git a/tests/acceptance/features/bootstrap/RevaContext.php b/tests/acceptance/features/bootstrap/RevaContext.php new file mode 100644 index 0000000000..2a41222029 --- /dev/null +++ b/tests/acceptance/features/bootstrap/RevaContext.php @@ -0,0 +1,40 @@ +getEnvironment(); + // Get all the contexts you need in this context + $this->featureContext = $environment->getContext('FeatureContext'); + SetupHelper::init( + $this->featureContext->getAdminUsername(), + $this->featureContext->getAdminPassword(), + $this->featureContext->getBaseUrl(), + $this->featureContext->getOcPath() + ); + } +} diff --git a/tests/acceptance/features/bootstrap/bootstrap.php b/tests/acceptance/features/bootstrap/bootstrap.php new file mode 100644 index 0000000000..1e2175b1ba --- /dev/null +++ b/tests/acceptance/features/bootstrap/bootstrap.php @@ -0,0 +1,14 @@ +addPsr4( + "", $pathToCore . "/tests/acceptance/features/bootstrap", true +); + +$classLoader->register(); diff --git a/vendor-bin/behat/composer.json b/vendor-bin/behat/composer.json new file mode 100644 index 0000000000..aa22f60040 --- /dev/null +++ b/vendor-bin/behat/composer.json @@ -0,0 +1,22 @@ +{ + "config" : { + "platform": { + "php": "7.2" + } + }, + "require": { + "behat/behat": "^3.7", + "behat/mink": "1.7.1", + "behat/mink-extension": "^2.3", + "behat/mink-goutte-driver": "^1.2", + "behat/mink-selenium2-driver": "^1.4", + "jarnaiz/behat-junit-formatter": "^1.3", + "rdx/behat-variables": "^1.2", + "sensiolabs/behat-page-object-extension": "^2.3", + "symfony/translation": "^4.4", + "sabre/xml": "^2.2", + "guzzlehttp/guzzle": "^6.5", + "phpunit/phpunit": "^8.5", + "laminas/laminas-ldap": "^2.10" + } +} From 71f1c752fffe270a24e4fec36f9bf328ed09cf32 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 30 Jul 2020 14:40:11 +0545 Subject: [PATCH 221/346] Add apiOcisSpecific features from apiAuthOcs --- .../apiOcisSpecific/ocsGETAuth.feature | 112 ++++++++++++++++++ .../apiOcisSpecific/ocsPOSTAuth.feature | 35 ++++++ .../apiOcisSpecific/ocsPUTAuth.feature | 18 +++ 3 files changed, 165 insertions(+) create mode 100644 tests/acceptance/features/apiOcisSpecific/ocsGETAuth.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/ocsPOSTAuth.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/ocsPUTAuth.feature diff --git a/tests/acceptance/features/apiOcisSpecific/ocsGETAuth.feature b/tests/acceptance/features/apiOcisSpecific/ocsGETAuth.feature new file mode 100644 index 0000000000..d48ec88c0d --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/ocsGETAuth.feature @@ -0,0 +1,112 @@ +@api +Feature: auth + + Background: + Given user "Alice" has been created with default attributes and skeleton files + + @issue-ocis-reva-29 + @issue-ocis-reva-30 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: using OCS anonymously + When a user requests these endpoints with "GET" and no authentication + | endpoint | + | /ocs/v1.php/apps/files_external/api/v1/mounts | + | /ocs/v2.php/apps/files_external/api/v1/mounts | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/pending | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending | + | /ocs/v1.php/apps/files_sharing/api/v1/shares | + | /ocs/v2.php/apps/files_sharing/api/v1/shares | + | /ocs/v1.php/cloud/apps | + | /ocs/v2.php/cloud/apps | + | /ocs/v1.php/cloud/groups | + | /ocs/v2.php/cloud/groups | + | /ocs/v1.php/cloud/users | + | /ocs/v2.php/cloud/users | + | /ocs/v1.php/config | + | /ocs/v2.php/config | + | /ocs/v1.php/privatedata/getattribute | + | /ocs/v2.php/privatedata/getattribute | + Then the HTTP status code of responses on all endpoints should be "401" + And the OCS status code of responses on all endpoints should be "notset" + + @issue-ocis-reva-11 + @issue-ocis-reva-30 + @issue-ocis-reva-31 + @issue-ocis-reva-32 + @issue-ocis-reva-33 + @issue-ocis-reva-34 + @issue-ocis-reva-35 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: using OCS with non-admin basic auth + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v1.php/apps/files_external/api/v1/mounts | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/pending | + | /ocs/v1.php/privatedata/getattribute | + | /ocs/v1.php/cloud/groups | + | /ocs/v1.php/cloud/apps | + Then the HTTP status code of responses on all endpoints should be "200" + And the OCS status code of responses on all endpoints should be "998" + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v1.php/config | + Then the HTTP status code of responses on all endpoints should be "200" + And the OCS status code of responses on all endpoints should be "100" + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v2.php/apps/files_external/api/v1/mounts | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending | + # | /ocs/v1.php/apps/files_sharing/api/v1/shares | 100 | 200 | + # | /ocs/v2.php/apps/files_sharing/api/v1/shares | 100 | 200 | + + | /ocs/v2.php/cloud/apps | + | /ocs/v2.php/cloud/groups | + | /ocs/v2.php/privatedata/getattribute | + Then the HTTP status code of responses on all endpoints should be "404" + And the OCS status code of responses on all endpoints should be "998" + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v1.php/cloud/users | + Then the HTTP status code of responses on all endpoints should be "200" + And the OCS status code of responses on all endpoints should be "403" + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v2.php/cloud/users | + Then the HTTP status code of responses on all endpoints should be "403" + And the OCS status code of responses on all endpoints should be "403" + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v2.php/config | + Then the HTTP status code of responses on all endpoints should be "200" + And the OCS status code of responses on all endpoints should be "200" + + @issue-ocis-reva-29 + @issue-ocis-reva-30 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: using OCS as normal user with wrong password + When user "Alice" requests these endpoints with "GET" using password "invalid" + | endpoint | + | /ocs/v1.php/apps/files_external/api/v1/mounts | + | /ocs/v2.php/apps/files_external/api/v1/mounts | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/pending | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending | + | /ocs/v1.php/apps/files_sharing/api/v1/shares | + | /ocs/v2.php/apps/files_sharing/api/v1/shares | + | /ocs/v1.php/cloud/apps | + | /ocs/v2.php/cloud/apps | + | /ocs/v1.php/cloud/groups | + | /ocs/v2.php/cloud/groups | + | /ocs/v1.php/cloud/users | + | /ocs/v2.php/cloud/users | + | /ocs/v1.php/config | + | /ocs/v2.php/config | + | /ocs/v1.php/privatedata/getattribute | + | /ocs/v2.php/privatedata/getattribute | + Then the HTTP status code of responses on all endpoints should be "401" + And the OCS status code of responses on all endpoints should be "notset" diff --git a/tests/acceptance/features/apiOcisSpecific/ocsPOSTAuth.feature b/tests/acceptance/features/apiOcisSpecific/ocsPOSTAuth.feature new file mode 100644 index 0000000000..3b3927e6e4 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/ocsPOSTAuth.feature @@ -0,0 +1,35 @@ +@api +Feature: auth + + Background: + Given user "Alice" has been created with default attributes and skeleton files + + @issue-ocis-reva-30 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: send POST requests to OCS endpoints as normal user with wrong password + When user "Alice" requests these endpoints with "POST" including body "doesnotmatter" using password "invalid" about user "Alice" + | endpoint | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/pending/123 | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/123 | + | /ocs/v1.php/apps/files_sharing/api/v1/shares | + | /ocs/v2.php/apps/files_sharing/api/v1/shares | + | /ocs/v1.php/apps/files_sharing/api/v1/shares/pending/123 | + | /ocs/v2.php/apps/files_sharing/api/v1/shares/pending/123 | + | /ocs/v1.php/cloud/apps/testing | + | /ocs/v2.php/cloud/apps/testing | + | /ocs/v1.php/cloud/groups | + | /ocs/v2.php/cloud/groups | + | /ocs/v1.php/cloud/users | + | /ocs/v2.php/cloud/users | + | /ocs/v1.php/cloud/users/%username%/groups | + | /ocs/v2.php/cloud/users/%username%/groups | + | /ocs/v1.php/cloud/users/%username%/subadmins | + | /ocs/v2.php/cloud/users/%username%/subadmins | + | /ocs/v1.php/person/check | + | /ocs/v2.php/person/check | + | /ocs/v1.php/privatedata/deleteattribute/testing/test | + | /ocs/v2.php/privatedata/deleteattribute/testing/test | + | /ocs/v1.php/privatedata/setattribute/testing/test | + | /ocs/v2.php/privatedata/setattribute/testing/test | + Then the HTTP status code of responses on all endpoints should be "401" + And the OCS status code of responses on all endpoints should be "notset" diff --git a/tests/acceptance/features/apiOcisSpecific/ocsPUTAuth.feature b/tests/acceptance/features/apiOcisSpecific/ocsPUTAuth.feature new file mode 100644 index 0000000000..b8e54da9a7 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/ocsPUTAuth.feature @@ -0,0 +1,18 @@ +@api +Feature: auth + + @issue-ocis-reva-30 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: send PUT request to OCS endpoints as admin with wrong password + When the administrator requests these endpoints with "PUT" with body "doesnotmatter" using password "invalid" about user "Alice" + | endpoint | + | /ocs/v1.php/cloud/users/%username% | + | /ocs/v2.php/cloud/users/%username% | + | /ocs/v1.php/cloud/users/%username%/disable | + | /ocs/v2.php/cloud/users/%username%/disable | + | /ocs/v1.php/cloud/users/%username%/enable | + | /ocs/v2.php/cloud/users/%username%/enable | + | /ocs/v1.php/apps/files_sharing/api/v1/shares/123 | + | /ocs/v2.php/apps/files_sharing/api/v1/shares/123 | + Then the HTTP status code of responses on all endpoints should be "401" + And the OCS status code of responses on all endpoints should be "notset" From 727d7089fda495481646cb1f269ad611295f6a9a Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 31 Jul 2020 19:35:54 +0545 Subject: [PATCH 222/346] Update testing docs for EXPECTED_FAILURES_FILE changes --- docs/testing.md | 70 ++++++++++++++++++------------------------------- 1 file changed, 26 insertions(+), 44 deletions(-) diff --git a/docs/testing.md b/docs/testing.md index 0a07a25d20..015db53962 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -84,28 +84,36 @@ TEST_SERVER_URL=http://localhost:9140 \ TEST_EXTERNAL_USER_BACKENDS=true \ TEST_OCIS=true \ OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ -BEHAT_FILTER_TAGS='~@skipOnOcis&&~@skipOnOcis-OC-Storage' \ +BEHAT_FILTER_TAGS='~@notToImplementOnOCIS&&~@toImplementOnOCIS' \ SKELETON_DIR=apps/testing/data/apiSkeleton ``` -Make sure to adjust the settings `TEST_SERVER_URL`,`OCIS_REVA_DATA_ROOT` and `SKELETON_DIR` according to your environment +Make sure to adjust the settings `TEST_SERVER_URL`,`OCIS_REVA_DATA_ROOT` and `SKELETON_DIR` according to your environment. -This will run all tests that can work with LDAP, and are not skipped on OCIS or on OCIS with OC Storage. +This will run all tests that are relevant to OCIS. To run a single test add `BEHAT_FEATURE=` and specify the path to the feature file and an optional line number. For example: `BEHAT_FEATURE='tests/acceptance/features/apiWebdavUpload1/uploadFile.feature:12'` ### use existing tests for BDD As a lot of scenarios are written for oC10, we can use those tests for Behaviour driven development in ocis. -Every scenario that does not work in OCIS, is tagged with `@skipOnOcis` and additionally should be marked with an issue number e.g. `@issue-ocis-reva-122`. -This tag means that this particular scenario is skipped because of [issue no 122 in the ocis-reva repository](https://github.com/owncloud/ocis-reva/issues/122). -Additionally, some issues have scenarios that demonstrate the current buggy behaviour in ocis(reva) and are skipped on oC10. +Every scenario that does not work in OCIS, is listed in `tests/acceptance/expected-failures.txt` with a link to the related issue. +Those scenarios are run in the ordinary acceptance test pipeline in CI. The sccenarios that fail are checked against the +expected failures. If there are any differences then the CI pipeline fails. + +Additionally, some issues have scenarios that demonstrate the current buggy behaviour in ocis(reva). +Those scenarios are in this ocis-reva repository in `tests/acceptance/features/apiOcisSpecific`. Have a look into the [documentation](https://doc.owncloud.com/server/developer_manual/testing/acceptance-tests.html#writing-scenarios-for-bugs) to understand why we are writing those tests. -Also, ocis behaves partly differently with EOS-Storage and OC-Storage. There are scenarios that do not work in OCIS when run on EOS-storage, but works when on OC-Storage, and vice-versa. For those kind of scenarios, ` @skipOnOcis-EOS-Storage` and `@skipOnOcis-OC-Storage` tags are used. For instance, for a scenario that fails on EOS-Storage but passes on OC-Storage, we use `@skipOnOcis-EOS-Storage` tag to let it run on OC-Storage, where it works as expected, instead of skipping on ocis with `@skipOnOcis` tag. +Also, ocis behaves partly differently with EOS-Storage and OC-Storage. There are scenarios that do not work in OCIS when run on EOS-storage, but works when on OC-Storage, and vice-versa. For those kind of scenarios, ` @skipOnOcis-EOS-Storage` and `@skipOnOcis-OC-Storage` tags are used. For instance, for a scenario that fails on EOS-Storage but passes on OC-Storage, we use `@skipOnOcis-EOS-Storage` tag to let it run on OC-Storage, where it works as expected, instead of skipping the test completely. If you want to work on a specific issue -1. run the tests marked with that issue tag +1. adjust the core commit id to the latest commit in core so that CI will run the latest test code and scenarios from core. + For that change this line in the `main` function: + + apiTests(ctx, 'master', 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa') + +2. locally run each of the tests marked with that issue in the expected failures file: E.g.: ``` @@ -114,45 +122,19 @@ If you want to work on a specific issue TEST_EXTERNAL_USER_BACKENDS=true \ TEST_OCIS=true \ OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ - BEHAT_FILTER_TAGS='~@skipOnOcV10&&@issue-ocis-reva-122' + BEHAT_FEATURE='tests/acceptance/features/apiComments/comments.feature:123' ``` - Note that the `~@skipOnOcis` and `~@skipOnOcis-OC-Storage` tags are replaced by `~@skipOnOcV10` and the issue tag `@issue-ocis-reva-122` is added. - We want to run all tests that are skipped in CI because of this particular bug, but we don't want to run the tests - that demonstrate the current buggy behaviour. +3. the tests will fail, try to understand how and why they are failing +4. fix the code +5. go back to 2. and repeat till the tests are passing. +6. remove those tests from the expected failures file. +7. run each of the local tests that were demonstrating the **buggy** behavior. They should fail. +8. delete each of the local tests that were demonstrating the **buggy** behavior. +9. make a PR that has the fixed code, relevant lines removed from the expected failures file and bug demonstration tests deleted. -2. the tests will fail, try to understand how and why they are failing -3. fix the code -4. go back to 1. and repeat till the tests are passing. -5. adjust tests that demonstrate the **buggy** behaviour - - delete the tests in core that are tagged with that particular issue and `@skipOnOcV10`, but be careful because a lot of tests are tagged with multiple issues. - Only delete tests that demonstrate the buggy behaviour if you fixed all bugs related to that test. If not you might have to adjust the test. -6. unskip tests that demonstrate the **correct** behaviour - - The `@skipOnOcis` tag should not be needed now, so delete it, but leave the issue tag for future reference. -7. make a PR to core with the changed tests -8. make a PR to ocis-reva running the adjusted tests - - To confirm that all tests (old and changed) run fine make a PR to ocis-reva with your code changes and point drone to your branch in core to get the changed tests. - For that change this line in the `main` function. - - `apiTests(ctx, 'master', '9db442250583d3b71e633cf77fbcf643ed67e994'),` - - In place of master use your branch name. If you dont specify the commit ID, you will run the tests using the HEAD of the branch you specified. - - `apiTests(ctx, 'my-new-tests', '')` - - Also make sure to change the commit ID if you want to run tests on any other commit. eg: - - `apiTests(ctx, 'my-new-tests', '7d468c05414b1dc745ca713d9deb443bc4e5f333')` - - -9. merge PRs - - After you have confirmed that the tests pass everywhere merge the core PR and immediately revert the change in 8. and merge the ocis-reva PR - - If the changes also affect the `ocis` repository make sure the changes get ported over there immediately, otherwise the tests will start failing there. + If the changes also affect the `ocis` repository make sure the changes get ported over there. + That will need the fixed code in `ocis-reva` to be applied to `ocis` along with the test-related changes. ### Notes - in a normal case the test-code cleans up users after the test-run, but if a test-run is interrupted (e.g. by CTRL+C) users might have been left on the LDAP server. In that case rerunning the tests requires wiping the users in the ldap server, otherwise the tests will fail when trying to populate the users. This can be done by simply running `docker stop docker-slapd && docker rm docker-slapd` and [restarting the LDAP server container](#run-a-ldap-server-in-a-docker-container) From c32fb5c0d0dafe9a51b25615a5706400a78f0756 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 31 Jul 2020 20:12:44 +0545 Subject: [PATCH 223/346] Split core API acceptance tests into 2 parts --- .drone.star | 144 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 137 insertions(+), 7 deletions(-) diff --git a/.drone.star b/.drone.star index fd7d2695ea..0b19538b0c 100644 --- a/.drone.star +++ b/.drone.star @@ -1,8 +1,5 @@ def main(ctx): - before = [ - testing(ctx), - apiTests(ctx, 'master', 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa'), - ] + before = testPipelines(ctx, 'master', 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa') stages = [ docker(ctx, 'amd64'), @@ -23,11 +20,19 @@ def main(ctx): return before + stages + after -def apiTests(ctx, coreBranch = 'master', coreCommit = ''): +def testPipelines(ctx, coreBranch = 'master', coreCommit = ''): + return [ + testing(ctx), + localApiTests(ctx, coreBranch, coreCommit), + coreApiTests(ctx, coreBranch, coreCommit, 1, 2), + coreApiTests(ctx, coreBranch, coreCommit, 2, 2), + ] + +def localApiTests(ctx, coreBranch = 'master', coreCommit = ''): return { 'kind': 'pipeline', 'type': 'docker', - 'name': 'API-Tests', + 'name': 'Local-API-Tests', 'platform': { 'os': 'linux', 'arch': 'amd64', @@ -132,8 +137,131 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): }, ] }, + ], + 'services': [ { - 'name': 'core-acceptance-tests', + 'name': 'ldap', + 'image': 'osixia/openldap', + 'pull': 'always', + 'environment': { + 'LDAP_DOMAIN': 'owncloud.com', + 'LDAP_ORGANISATION': 'owncloud', + 'LDAP_ADMIN_PASSWORD': 'admin', + 'LDAP_TLS_VERIFY_CLIENT': 'never', + }, + }, + { + 'name': 'redis', + 'image': 'webhippie/redis', + 'pull': 'always', + 'environment': { + 'REDIS_DATABASES': 1 + }, + }, + ], + 'volumes': [ + { + 'name': 'gopath', + 'temp': {}, + }, + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + 'refs/pull/**', + ], + }, + } + +def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, number_of_parts = 1): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': 'Core-API-Tests-%s' % (part_number), + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'steps': [ + { + 'name': 'build', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make build', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'reva-server', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'detach': True, + 'environment' : { + 'REVA_LDAP_HOSTNAME': 'ldap', + 'REVA_LDAP_PORT': 636, + 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', + 'REVA_LDAP_BIND_PASSWORD': 'admin', + 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', + 'REVA_LDAP_SCHEMA_UID': 'uid', + 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', + 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', + 'REVA_STORAGE_OC_DATA_URL': 'reva-server:9164', + 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', + 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', + 'REVA_FRONTEND_URL': 'http://reva-server:9140', + 'REVA_DATAGATEWAY_URL': 'http://reva-server:9140/data', + }, + 'commands': [ + 'apk add mailcap', + 'mkdir -p /srv/app/tmp/reva', + 'bin/ocis-reva --log-level debug --log-pretty gateway &', + 'bin/ocis-reva --log-level debug --log-pretty users &', + 'bin/ocis-reva --log-level debug --log-pretty auth-basic &', + 'bin/ocis-reva --log-level debug --log-pretty auth-bearer &', + 'bin/ocis-reva --log-level debug --log-pretty sharing &', + 'bin/ocis-reva --log-level debug --log-pretty storage-home &', + 'bin/ocis-reva --log-level debug --log-pretty storage-home-data &', + 'bin/ocis-reva --log-level debug --log-pretty storage-oc &', + 'bin/ocis-reva --log-level debug --log-pretty storage-oc-data &', + 'bin/ocis-reva --log-level debug --log-pretty frontend &', + 'bin/ocis-reva --log-level debug --log-pretty reva-storage-public-link' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, + { + 'name': 'clone-test-repos', + 'image': 'owncloudci/php:7.2', + 'pull': 'always', + 'commands': [ + 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', + 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), + 'cd /srv/app/testrunner', + ] + ([ + 'git checkout %s' % (coreCommit) + ] if coreCommit != '' else []), + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, + { + 'name': 'core-acceptance-tests-%s' % (part_number), 'image': 'owncloudci/php:7.2', 'pull': 'always', 'environment' : { @@ -144,6 +272,8 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'TEST_OCIS':'true', 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', + 'DIVIDE_INTO_NUM_PARTS': number_of_parts, + 'RUN_PART': part_number, 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures.txt' }, 'commands': [ From 930678bc2cb6bb264ae514f8ea14b966cf85e206 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 3 Aug 2020 15:41:17 +0545 Subject: [PATCH 224/346] Refactor .drone.star API tests --- .drone.star | 366 ++++++++++++++++++++---------------------------- docs/testing.md | 10 +- 2 files changed, 162 insertions(+), 214 deletions(-) diff --git a/.drone.star b/.drone.star index 0b19538b0c..20ea154efd 100644 --- a/.drone.star +++ b/.drone.star @@ -1,5 +1,13 @@ +config = { + 'apiTests': { + 'coreBranch': 'master', + 'coreCommit': 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa', + 'numberOfParts': 2 + } +} + def main(ctx): - before = testPipelines(ctx, 'master', 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa') + before = testPipelines(ctx) stages = [ docker(ctx, 'amd64'), @@ -20,111 +28,41 @@ def main(ctx): return before + stages + after -def testPipelines(ctx, coreBranch = 'master', coreCommit = ''): - return [ +def testPipelines(ctx): + pipelines = [ testing(ctx), - localApiTests(ctx, coreBranch, coreCommit), - coreApiTests(ctx, coreBranch, coreCommit, 1, 2), - coreApiTests(ctx, coreBranch, coreCommit, 2, 2), + localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit']) ] + for runPart in range(1, config['apiTests']['numberOfParts'] + 1): + pipelines.append(coreApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], runPart, config['apiTests']['numberOfParts'])) + + return pipelines + def localApiTests(ctx, coreBranch = 'master', coreCommit = ''): return { 'kind': 'pipeline', 'type': 'docker', - 'name': 'Local-API-Tests', + 'name': 'localApiTests', 'platform': { 'os': 'linux', 'arch': 'amd64', }, - 'steps': [ + 'steps': + build() + + revaServer() + + cloneCoreRepos(coreBranch, coreCommit) + [ { - 'name': 'build', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make build', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'reva-server', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'detach': True, - 'environment' : { - 'REVA_LDAP_HOSTNAME': 'ldap', - 'REVA_LDAP_PORT': 636, - 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', - 'REVA_LDAP_BIND_PASSWORD': 'admin', - 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', - 'REVA_LDAP_SCHEMA_UID': 'uid', - 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', - 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', - 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', - 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', - 'REVA_STORAGE_OC_DATA_URL': 'reva-server:9164', - 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', - 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', - 'REVA_FRONTEND_URL': 'http://reva-server:9140', - 'REVA_DATAGATEWAY_URL': 'http://reva-server:9140/data', - }, - 'commands': [ - 'apk add mailcap', - 'mkdir -p /srv/app/tmp/reva', - 'bin/ocis-reva --log-level debug --log-pretty gateway &', - 'bin/ocis-reva --log-level debug --log-pretty users &', - 'bin/ocis-reva --log-level debug --log-pretty auth-basic &', - 'bin/ocis-reva --log-level debug --log-pretty auth-bearer &', - 'bin/ocis-reva --log-level debug --log-pretty sharing &', - 'bin/ocis-reva --log-level debug --log-pretty storage-home &', - 'bin/ocis-reva --log-level debug --log-pretty storage-home-data &', - 'bin/ocis-reva --log-level debug --log-pretty storage-oc &', - 'bin/ocis-reva --log-level debug --log-pretty storage-oc-data &', - 'bin/ocis-reva --log-level debug --log-pretty frontend &', - 'bin/ocis-reva --log-level debug --log-pretty reva-storage-public-link' - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ] - }, - { - 'name': 'clone-test-repos', - 'image': 'owncloudci/php:7.2', - 'pull': 'always', - 'commands': [ - 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', - 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), - 'cd /srv/app/testrunner', - ] + ([ - 'git checkout %s' % (coreCommit) - ] if coreCommit != '' else []), - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ] - }, - { - 'name': 'local-acceptance-tests', + 'name': 'LocalApiTests', 'image': 'owncloudci/php:7.2', 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - 'REVA_LDAP_HOSTNAME':'ldap', - 'TEST_EXTERNAL_USER_BACKENDS':'true', - 'TEST_OCIS':'true', 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', + 'TEST_EXTERNAL_USER_BACKENDS':'true', + 'REVA_LDAP_HOSTNAME':'ldap', + 'TEST_OCIS':'true', 'PATH_TO_CORE': '/srv/app/testrunner' }, 'commands': [ @@ -138,27 +76,9 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = ''): ] }, ], - 'services': [ - { - 'name': 'ldap', - 'image': 'osixia/openldap', - 'pull': 'always', - 'environment': { - 'LDAP_DOMAIN': 'owncloud.com', - 'LDAP_ORGANISATION': 'owncloud', - 'LDAP_ADMIN_PASSWORD': 'admin', - 'LDAP_TLS_VERIFY_CLIENT': 'never', - }, - }, - { - 'name': 'redis', - 'image': 'webhippie/redis', - 'pull': 'always', - 'environment': { - 'REDIS_DATABASES': 1 - }, - }, - ], + 'services': + ldap() + + redis(), 'volumes': [ { 'name': 'gopath', @@ -183,95 +103,22 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n 'os': 'linux', 'arch': 'amd64', }, - 'steps': [ + 'steps': + build() + + revaServer() + + cloneCoreRepos(coreBranch, coreCommit) + [ { - 'name': 'build', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make build', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'reva-server', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'detach': True, - 'environment' : { - 'REVA_LDAP_HOSTNAME': 'ldap', - 'REVA_LDAP_PORT': 636, - 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', - 'REVA_LDAP_BIND_PASSWORD': 'admin', - 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', - 'REVA_LDAP_SCHEMA_UID': 'uid', - 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', - 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', - 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', - 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', - 'REVA_STORAGE_OC_DATA_URL': 'reva-server:9164', - 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', - 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', - 'REVA_FRONTEND_URL': 'http://reva-server:9140', - 'REVA_DATAGATEWAY_URL': 'http://reva-server:9140/data', - }, - 'commands': [ - 'apk add mailcap', - 'mkdir -p /srv/app/tmp/reva', - 'bin/ocis-reva --log-level debug --log-pretty gateway &', - 'bin/ocis-reva --log-level debug --log-pretty users &', - 'bin/ocis-reva --log-level debug --log-pretty auth-basic &', - 'bin/ocis-reva --log-level debug --log-pretty auth-bearer &', - 'bin/ocis-reva --log-level debug --log-pretty sharing &', - 'bin/ocis-reva --log-level debug --log-pretty storage-home &', - 'bin/ocis-reva --log-level debug --log-pretty storage-home-data &', - 'bin/ocis-reva --log-level debug --log-pretty storage-oc &', - 'bin/ocis-reva --log-level debug --log-pretty storage-oc-data &', - 'bin/ocis-reva --log-level debug --log-pretty frontend &', - 'bin/ocis-reva --log-level debug --log-pretty reva-storage-public-link' - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ] - }, - { - 'name': 'clone-test-repos', - 'image': 'owncloudci/php:7.2', - 'pull': 'always', - 'commands': [ - 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', - 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), - 'cd /srv/app/testrunner', - ] + ([ - 'git checkout %s' % (coreCommit) - ] if coreCommit != '' else []), - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ] - }, - { - 'name': 'core-acceptance-tests-%s' % (part_number), + 'name': 'oC10ApiTests-%s' % (part_number), 'image': 'owncloudci/php:7.2', 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS', - 'REVA_LDAP_HOSTNAME':'ldap', - 'TEST_EXTERNAL_USER_BACKENDS':'true', - 'TEST_OCIS':'true', 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', + 'TEST_EXTERNAL_USER_BACKENDS':'true', + 'REVA_LDAP_HOSTNAME':'ldap', + 'TEST_OCIS':'true', + 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS', 'DIVIDE_INTO_NUM_PARTS': number_of_parts, 'RUN_PART': part_number, 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures.txt' @@ -288,27 +135,9 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n ] }, ], - 'services': [ - { - 'name': 'ldap', - 'image': 'osixia/openldap', - 'pull': 'always', - 'environment': { - 'LDAP_DOMAIN': 'owncloud.com', - 'LDAP_ORGANISATION': 'owncloud', - 'LDAP_ADMIN_PASSWORD': 'admin', - 'LDAP_TLS_VERIFY_CLIENT': 'never', - }, - }, - { - 'name': 'redis', - 'image': 'webhippie/redis', - 'pull': 'always', - 'environment': { - 'REDIS_DATABASES': 1 - }, - }, - ], + 'services': + ldap() + + redis(), 'volumes': [ { 'name': 'gopath', @@ -1096,3 +925,116 @@ def website(ctx): ], }, } + +def build(): + return [ + { + 'name': 'build', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make build', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + } + ] + } + ] + +def revaServer(): + return [ + { + 'name': 'reva-server', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'detach': True, + 'environment' : { + 'REVA_LDAP_HOSTNAME': 'ldap', + 'REVA_LDAP_PORT': 636, + 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', + 'REVA_LDAP_BIND_PASSWORD': 'admin', + 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', + 'REVA_LDAP_SCHEMA_UID': 'uid', + 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', + 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', + 'REVA_STORAGE_OC_DATA_URL': 'reva-server:9164', + 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', + 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', + 'REVA_FRONTEND_URL': 'http://reva-server:9140', + 'REVA_DATAGATEWAY_URL': 'http://reva-server:9140/data', + }, + 'commands': [ + 'apk add mailcap', + 'mkdir -p /srv/app/tmp/reva', + 'bin/ocis-reva --log-level debug --log-pretty gateway &', + 'bin/ocis-reva --log-level debug --log-pretty users &', + 'bin/ocis-reva --log-level debug --log-pretty auth-basic &', + 'bin/ocis-reva --log-level debug --log-pretty auth-bearer &', + 'bin/ocis-reva --log-level debug --log-pretty sharing &', + 'bin/ocis-reva --log-level debug --log-pretty storage-home &', + 'bin/ocis-reva --log-level debug --log-pretty storage-home-data &', + 'bin/ocis-reva --log-level debug --log-pretty storage-oc &', + 'bin/ocis-reva --log-level debug --log-pretty storage-oc-data &', + 'bin/ocis-reva --log-level debug --log-pretty frontend &', + 'bin/ocis-reva --log-level debug --log-pretty reva-storage-public-link' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + } + ] + +def cloneCoreRepos(coreBranch, coreCommit): + return [ + { + 'name': 'clone-core-repos', + 'image': 'owncloudci/php:7.2', + 'pull': 'always', + 'commands': [ + 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', + 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), + 'cd /srv/app/testrunner', + ] + ([ + 'git checkout %s' % (coreCommit) + ] if coreCommit != '' else []), + 'volumes': [{ + 'name': 'gopath', + 'path': '/srv/app', + }] + } + ] + +def ldap(): + return [ + { + 'name': 'ldap', + 'image': 'osixia/openldap', + 'pull': 'always', + 'environment': { + 'LDAP_DOMAIN': 'owncloud.com', + 'LDAP_ORGANISATION': 'owncloud', + 'LDAP_ADMIN_PASSWORD': 'admin', + 'LDAP_TLS_VERIFY_CLIENT': 'never', + }, + } + ] + +def redis(): + return [ + { + 'name': 'redis', + 'image': 'webhippie/redis', + 'pull': 'always', + 'environment': { + 'REDIS_DATABASES': 1 + }, + } + ] diff --git a/docs/testing.md b/docs/testing.md index 015db53962..33c220306a 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -109,9 +109,15 @@ Also, ocis behaves partly differently with EOS-Storage and OC-Storage. There are If you want to work on a specific issue 1. adjust the core commit id to the latest commit in core so that CI will run the latest test code and scenarios from core. - For that change this line in the `main` function: + For that change `coreCommit` in the `config` section: - apiTests(ctx, 'master', 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa') + config = { + 'apiTests': { + 'coreBranch': 'master', + 'coreCommit': 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa', + 'numberOfParts': 2 + } + } 2. locally run each of the tests marked with that issue in the expected failures file: From 99e57e2992b0a34524407e5f6c462ad9a974a546 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 3 Aug 2020 16:08:57 +0545 Subject: [PATCH 225/346] Bump core commit to 2020-07-31 --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 20ea154efd..89d285dd60 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa', + 'coreCommit': '9416491281aa5315b630e02e3c7e8ca76689505a', 'numberOfParts': 2 } } From 9421683436df24059bcca1cb750a6d67206250a4 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 4 Aug 2020 14:28:04 +0545 Subject: [PATCH 226/346] Add bug demonstration scenarios --- ...ature => apiAuthOcs-ocsDELETEAuth.feature} | 0 ....feature => apiAuthOcs-ocsGETAuth.feature} | 0 ...feature => apiAuthOcs-ocsPOSTAuth.feature} | 0 ....feature => apiAuthOcs-ocsPUTAuth.feature} | 0 .../apiAuthWebDav-webDavLOCKAuth.feature | 21 +++ .../apiAuthWebDav-webDavMOVEAuth.feature | 20 +++ .../apiAuthWebDav-webDavPROPFINDAuth.feature | 20 +++ ...ilities-capabilitiesWithNormalUser.feature | 48 +++++++ .../apiFavorites-favorites.feature | 25 ++++ .../apiOcisSpecific/apiMain-checksums.feature | 57 ++++++++ .../apiOcisSpecific/apiMain-main.feature | 8 ++ ...-createShareWithInvalidPermissions.feature | 45 +++++++ ...piShareManagementBasic-createShare.feature | 117 ++++++++++++++++ ...piShareManagementBasic-deleteShare.feature | 17 +++ .../apiShareOperations-accessToShare.feature | 23 ++++ ...erations-getWebDAVSharePermissions.feature | 23 ++++ .../apiShareOperations-gettingShares.feature | 37 ++++++ ...ePublicLink1-createPublicLinkShare.feature | 31 +++++ ...harePublicLink2-copyFromPublicLink.feature | 67 ++++++++++ ...ePublicLink2-updatePublicLinkShare.feature | 47 +++++++ ...ublicLink2-uploadToPublicLinkShare.feature | 17 +++ .../apiShareUpdate-updateShare.feature | 124 +++++++++++++++++ .../apiVersions-fileVersions.feature | 125 ++++++++++++++++++ .../apiWebdavMove1-moveFolder.feature | 45 +++++++ ...vMove1-moveFolderToBlacklistedName.feature | 22 +++ .../apiWebdavMove2-moveFile.feature | 43 ++++++ ...davMove2-moveFileToBlacklistedName.feature | 21 +++ .../apiWebdavOperations-downloadFile.feature | 24 ++++ .../apiWebdavOperations-refuseAccess.feature | 22 +++ .../apiWebdavPreviews-previews.feature | 112 ++++++++++++++++ .../apiWebdavProperties1-createFolder.feature | 37 ++++++ ...ebdavProperties1-setFileProperties.feature | 21 +++ ...ebdavProperties2-getFileProperties.feature | 115 ++++++++++++++++ .../apiWebdavUpload1-uploadFile.feature | 20 +++ 34 files changed, 1354 insertions(+) rename tests/acceptance/features/apiOcisSpecific/{ocsDELETEAuth.feature => apiAuthOcs-ocsDELETEAuth.feature} (100%) rename tests/acceptance/features/apiOcisSpecific/{ocsGETAuth.feature => apiAuthOcs-ocsGETAuth.feature} (100%) rename tests/acceptance/features/apiOcisSpecific/{ocsPOSTAuth.feature => apiAuthOcs-ocsPOSTAuth.feature} (100%) rename tests/acceptance/features/apiOcisSpecific/{ocsPUTAuth.feature => apiAuthOcs-ocsPUTAuth.feature} (100%) create mode 100644 tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiMain-main.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature diff --git a/tests/acceptance/features/apiOcisSpecific/ocsDELETEAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsDELETEAuth.feature similarity index 100% rename from tests/acceptance/features/apiOcisSpecific/ocsDELETEAuth.feature rename to tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsDELETEAuth.feature diff --git a/tests/acceptance/features/apiOcisSpecific/ocsGETAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature similarity index 100% rename from tests/acceptance/features/apiOcisSpecific/ocsGETAuth.feature rename to tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature diff --git a/tests/acceptance/features/apiOcisSpecific/ocsPOSTAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature similarity index 100% rename from tests/acceptance/features/apiOcisSpecific/ocsPOSTAuth.feature rename to tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature diff --git a/tests/acceptance/features/apiOcisSpecific/ocsPUTAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature similarity index 100% rename from tests/acceptance/features/apiOcisSpecific/ocsPUTAuth.feature rename to tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature new file mode 100644 index 0000000000..fe5c1c6751 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature @@ -0,0 +1,21 @@ +@api +Feature: LOCK file/folder + + Background: + Given user "Alice" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "some data" to "/textfile0.txt" + And user "Alice" has uploaded file with content "some data" to "/textfile1.txt" + And user "Alice" has created folder "/PARENT" + And user "Alice" has created folder "/FOLDER" + And user "Alice" has uploaded file with content "some data" to "/PARENT/parent.txt" + And user "Brian" has been created with default attributes and without skeleton files + + @issue-ocis-reva-9 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: send LOCK requests to another user's webDav endpoints as normal user + When user "Brian" requests these endpoints with "LOCK" to get property "d:shared" about user "Alice" + | endpoint | + | /remote.php/dav/files/%username%/textfile0.txt | + | /remote.php/dav/files/%username%/PARENT | + | /remote.php/dav/files/%username%/PARENT/parent.txt | + Then the HTTP status code of responses on all endpoints should be "200" diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature new file mode 100644 index 0000000000..c2291fc5ed --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature @@ -0,0 +1,20 @@ +@api +Feature: MOVE file/folder + + Background: + Given user "Alice" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "some data" to "/textfile0.txt" + And user "Alice" has created folder "/PARENT" + And user "Alice" has created folder "/FOLDER" + And user "Alice" has uploaded file with content "some data" to "/PARENT/parent.txt" + And user "Brian" has been created with default attributes and without skeleton files + + @issue-ocis-reva-14 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: send MOVE requests to another user's webDav endpoints as normal user + When user "Brian" requests these endpoints with "MOVE" including body "doesnotmatter" about user "Alice" + | endpoint | + | /remote.php/dav/files/%username%/textfile0.txt | + | /remote.php/dav/files/%username%/PARENT | + | /remote.php/dav/files/%username%/PARENT/parent.txt | + Then the HTTP status code of responses on all endpoints should be "400" diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature new file mode 100644 index 0000000000..478ab74660 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature @@ -0,0 +1,20 @@ +@api +Feature: get file info using PROPFIND + + Background: + Given user "Alice" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "some data" to "/textfile0.txt" + And user "Alice" has created folder "/PARENT" + And user "Alice" has created folder "/FOLDER" + And user "Alice" has uploaded file with content "some data" to "/PARENT/parent.txt" + And user "Brian" has been created with default attributes and without skeleton files + + @issue-ocis-reva-9 @skipOnOcis-EOS-Storage @issue-ocis-reva-303 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: send PROPFIND requests to another user's webDav endpoints as normal user + When user "Brian" requests these endpoints with "PROPFIND" to get property "d:getetag" about user "Alice" + | endpoint | + | /remote.php/dav/files/%username%/textfile0.txt | + | /remote.php/dav/files/%username%/PARENT | + | /remote.php/dav/files/%username%/PARENT/parent.txt | + Then the HTTP status code of responses on all endpoints should be "207" diff --git a/tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature b/tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature new file mode 100644 index 0000000000..cf833d5b24 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature @@ -0,0 +1,48 @@ +@api @files_sharing-app-required +Feature: default capabilities for normal user + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and without skeleton files + + @issue-ocis-reva-175 @issue-ocis-reva-176 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: getting default capabilities with normal user + When user "Alice" retrieves the capabilities using the capabilities API + Then the capabilities should contain + | capability | path_to_element | value | + | core | pollinterval | 60 | + | core | webdav-root | remote.php/webdav | + | core | status@@@edition | %edition% | + | core | status@@@productname | reva | + | core | status@@@version | 10.0.11.5 | + | core | status@@@versionstring | 10.0.11 | + | files_sharing | api_enabled | 1 | + | files_sharing | default_permissions | 22 | + | files_sharing | search_min_length | 3 | + | files_sharing | public@@@enabled | 1 | + | files_sharing | public@@@multiple | 1 | + | files_sharing | public@@@upload | 1 | + | files_sharing | public@@@supports_upload_only | 1 | + | files_sharing | public@@@send_mail | 1 | + | files_sharing | public@@@social_share | 1 | + | files_sharing | public@@@enforced | EMPTY | + | files_sharing | public@@@enforced_for@@@read_only | EMPTY | + | files_sharing | public@@@enforced_for@@@read_write | EMPTY | + | files_sharing | public@@@enforced_for@@@upload_only | EMPTY | + | files_sharing | public@@@enforced_for@@@read_write_delete | EMPTY | + | files_sharing | public@@@expire_date@@@enabled | 1 | + | files_sharing | public@@@defaultPublicLinkShareName | EMPTY | + | files_sharing | resharing | 1 | + | files_sharing | federation@@@outgoing | 1 | + | files_sharing | federation@@@incoming | 1 | + | files_sharing | group_sharing | 1 | + | files_sharing | share_with_group_members_only | 1 | + | files_sharing | share_with_membership_groups_only | 1 | + | files_sharing | auto_accept_share | 1 | + | files_sharing | user_enumeration@@@enabled | 1 | + | files_sharing | user_enumeration@@@group_members_only | 1 | + | files_sharing | user@@@send_mail | 1 | + | files | bigfilechunking | 0 | + | files | privateLinks | 0 | + | files | privateLinksDetailsParam | EMPTY | diff --git a/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature b/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature new file mode 100644 index 0000000000..cc96dcf5b4 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature @@ -0,0 +1,25 @@ +@api +Feature: favorite + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "some data" to "/textfile0.txt" + And user "Alice" has uploaded file with content "some data" to "/textfile1.txt" + And user "Alice" has uploaded file with content "some data" to "/textfile2.txt" + And user "Alice" has uploaded file with content "some data" to "/textfile3.txt" + And user "Alice" has uploaded file with content "some data" to "/textfile4.txt" + And user "Alice" has created folder "/FOLDER" + And user "Alice" has created folder "/PARENT" + And user "Alice" has uploaded file with content "some data" to "/PARENT/parent.txt" + + @skipOnOcis-OC-Storage @issue-ocis-reva-276 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Favorite a folder + Given using DAV path + When user "Alice" favorites element "/FOLDER" using the WebDAV API + Then the HTTP status code should be "500" + Examples: + | dav_version | + | old | + | new | diff --git a/tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature b/tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature new file mode 100644 index 0000000000..d536985657 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature @@ -0,0 +1,57 @@ +@api +Feature: checksums + + Background: + Given user "Alice" has been created with default attributes and without skeleton files + + @issue-ocis-reva-98 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Uploading a file with checksum should return the checksum in the download header + Given using DAV path + And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/myChecksumFile.txt" with checksum "MD5:d70b40f177b14b470d1756a3c12b963a" + When user "Alice" downloads file "/myChecksumFile.txt" using the WebDAV API + Then the following headers should not be set + | header | + | OC-Checksum | + Examples: + | dav_version | + | old | + | new | + + @issue-ocis-reva-98 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: Copying file with checksum should return the checksum in the download header using new DAV path + Given using new DAV path + And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/myChecksumFile.txt" with checksum "MD5:d70b40f177b14b470d1756a3c12b963a" + When user "Alice" copies file "/myChecksumFile.txt" to "/myChecksumFileCopy.txt" using the WebDAV API + And user "Alice" downloads file "/myChecksumFileCopy.txt" using the WebDAV API + Then the following headers should not be set + | header | + | OC-Checksum | + + @issue-ocis-reva-99 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Upload a file where checksum does not match + Given using DAV path + When user "Alice" uploads file with checksum "SHA1:f005ba11" and content "Some Text" to "/chksumtst.txt" using the WebDAV API + Then the HTTP status code should be "201" + And user "Alice" should see the following elements + | /chksumtst.txt | + Examples: + | dav_version | + | old | + | new | + + @issue-ocis-reva-99 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Uploaded file should have the same checksum when downloaded + Given using DAV path + And user "Alice" has uploaded file with checksum "SHA1:ce5582148c6f0c1282335b87df5ed4be4b781399" and content "Some Text" to "/chksumtst.txt" + When user "Alice" downloads file "/chksumtst.txt" using the WebDAV API + Then the following headers should not be set + | header | + | OC-Checksum | + Examples: + | dav_version | + | old | + | new | diff --git a/tests/acceptance/features/apiOcisSpecific/apiMain-main.feature b/tests/acceptance/features/apiOcisSpecific/apiMain-main.feature new file mode 100644 index 0000000000..9c4ad50f95 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiMain-main.feature @@ -0,0 +1,8 @@ +@api +Feature: Other tests related to api + + @issue-ocis-reva-100 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: robots.txt file should be accessible + When a user requests "/robots.txt" with "GET" and no authentication + Then the HTTP status code should be "401" or "404" diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature b/tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature new file mode 100644 index 0000000000..8d08de8b99 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature @@ -0,0 +1,45 @@ +@api @files_sharing-app-required @issue-ocis-reva-243 +Feature: cannot share resources with invalid permissions + + Background: + Given user "Alice" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "some data" to "/textfile0.txt" + And user "Alice" has created folder "/PARENT" + + @issue-ocis-reva-45 @issue-ocis-reva-243 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Cannot create a share of a file with a user with only create permission + Given using OCS API version "" + And user "Brian" has been created with default attributes and without skeleton files + When user "Alice" creates a share using the sharing API with settings + | path | textfile0.txt | + | shareWith | Brian | + | shareType | user | + | permissions | create | + Then the OCS status code should be "" or "" + And the HTTP status code should be "" or "" + And as "Brian" entry "textfile0.txt" should not exist + Examples: + | ocs_api_version | ocs_status_code | eos_status_code | http_status_code_ocs | http_status_code_eos | + | 1 | 100 | 996 | 200 | 500 | + | 2 | 200 | 996 | 200 | 500 | + + @issue-ocis-reva-45 @issue-ocis-reva-243 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Cannot create a share of a file with a user with only (create,delete) permission + Given using OCS API version "" + And user "Brian" has been created with default attributes and without skeleton files + When user "Alice" creates a share using the sharing API with settings + | path | textfile0.txt | + | shareWith | Brian | + | shareType | user | + | permissions | | + Then the OCS status code should be "" or "" + And the HTTP status code should be "" or "" + And as "Brian" entry "textfile0.txt" should not exist + Examples: + | ocs_api_version | eos_status_code | ocs_status_code | http_status_code_ocs | http_status_code_eos | permissions | + | 1 | 100 | 996 | 200 | 500 | delete | + | 2 | 200 | 996 | 200 | 500 | delete | + | 1 | 100 | 996 | 200 | 500 | create,delete | + | 2 | 200 | 996 | 200 | 500 | create,delete | diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature new file mode 100644 index 0000000000..a4b6a73e74 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature @@ -0,0 +1,117 @@ +@api @files_sharing-app-required +Feature: sharing + + Background: + Given user "Alice" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "ownCloud test text file 0" to "/textfile0.txt" + + @skipOnOcis-OC-Storage @issue-ocis-reva-301 @issue-ocis-reva-302 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Creating a share of a file with a user and asking for various permission combinations + Given using OCS API version "" + And user "Brian" has been created with default attributes and without skeleton files + When user "Alice" shares file "textfile0.txt" with user "Brian" with permissions using the sharing API + Then the OCS status code should be "" + And the HTTP status code should be "200" + And the fields of the last response to user "Alice" sharing with user "Brian" should include + | share_with | %username% | + | file_target | /textfile0.txt | + | path | /textfile0.txt | + | permissions | | + | uid_owner | %username% | + | displayname_owner | | + | item_type | file | + | mimetype | application/octet-stream | + | storage_id | ANY_VALUE | + | share_type | user | + And the fields of the last response should not include + | share_with_displayname | %displayname% | + Examples: + | ocs_api_version | requested_permissions | granted_permissions | ocs_status_code | + # Ask for full permissions. You get share plus read plus update. create and delete do not apply to shares of a file + | 1 | 31 | 19 | 100 | + | 2 | 31 | 19 | 200 | + # Ask for read, share (17), create and delete. You get share plus read + | 1 | 29 | 17 | 100 | + | 2 | 29 | 17 | 200 | + # Ask for read, update, create, delete. You get read plus update. + | 1 | 15 | 3 | 100 | + | 2 | 15 | 3 | 200 | + # Ask for just update. You get exactly update (you do not get read or anything else) + | 1 | 2 | 2 | 100 | + | 2 | 2 | 2 | 200 | + + @issue-ocis-reva-243 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: more tests to demonstrate different ocis-reva issue 243 behaviours + Given using OCS API version "" + And user "Brian" has been created with default attributes and without skeleton files + And user "Alice" has created folder "/home" + And user "Alice" has uploaded file with content "Random data" to "/home/randomfile.txt" + When user "Alice" shares file "/home/randomfile.txt" with user "Brian" using the sharing API + And the HTTP status code should be "" or "" + And as "Brian" file "randomfile.txt" should not exist + Examples: + | ocs_api_version | http_status_code_ocs | http_status_code_eos | + | 1 | 200 | 500 | + | 2 | 200 | 500 | + + @skipOnOcis-OC-Storage @issue-ocis-reva-301 @issue-ocis-reva-302 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Creating a share of a folder with a user, the default permissions are all permissions(31) + Given using OCS API version "" + And user "Brian" has been created with default attributes and without skeleton files + And user "Alice" has created folder "/FOLDER" + When user "Alice" shares folder "/FOLDER" with user "Brian" using the sharing API + Then the OCS status code should be "" + And the HTTP status code should be "200" + And the fields of the last response to user "Alice" sharing with user "Brian" should include + | share_with | %username% | + | file_target | /FOLDER | + | path | /FOLDER | + | permissions | all | + | uid_owner | %username% | + | displayname_owner | | + | item_type | folder | + | mimetype | httpd/unix-directory | + | storage_id | ANY_VALUE | + | share_type | user | + And the fields of the last response should not include + | share_with_displayname | %displayname% | + Examples: + | ocs_api_version | ocs_status_code | + | 1 | 100 | + | 2 | 200 | + + @issue-ocis-reva-372 @issue-ocis-reva-243 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: sharing subfolder of already shared folder, GET result is correct + Given using OCS API version "" + And these users have been created with default attributes and without skeleton files: + | username | + | Brian | + | Carol | + | David | + | Emily | + And user "Alice" has created folder "/folder1" + And user "Alice" has shared folder "/folder1" with user "Brian" + And user "Alice" has shared folder "/folder1" with user "Carol" + And user "Alice" has created folder "/folder1/folder2" + And user "Alice" has shared folder "/folder1/folder2" with user "David" + And user "Alice" has shared folder "/folder1/folder2" with user "Emily" + When user "Alice" sends HTTP method "GET" to OCS API endpoint "/apps/files_sharing/api/v1/shares" + Then the OCS status code should be "" + And the HTTP status code should be "" + # On OCIS and reva the response is currently not there +# And the response should contain 4 entries +# And folder "/folder1" should be included as path in the response +# And folder "/folder1/folder2" should be included as path in the response + And user "Alice" sends HTTP method "GET" to OCS API endpoint "/apps/files_sharing/api/v1/shares?path=/folder1/folder2" + And the response should contain 2 entries + And folder "/folder1" should not be included as path in the response + And folder "/folder2" should be included as path in the response +# And folder "/folder1/folder2" should be included as path in the response + Examples: + | ocs_api_version | http_status_code | ocs_status_code | + | 1 | 200 | 996 | + | 2 | 500 | 996 | diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature new file mode 100644 index 0000000000..3de47db441 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature @@ -0,0 +1,17 @@ +@api @files_sharing-app-required @issue-ocis-reva-243 +Feature: sharing + + @issue-ocis-reva-356 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: delete a share + Given user "Alice" has been created with default attributes and skeleton files + And user "Brian" has been created with default attributes and without skeleton files + And using OCS API version "" + And user "Alice" has shared file "textfile0.txt" with user "Brian" + When user "Alice" deletes the last share using the sharing API + Then the OCS status code should be "" + And the HTTP status code should be "200" + Examples: + | ocs_api_version | ocs_status_code | + | 1 | 100 | + | 2 | 200 | diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature new file mode 100644 index 0000000000..afcc2da740 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature @@ -0,0 +1,23 @@ +@api @files_sharing-app-required +Feature: sharing + + Background: + Given these users have been created with default attributes and skeleton files: + | username | + | Alice | + | Brian | + + @issue-ocis-reva-260 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Sharee can't see the share that is filtered out + Given using OCS API version "" + And user "Alice" has shared file "textfile0.txt" with user "Brian" + And user "Alice" has shared file "textfile1.txt" with user "Brian" + When user "Brian" gets all the shares shared with him that are received as file "textfile0 (2).txt" using the provisioning API + Then the OCS status code should be "" + And the HTTP status code should be "200" + And the last share_id should be included in the response + Examples: + | ocs_api_version | ocs_status_code | + | 1 | 100 | + | 2 | 200 | diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature new file mode 100644 index 0000000000..f7881377fa --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature @@ -0,0 +1,23 @@ +@api @files_sharing-app-required @issue-ocis-reva-47 +Feature: sharing + + Background: + Given using OCS API version "1" + And these users have been created with default attributes and without skeleton files: + | username | + | Alice | + | Brian | + + @issue-ocis-reva-47 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Empty webdav share-permissions for owned file + Given using DAV path + And user "Alice" has uploaded file with content "foo" to "/tmp.txt" + When user "Alice" gets the following properties of file "/tmp.txt" using the WebDAV API + | propertyName | + | ocs:share-permissions | + Then the single response should contain a property "ocs:share-permissions" with value "5" + Examples: + | dav-path | + | old | + | new | diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature new file mode 100644 index 0000000000..2007a366a5 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature @@ -0,0 +1,37 @@ +@api @files_sharing-app-required +Feature: sharing + + Background: + Given these users have been created with default attributes and skeleton files: + | username | + | Alice | + | Brian | + + @issue-ocis-reva-374 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Get a share with a user that didn't receive the share + Given using OCS API version "" + And user "Carol" has been created with default attributes and without skeleton files + And user "Alice" has shared file "textfile0.txt" with user "Brian" + When user "Carol" gets the info of the last share using the sharing API + Then the OCS status code should be "998" +# Then the OCS status code should be "404" + And the HTTP status code should be "" + Examples: + | ocs_api_version | http_status_code | + | 1 | 200 | + | 2 | 404 | + + @issue-ocis-reva-372 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: getting all the shares inside the folder + Given using OCS API version "" + And user "Alice" has shared file "PARENT/parent.txt" with user "Brian" + When user "Alice" gets all the shares inside the folder "PARENT/parent.txt" using the sharing API + Then the OCS status code should be "" + And the HTTP status code should be "200" + And file "parent.txt" should be included in the response + Examples: + | ocs_api_version | ocs_status_code | + | 1 | 100 | + | 2 | 200 | diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature new file mode 100644 index 0000000000..235effb6ae --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature @@ -0,0 +1,31 @@ +@api @files_sharing-app-required @public_link_share-feature-required @skipOnOcis-EOS-Storage @issue-ocis-reva-315 @issue-ocis-reva-316 + +Feature: create a public link share + + Background: + Given user "Alice" has been created with default attributes and skeleton files + + @issue-37605 + # after fixing all issues make the oC10 scenario like this one, and delete this scenario + Scenario: Get the mtime of a file inside a folder shared by public link using new webDAV version (run on OCIS) + Given user "Alice" has created folder "testFolder" + And user "Alice" has created a public link share with settings + | path | /testFolder | + | permissions | read,update,create,delete | + When the public uploads file "file.txt" to the last shared folder with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the new public WebDAV API + Then as "Alice" file "testFolder/file.txt" should exist + And as "Alice" the mtime of the file "testFolder/file.txt" should be "Thu, 08 Aug 2019 04:18:13 GMT" + And the mtime of file "file.txt" in the last shared public link using the WebDAV API should be "Thu, 08 Aug 2019 04:18:13 GMT" + + @issue-37605 + # after fixing all issues make the oC10 scenario like this one, and delete this scenario + Scenario: overwriting a file changes its mtime (new public webDAV API) (run on OCIS) + Given user "Alice" has created folder "testFolder" + When user "Alice" uploads file with content "uploaded content for file name ending with a dot" to "testFolder/file.txt" using the WebDAV API + And user "Alice" has created a public link share with settings + | path | /testFolder | + | permissions | read,update,create,delete | + And the public uploads file "file.txt" to the last shared folder with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the new public WebDAV API + Then as "Alice" file "/testFolder/file.txt" should exist + And as "Alice" the mtime of the file "testFolder/file.txt" should be "Thu, 08 Aug 2019 04:18:13 GMT" + And the mtime of file "file.txt" in the last shared public link using the WebDAV API should be "Thu, 08 Aug 2019 04:18:13 GMT" diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature new file mode 100644 index 0000000000..598f75155e --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature @@ -0,0 +1,67 @@ +@api @files_sharing-app-required @public_link_share-feature-required @issue-ocis-reva-310 +Feature: copying from public link share + + Background: + Given user "Alice" has been created with default attributes and without skeleton files + And user "Alice" has created folder "/PARENT" + And the administrator has enabled DAV tech_preview + + @issue-ocis-reva-373 @issue-core-37683 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: Copy folder within a public link folder to the same folder name as an already existing file + Given user "Alice" has created folder "/PARENT/testFolder" + And user "Alice" has uploaded file with content "some data" to "/PARENT/testFolder/testfile.txt" + And user "Alice" has uploaded file with content "some data 1" to "/PARENT/copy1.txt" + And user "Alice" has created a public link share with settings + | path | /PARENT | + | permissions | read,update,create,delete | + When the public copies folder "/testFolder" to "/copy1.txt" using the new public WebDAV API + Then the HTTP status code should be "204" + And as "Alice" folder "/PARENT/testFolder" should exist + And as "Alice" file "/PARENT/copy1.txt" should exist + And the content of file "/PARENT/testFolder/testfile.txt" for user "Alice" should be "some data" + And the content of file "/PARENT/copy1.txt" for user "Alice" should be "some data 1" + + @issue-ocis-reva-373 @issue-core-37683 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: Copy file within a public link folder to a file with name same as an existing folder + Given user "Alice" has uploaded file with content "some data" to "/PARENT/testfile.txt" + And user "Alice" has created folder "/PARENT/new-folder" + And user "Alice" has uploaded file with content "some data 1" to "/PARENT/new-folder/testfile1.txt" + And user "Alice" has created a public link share with settings + | path | /PARENT | + | permissions | read,update,create,delete | + When the public copies file "/testfile.txt" to "/new-folder" using the new public WebDAV API + Then the HTTP status code should be "204" + And as "Alice" file "/PARENT/testfile.txt" should exist + And as "Alice" file "/PARENT/new-folder" should exist + And the content of file "/PARENT/testfile.txt" for user "Alice" should be "some data" + + @issue-ocis-reva-368 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Copy file within a public link folder to a file with unusual destination names + Given user "Alice" has uploaded file with content "some data" to "/PARENT/testfile.txt" + And user "Alice" has created a public link share with settings + | path | /PARENT | + | permissions | read,update,create,delete | + When the public copies file "/testfile.txt" to "/" using the new public WebDAV API + Then the HTTP status code should be "204" + And as "Alice" file "/PARENT/" should exist + And the content of file "/PARENT/" for user "Alice" should be "some data" + Examples: + | destination-file-name | + | testfile.txt | + | | + + @issue-ocis-reva-368 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: Copy folder within a public link folder to a folder with unusual destination names + Given user "Alice" has created folder "/PARENT/testFolder" + And user "Alice" has uploaded file with content "some data" to "/PARENT/testFolder/testfile.txt" + And user "Alice" has created a public link share with settings + | path | /PARENT | + | permissions | read,update,create,delete | + When the public copies folder "/testFolder" to "/testFolder" using the new public WebDAV API + Then the HTTP status code should be "204" + And as "Alice" folder "/PARENT/testFolder" should exist + And the content of file "/PARENT/testFolder/testfile.txt" for user "Alice" should be "some data" diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature new file mode 100644 index 0000000000..e14ed5e6af --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature @@ -0,0 +1,47 @@ +@api @files_sharing-app-required @public_link_share-feature-required @issue-ocis-reva-252 +Feature: update a public link share + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and skeleton files + + @issue-ocis-reva-243 @issue-ocis-reva-349 @issue-37653 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: API responds with a full set of parameters when owner changes the expireDate of a public share + Given using OCS API version "" + When user "Alice" creates a public link share using the sharing API with settings + | path | FOLDER | + And user "Alice" updates the last share using the sharing API with + | expireDate | +3 days | + Then the OCS status code should be "" + And the OCS status message should be "OK" + And the HTTP status code should be "200" + And the fields of the last response to user "Alice" should include + | id | A_STRING | + | share_type | public_link | + | uid_owner | %username% | + | displayname_owner | %displayname% | + | permissions | read | + | stime | A_NUMBER | + | parent | | + | expiration | A_STRING | + | token | A_STRING | + | uid_file_owner | %username% | + | displayname_file_owner | %displayname% | + | additional_info_owner | | + | additional_info_file_owner | | + | state | 0 | + | item_type | folder | + | item_source | A_STRING | + | path | /FOLDER | + | mimetype | httpd/unix-directory | + | storage_id | A_STRING | + | storage | A_NUMBER | + | file_source | A_STRING | + | file_target | /FOLDER | + | mail_send | 0 | + | name | | + Examples: + | ocs_api_version | ocs_status_code | + | 1 | 100 | + | 2 | 200 | diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature new file mode 100644 index 0000000000..320ce525b6 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature @@ -0,0 +1,17 @@ +@api @files_sharing-app-required @public_link_share-feature-required @skipOnOcis-EOS-Storage @issue-ocis-reva-315 @issue-ocis-reva-316 + +Feature: upload to a public link share + + Background: + Given user "Alice" has been created with default attributes and skeleton files + + @issue-ocis-reva-290 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: Uploading file to a public upload-only share that was deleted does not work + Given the administrator has enabled DAV tech_preview + And user "Alice" has created a public link share with settings + | path | FOLDER | + | permissions | create | + When user "Alice" deletes file "/FOLDER" using the WebDAV API + And the public uploads file "does-not-matter.txt" with content "does not matter" using the new public WebDAV API + Then the HTTP status code should be "500" diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature new file mode 100644 index 0000000000..bd818e32a8 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature @@ -0,0 +1,124 @@ +@api @files_sharing-app-required +Feature: sharing + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and skeleton files + + @skipOnOcis-EOS-Storage @toFixOnOCIS @issue-ocis-reva-243 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: Share ownership change after moving a shared file to another share + Given these users have been created with default attributes and without skeleton files: + | username | + | Brian | + | Carol | + And user "Alice" has created folder "/Alice-folder" + And user "Alice" has created folder "/Alice-folder/folder2" + And user "Carol" has created folder "/Carol-folder" + And user "Alice" has shared folder "/Alice-folder" with user "Brian" with permissions "all" + And user "Carol" has shared folder "/Carol-folder" with user "Brian" with permissions "all" + When user "Brian" moves folder "/Alice-folder/folder2" to "/Carol-folder/folder2" using the WebDAV API + And user "Carol" gets the info of the last share using the sharing API + # Note: in the following fields, file_parent has been removed because OCIS does not report that + Then the fields of the last response to user "Carol" sharing with user "Brian" should include + | id | A_STRING | + | item_type | folder | + | item_source | A_STRING | + | share_type | user | + | file_source | A_STRING | + | file_target | /Carol-folder | + | permissions | all | + | stime | A_NUMBER | + | storage | A_STRING | + | mail_send | 0 | + | uid_owner | %username% | + | displayname_owner | %displayname% | + | mimetype | httpd/unix-directory | + # Really folder2 should be gone from Alice-folder and be found in Carol-folder + # like in these 2 suggested steps: + # And as "Alice" folder "/Alice-folder/folder2" should not exist + # And as "Carol" folder "/Carol-folder/folder2" should exist + # + # But this happens on OCIS: + And as "Alice" folder "/Alice-folder/folder2" should exist + And as "Carol" folder "/Carol-folder/folder2" should not exist + + @skipOnOcis-OC-Storage @toFixOnOCIS @issue-ocis-reva-243 + # same as oC10 core Scenario but without displayname_owner because EOS does not report it + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: Share ownership change after moving a shared file to another share + Given these users have been created with default attributes and without skeleton files: + | username | + | Brian | + | Carol | + And user "Alice" has created folder "/Alice-folder" + And user "Alice" has created folder "/Alice-folder/folder2" + And user "Carol" has created folder "/Carol-folder" + And user "Alice" has shared folder "/Alice-folder" with user "Brian" with permissions "all" + And user "Carol" has shared folder "/Carol-folder" with user "Brian" with permissions "all" + When user "Brian" moves folder "/Alice-folder/folder2" to "/Carol-folder/folder2" using the WebDAV API + And user "Carol" gets the info of the last share using the sharing API + Then the fields of the last response to user "Carol" sharing with user "Brian" should include + | id | A_STRING | + | item_type | folder | + | item_source | A_STRING | + | share_type | user | + | file_source | A_STRING | + | file_target | /Carol-folder | + | permissions | all | + | stime | A_NUMBER | + | storage | A_STRING | + | mail_send | 0 | + | uid_owner | %username% | + | mimetype | httpd/unix-directory | + And as "Alice" folder "/Alice-folder/folder2" should exist + And as "Carol" folder "/Carol-folder/folder2" should not exist + + @toFixOnOCIS @toFixOnOcV10 @issue-ocis-reva-243 @issue-ocis-reva-349 @issue-ocis-reva-350 @issue-ocis-reva-352 @issue-37653 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: API responds with a full set of parameters when owner changes the permission of a share + Given using OCS API version "" + And user "Brian" has been created with default attributes and without skeleton files + And user "Alice" has created folder "/Alice-folder" + And user "Alice" has shared folder "/Alice-folder" with user "Brian" with permissions "read" + When user "Alice" updates the last share using the sharing API with + | permissions | all | + Then the OCS status code should be "" + And the OCS status message should be "OK" + And the HTTP status code should be "200" + Then the fields of the last response to user "Alice" sharing with user "Brian" should include + | id | A_STRING | + | share_type | user | + | uid_owner | %username% | + | displayname_owner | %displayname% | + | permissions | all | + | stime | A_NUMBER | + | parent | | + | expiration | | + | token | | + | uid_file_owner | %username% | + | displayname_file_owner | %displayname% | + | additional_info_owner | | + | additional_info_file_owner | | + | state | 0 | + | item_type | folder | + | item_source | A_STRING | + | path | /Alice-folder | + | mimetype | httpd/unix-directory | + | storage_id | A_STRING | + | storage | 0 | + | file_source | A_STRING | + | file_target | /Alice-folder | + | share_with | %username% | + | share_with_displayname | %displayname% | + | share_with_additional_info | | + | mail_send | 0 | + | name | | + And the fields of the last response should not include + | attributes | | +# | token | | +# | name | | + Examples: + | ocs_api_version | ocs_status_code | + | 1 | 100 | + | 2 | 200 | diff --git a/tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature b/tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature new file mode 100644 index 0000000000..bea757a7e8 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature @@ -0,0 +1,125 @@ +@api @files_versions-app-required @skipOnOcis-EOS-Storage @issue-ocis-reva-275 + +Feature: dav-versions + + Background: + Given using OCS API version "2" + And using new DAV path + And user "Alice" has been created with default attributes and without skeleton files + + @issue-ocis-reva-17 @issue-ocis-reva-56 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: Upload file and no version is available using various chunking methods + When user "Alice" uploads file "filesForUpload/davtest.txt" to filenames based on "/davtest.txt" with all mechanisms using the WebDAV API + Then the version folder of file "/davtest.txt-olddav-regular" for user "Alice" should contain "0" elements + Then the version folder of file "/davtest.txt-newdav-regular" for user "Alice" should contain "0" elements + And as "Alice" file "/davtest.txt-olddav-oldchunking" should not exist + And as "Alice" file "/davtest.txt-newdav-newchunking" should not exist + + @issue-ocis-reva-17 @issue-ocis-reva-56 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: Upload a file twice and versions are available using various chunking methods + When user "Alice" uploads file "filesForUpload/davtest.txt" to filenames based on "/davtest.txt" with all mechanisms using the WebDAV API + And user "Alice" uploads file "filesForUpload/davtest.txt" to filenames based on "/davtest.txt" with all mechanisms using the WebDAV API + Then the version folder of file "/davtest.txt-olddav-regular" for user "Alice" should contain "1" element + And the version folder of file "/davtest.txt-newdav-regular" for user "Alice" should contain "1" element + And as "Alice" file "/davtest.txt-olddav-oldchunking" should not exist + And as "Alice" file "/davtest.txt-newdav-newchunking" should not exist + + @files_sharing-app-required + @issue-ocis-reva-243 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: sharer of a file can see the old version information when the sharee changes the content of the file + Given user "Brian" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "First content" to "sharefile.txt" + And user "Alice" has shared file "sharefile.txt" with user "Brian" + When user "Brian" has uploaded file with content "Second content" to "/sharefile.txt" + Then the HTTP status code should be "201" + And the version folder of file "/sharefile.txt" for user "Alice" should contain "0" element +# And the version folder of file "/sharefile.txt" for user "Alice" should contain "1" element + + @files_sharing-app-required + @issue-ocis-reva-243 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: sharer of a file can restore the original content of a shared file after the file has been modified by the sharee + Given user "Brian" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "First content" to "sharefile.txt" + And user "Alice" has shared file "sharefile.txt" with user "Brian" + And user "Brian" has uploaded file with content "Second content" to "/sharefile.txt" + When user "Alice" restores version index "0" of file "/sharefile.txt" using the WebDAV API +# When user "Alice" restores version index "1" of file "/sharefile.txt" using the WebDAV API + Then the HTTP status code should be "201" + And the content of file "/sharefile.txt" for user "Alice" should be "First content" + And the content of file "/sharefile.txt" for user "Brian" should be "Second content" +# And the content of file "/sharefile.txt" for user "Brian" should be "First content" + + @files_sharing-app-required + @issue-ocis-reva-243 @issue-ocis-reva-386 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Moving a file (with versions) into a shared folder as the sharee and as the sharer + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files + And user "Brian" has created folder "/testshare" + And user "Brian" has created a share with settings + | path | testshare | + | shareType | user | + | permissions | change | + | shareWith | Alice | + And user "Brian" has uploaded file with content "test data 1" to "/testfile.txt" + And user "Brian" has uploaded file with content "test data 2" to "/testfile.txt" + And user "Brian" has uploaded file with content "test data 3" to "/testfile.txt" + And user "Brian" moves file "/testfile.txt" to "/testshare/testfile.txt" using the WebDAV API + Then the HTTP status code should be "201" + And the content of file "/testshare/testfile.txt" for user "Alice" should be "" +# And the content of file "/testshare/testfile.txt" for user "Alice" should be "test data 3" + And the content of file "/testshare/testfile.txt" for user "Brian" should be "test data 3" + And as "Brian" file "/testfile.txt" should not exist + And as "Alice" file "/testshare/testfile.txt" should not exist + And the content of file "/testshare/testfile.txt" for user "Brian" should be "test data 3" +# And the version folder of file "/testshare/testfile.txt" for user "Alice" should contain "2" elements +# And the version folder of file "/testshare/testfile.txt" for user "Brian" should contain "2" elements + Examples: + | dav_version | + | old | + | new | + + @files_sharing-app-required + @issue-ocis-reva-243 @issue-ocis-reva-386 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Moving a file (with versions) out of a shared folder as the sharee and as the sharer + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files + And user "Brian" has created folder "/testshare" + And user "Brian" has uploaded file with content "test data 1" to "/testshare/testfile.txt" + And user "Brian" has uploaded file with content "test data 2" to "/testshare/testfile.txt" + And user "Brian" has uploaded file with content "test data 3" to "/testshare/testfile.txt" + And user "Brian" has created a share with settings + | path | testshare | + | shareType | user | + | permissions | change | + | shareWith | Alice | + When user "Brian" moves file "/testshare/testfile.txt" to "/testfile.txt" using the WebDAV API + Then the HTTP status code should be "201" + And the content of file "/testfile.txt" for user "Brian" should be "test data 3" + And as "Alice" file "/testshare/testfile.txt" should not exist + And as "Brian" file "/testshare/testfile.txt" should not exist +# And the version folder of file "/testfile.txt" for user "Brian" should contain "2" elements + Examples: + | dav_version | + | old | + | new | + + @skipOnStorage:ceph @files_primary_s3-issue-161 @files_sharing-app-required + @issue-ocis-reva-376 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: Receiver tries get file versions of shared file from the sharer + Given user "Brian" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt" + And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" + And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" + And user "Alice" has uploaded file with content "version 3" to "textfile0.txt" + And user "Alice" has shared file "textfile0.txt" with user "Brian" + When user "Brian" tries to get versions of file "textfile0.txt" from "Alice" + Then the HTTP status code should be "207" + And the number of versions should be "4" +# And the number of versions should be "3" diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature new file mode 100644 index 0000000000..6b5bc6a795 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature @@ -0,0 +1,45 @@ +@api @issue-ocis-reva-14 +Feature: move (rename) folder + As a user + I want to be able to move and rename folders + So that I can quickly manage my file system + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and without skeleton files + + @issue-ocis-reva-211 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Renaming a folder to a backslash is allowed + Given using DAV path + And user "Alice" has created folder "/testshare" + When user "Alice" moves folder "/testshare" to "\" using the WebDAV API + Then the HTTP status code should be "201" or "500" + Examples: + | dav_version | + | old | + | new | + + @issue-ocis-reva-211 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Renaming a folder beginning with a backslash is allowed + Given using DAV path + And user "Alice" has created folder "/testshare" + When user "Alice" moves folder "/testshare" to "\testshare" using the WebDAV API + Then the HTTP status code should be "201" or "500" + Examples: + | dav_version | + | old | + | new | + + @issue-ocis-reva-211 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Renaming a folder including a backslash encoded is allowed + Given using DAV path + And user "Alice" has created folder "/testshare" + When user "Alice" moves folder "/testshare" to "/hola\hola" using the WebDAV API + Then the HTTP status code should be "201" or "500" + Examples: + | dav_version | + | old | + | new | diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature new file mode 100644 index 0000000000..7a7701a7c0 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature @@ -0,0 +1,22 @@ +@api @issue-ocis-reva-14 +Feature: users cannot move (rename) a folder to a blacklisted name + As an administrator + I want to be able to prevent users from moving (renaming) folders to specified names + So that I can prevent unwanted folder names existing in the cloud storage + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and without skeleton files + + @issue-ocis-reva-211 @skipOnOcis-EOS-Storage @issue-ocis-reva-269 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Renaming a folder to a name that is banned by default is allowed + Given using DAV path + And user "Alice" has created folder "/testshare" + When user "Alice" moves folder "/testshare" to "/.htaccess" using the WebDAV API + Then the HTTP status code should be "201" + And as "Alice" folder "/.htaccess" should exist + Examples: + | dav_version | + | old | + | new | diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature new file mode 100644 index 0000000000..89524b6a3c --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature @@ -0,0 +1,43 @@ +@api @issue-ocis-reva-14 +Feature: move (rename) file + As a user + I want to be able to move and rename files + So that I can manage my file system + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and skeleton files + + @issue-ocis-reva-211 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: rename a file into an invalid filename + Given using DAV path + When user "Alice" moves file "/welcome.txt" to "/a\\a" using the WebDAV API + Then the HTTP status code should be "201" + And as "Alice" file "/a\\a" should exist + Examples: + | dav_version | + | old | + | new | + + @issue-ocis-reva-211 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Renaming a file to a path with extension .part is possible + Given using DAV path + When user "Alice" moves file "/welcome.txt" to "/welcome.part" using the WebDAV API + Then the HTTP status code should be "201" + And as "Alice" file "/welcome.part" should exist + Examples: + | dav_version | + | old | + | new | + + @skipOnOcis-OC-Storage @issue-ocis-reva-211 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: renaming to a file with special characters + When user "Alice" moves file "/textfile0.txt" to "/" using the WebDAV API + Then the HTTP status code should be "201" + And the content of file "/" for user "Alice" should be "" + Examples: + | renamed_file | + | #oc ab?cd=ef# | diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature new file mode 100644 index 0000000000..75221c1b0a --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature @@ -0,0 +1,21 @@ +@api @issue-ocis-reva-14 +Feature: users cannot move (rename) a file to a blacklisted name + As an administrator + I want to be able to prevent users from moving (renaming) files to specified file names + So that I can prevent unwanted file names existing in the cloud storage + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and skeleton files + + @issue-ocis-reva-211 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: rename a file to a filename that is banned by default + Given using DAV path + When user "Alice" moves file "/welcome.txt" to "/.htaccess" using the WebDAV API + Then the HTTP status code should be "201" + And as "Alice" file "/.htaccess" should exist + Examples: + | dav_version | + | old | + | new | diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature new file mode 100644 index 0000000000..7dc49b2f84 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature @@ -0,0 +1,24 @@ +@api +Feature: download file + As a user + I want to be able to download files + So that I can work wih local copies of files on my client system + + Background: + Given user "Alice" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "ownCloud test text file 0" to "/textfile0.txt" + And user "Alice" has uploaded file with content "Welcome this is just an example file for developers." to "/welcome.txt" + + @skipOnOcis-OC-Storage @issue-ocis-reva-98 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Get the content-length response header of a pdf file + Given using DAV path + And user "Alice" has uploaded file "filesForUpload/simple.pdf" to "/simple.pdf" + When user "Alice" downloads file "/simple.pdf" using the WebDAV API + And the following headers should not be set + | header | + | OC-JobStatus-Location | + Examples: + | dav_version | + | old | + | new | diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature new file mode 100644 index 0000000000..5a1df03453 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature @@ -0,0 +1,22 @@ +@api +Feature: refuse access + As an administrator + I want to refuse access to unauthenticated and disabled users + So that I can secure the system + + Background: + Given using OCS API version "1" + + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Unauthenticated call + Given using DAV path + When an unauthenticated client connects to the dav endpoint using the WebDAV API + Then the HTTP status code should be "401" + And there should be no duplicate headers + And the following headers should be set + | header | value | + | WWW-Authenticate | Basic realm="%base_url_without_scheme%" | + Examples: + | dav_version | + | old | + | new | diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature new file mode 100644 index 0000000000..d675d48280 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature @@ -0,0 +1,112 @@ +@api @skipOnOcis @issue-ocis-187 +Feature: previews of files downloaded through the webdav API + + Background: + Given user "Alice" has been created with default attributes and without skeleton files + + @issue-ocis-188 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: download previews with invalid width + Given user "Alice" has uploaded file "filesForUpload/lorem.txt" to "/parent.txt" + When user "Alice" downloads the preview of "/parent.txt" with width "" and height "32" using the WebDAV API + Then the HTTP status code should be "200" + Examples: + | width | + | 0 | + | 0.5 | + | -1 | + | false | + | true | + | A | + | %2F | + + @issue-ocis-188 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: download previews with invalid height + Given user "Alice" has uploaded file "filesForUpload/lorem.txt" to "/parent.txt" + When user "Alice" downloads the preview of "/parent.txt" with width "32" and height "" using the WebDAV API + Then the HTTP status code should be "200" + Examples: + | height | + | 0 | + | 0.5 | + | -1 | + | false | + | true | + | A | + | %2F | + + @issue-ocis-189 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: download previews of file types that don't support preview + Given user "Alice" has uploaded file "filesForUpload/" to "/" + When user "Alice" downloads the preview of "/" with width "32" and height "32" using the WebDAV API + Then the HTTP status code should be "200" + Examples: + | filename | newfilename | + | simple.pdf | test.pdf | + | simple.odt | test.odt | + | new-data.zip | test.zip | + + @issue-ocis-187 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: download previews of different image file types + Given user "Alice" has uploaded file "filesForUpload/" to "/" + When user "Alice" downloads the preview of "/" with width "32" and height "32" using the WebDAV API + Then the HTTP status code should be "200" + And the downloaded image should be "1240" pixels wide and "648" pixels high + Examples: + | imageName | newImageName | + | testavatar.jpg | testimage.jpg | + | testavatar.png | testimage.png | + + @issue-ocis-187 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: download previews of image after renaming it + Given user "Alice" has uploaded file "filesForUpload/testavatar.jpg" to "/testimage.jpg" + When user "Alice" moves file "/testimage.jpg" to "/testimage.txt" using the WebDAV API + And user "Alice" downloads the preview of "/testimage.txt" with width "32" and height "32" using the WebDAV API + Then the HTTP status code should be "200" + And the downloaded image should be "1240" pixels wide and "648" pixels high + + @issue-ocis-thumbnails-191 @skipOnOcis-EOS-Storage @issue-ocis-reva-308 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: download previews of other users files + Given user "Brian" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file "filesForUpload/lorem.txt" to "/parent.txt" + When user "Brian" downloads the preview of "/parent.txt" of "Alice" with width "32" and height "32" using the WebDAV API + Then the HTTP status code should be "200" + + @issue-ocis-190 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: download previews of folders + Given user "Alice" has created folder "subfolder" + When user "Alice" downloads the preview of "/subfolder/" with width "32" and height "32" using the WebDAV API + Then the HTTP status code should be "501" + + @issue-ocis-192 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: Download file previews when it is disabled by the administrator + Given the administrator has updated system config key "enable_previews" with value "false" and type "boolean" + And user "Alice" has uploaded file "filesForUpload/lorem.txt" to "/parent.txt" + When user "Alice" downloads the preview of "/parent.txt" with width "32" and height "32" using the WebDAV API + Then the HTTP status code should be "200" + + @issue-ocis-193 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: unset maximum size of previews + Given user "Alice" has uploaded file "filesForUpload/lorem.txt" to "/parent.txt" + And the administrator has updated system config key "preview_max_x" with value "null" + And the administrator has updated system config key "preview_max_y" with value "null" + When user "Alice" downloads the preview of "/parent.txt" with width "32" and height "32" using the WebDAV API + Then the HTTP status code should be "200" + + @issue-ocis-193 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: set maximum size of previews + Given user "Alice" has uploaded file "filesForUpload/lorem.txt" to "/parent.txt" + When the administrator updates system config key "preview_max_x" with value "null" using the occ command + And the administrator updates system config key "preview_max_y" with value "null" using the occ command + Then the HTTP status code should be "201" + When user "Alice" downloads the preview of "/parent.txt" with width "null" and height "null" using the WebDAV API + Then the HTTP status code should be "200" diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature new file mode 100644 index 0000000000..c7b96e90f3 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature @@ -0,0 +1,37 @@ +@api +Feature: create folder + As a user + I want to be able to create folders + So that I can organise the files in my file system + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and without skeleton files + + @issue-ocis-reva-168 @skipOnOcis-EOS-Storage + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: try to create a folder that already exists + Given using DAV path + And user "Alice" has created folder "my-data" + When user "Alice" creates folder "my-data" using the WebDAV API + Then the HTTP status code should be "405" + And as "Alice" folder "my-data" should exist + And the body of the response should be empty + Examples: + | dav_version | + | old | + | new | + + @issue-ocis-reva-168 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: try to create a folder with a name of an existing file + Given using DAV path + And user "Alice" has uploaded file with content "uploaded data" to "/my-data.txt" + When user "Alice" creates folder "my-data.txt" using the WebDAV API + Then the HTTP status code should be "405" + And the body of the response should be empty + And the content of file "/my-data.txt" for user "Alice" should be "uploaded data" + Examples: + | dav_version | + | old | + | new | diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature new file mode 100644 index 0000000000..9bb58bd7b7 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature @@ -0,0 +1,21 @@ +@api @issue-ocis-reva-57 +Feature: set file properties + As a user + I want to be able to set meta-information about files + So that I can reccord file meta-information (detailed requirement TBD) + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and without skeleton files + + @skipOnOcis-OC-Storage @issue-ocis-reva-276 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Setting custom DAV property + Given using DAV path + And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/testcustomprop.txt" + When user "Alice" sets property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "/testcustomprop.txt" to "veryCustomPropValue" using the WebDAV API + Then the HTTP status code should be "500" + Examples: + | dav_version | + | old | + | new | diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature new file mode 100644 index 0000000000..01ff438064 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature @@ -0,0 +1,115 @@ +@api +Feature: get file properties + As a user + I want to be able to get meta-information about files + So that I can know file meta-information (detailed requirement TBD) + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and without skeleton files + + @issue-ocis-reva-214 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Do a PROPFIND of various file names + Given using DAV path + And user "Alice" has uploaded file with content "uploaded content" to "" + When user "Alice" gets the properties of file "" using the WebDAV API + Then the properties response should contain an etag + And the value of the item "//d:response/d:href" in the response to user "Alice" should match "/remote\.php\//" + Examples: + | dav_version | file_name | expected_href | + | old | /C++ file.cpp | webdav\/C\+\+%20file\.cpp | + | old | /file #2.txt | webdav\/file%20%232\.txt | + | old | /file &2.txt | webdav\/file%20&2\.txt | + | new | /C++ file.cpp | dav\/files\/%username%\/C\+\+%20file\.cpp | + | new | /file #2.txt | dav\/files\/%username%\/file%20%232\.txt | + | new | /file &2.txt | dav\/files\/%username%\/file%20&2\.txt | + + @issue-ocis-reva-214 @issue-ocis-reva-265 @skipOnOcis-EOS-Storage + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Do a PROPFIND of various file names + Given using DAV path + And user "Alice" has uploaded file with content "uploaded content" to "" + When user "Alice" gets the properties of file "" using the WebDAV API + Then the properties response should contain an etag + And the value of the item "//d:response/d:href" in the response to user "Alice" should match "/remote\.php\//" + Examples: + | dav_version | file_name | expected_href | + | old | /file ?2.txt | webdav\/file%20%3F2\.txt | + | new | /file ?2.txt | dav\/files\/%username%\/file%20%3F2\.txt | + + @skipOnOcis-OC-Storage @issue-ocis-reva-265 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: upload a file to content + Given using DAV path + When user "Alice" uploads file with content "uploaded content" to "" using the WebDAV API + Then the HTTP status code should be "500" + Examples: + | dav_version | file_name | + | old | /file ?2.txt | + | new | /file ?2.txt | + + @issue-ocis-reva-214 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Do a PROPFIND of various folder names + Given using DAV path + And user "Alice" has created folder "" + And user "Alice" has uploaded file with content "uploaded content" to "/file1.txt" + And user "Alice" has uploaded file with content "uploaded content" to "/file2.txt" + When user "Alice" gets the properties of folder "" with depth 1 using the WebDAV API + Then the value of the item "//d:response[1]/d:href" in the response to user "Alice" should match "/remote\.php\/\//" + And the value of the item "//d:response[2]/d:href" in the response to user "Alice" should match "/remote\.php\/\/file1.txt/" + And the value of the item "//d:response[3]/d:href" in the response to user "Alice" should match "/remote\.php\/\/file2.txt/" + Examples: + | dav_version | folder_name | expected_href | + | old | /upload | webdav\/upload | + | old | /strängé folder | webdav\/str%C3%A4ng%C3%A9%20folder | + | old | /C++ folder | webdav\/C\+\+%20folder | + | old | /नेपाली | webdav\/%E0%A4%A8%E0%A5%87%E0%A4%AA%E0%A4%BE%E0%A4%B2%E0%A5%80 | + | old | /folder #2.txt | webdav\/folder%20%232\.txt | + | old | /folder &2.txt | webdav\/folder%20&2\.txt | + | new | /upload | dav\/files\/%username%\/upload | + | new | /strängé folder | dav\/files\/%username%\/str%C3%A4ng%C3%A9%20folder | + | new | /C++ folder | dav\/files\/%username%\/C\+\+%20folder | + | new | /नेपाली | dav\/files\/%username%\/%E0%A4%A8%E0%A5%87%E0%A4%AA%E0%A4%BE%E0%A4%B2%E0%A5%80 | + | new | /folder #2.txt | dav\/files\/%username%\/folder%20%232\.txt | + | new | /folder &2.txt | dav\/files\/%username%\/folder%20&2\.txt | + + @issue-ocis-reva-214 @skipOnOcis-EOS-Storage @issue-ocis-reva-265 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Do a PROPFIND of various folder names + Given using DAV path + And user "Alice" has created folder "" + And user "Alice" has uploaded file with content "uploaded content" to "/file1.txt" + And user "Alice" has uploaded file with content "uploaded content" to "/file2.txt" + When user "Alice" gets the properties of folder "" with depth 1 using the WebDAV API + Then the value of the item "//d:response[1]/d:href" in the response to user "Alice" should match "/remote\.php\/\//" + And the value of the item "//d:response[2]/d:href" in the response to user "Alice" should match "/remote\.php\/\/file1.txt/" + And the value of the item "//d:response[3]/d:href" in the response to user "Alice" should match "/remote\.php\/\/file2.txt/" + Examples: + | dav_version | folder_name | expected_href | + | old | /folder ?2.txt | webdav\/folder%20%3F2\.txt | + | new | /folder ?2.txt | dav\/files\/%username%\/folder%20%3F2\.txt | + + @skipOnOcis-OC-Storage @issue-ocis-reva-265 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Do a PROPFIND of various folder names + Given using DAV path + And user "Alice" has created folder "/folder ?2.txt" + When user "Alice" uploads to these filenames with content "uploaded content" using the webDAV API then the results should be as listed + | filename | http-code | exists | + | /folder ?2.txt/file1.txt | 500 | no | + Examples: + | dav_version | + | old | + | new | + + @issue-ocis-reva-163 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: Do a PROPFIND to a non-existing URL + And user "Alice" requests "" with "PROPFIND" using basic auth + Then the body of the response should be empty + Examples: + | url | + | /remote.php/dav/files/does-not-exist | + | /remote.php/dav/does-not-exist | diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature new file mode 100644 index 0000000000..057a17df98 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature @@ -0,0 +1,20 @@ +@api +Feature: upload file + As a user + I want to be able to upload files + So that I can store and share files between multiple client systems + + Background: + Given using OCS API version "1" + And user "Alice" has been created with default attributes and without skeleton files + + @skipOnOcis-OC-Storage @issue-ocis-reva-265 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: upload a file and check download content + Given using DAV path + When user "Alice" uploads file with content "uploaded content" to using the WebDAV API + Then the content of file for user "Alice" should be "" + Examples: + | dav_version | file_name | + | old | "file ?2.txt" | + | new | "file ?2.txt" | From e34e5752e9dfa090723141f45240ee3a689ae989 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 4 Aug 2020 14:46:59 +0545 Subject: [PATCH 227/346] Add needed Contexts to behat.yml --- tests/acceptance/config/behat.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml index b74d189ad5..883dd16793 100644 --- a/tests/acceptance/config/behat.yml +++ b/tests/acceptance/config/behat.yml @@ -21,7 +21,11 @@ default: adminPassword: admin regularUserPassword: 123456 ocPath: apps/testing/api/v1/occ + - CapabilitiesContext: + - ChecksumContext: - FavoritesContext: + - FilesVersionsContext: + - PublicWebDavContext: - WebDavPropertiesContext: extensions: From 992ce8636fad559b6e55cb15b1e3ed39b828e08e Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 4 Aug 2020 15:05:42 +0545 Subject: [PATCH 228/346] Local API Tests are with Oc Storage --- .drone.star | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.drone.star b/.drone.star index 89d285dd60..7508d15c90 100644 --- a/.drone.star +++ b/.drone.star @@ -31,7 +31,7 @@ def main(ctx): def testPipelines(ctx): pipelines = [ testing(ctx), - localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit']) + localApiTestsOcStorage(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit']) ] for runPart in range(1, config['apiTests']['numberOfParts'] + 1): @@ -39,11 +39,11 @@ def testPipelines(ctx): return pipelines -def localApiTests(ctx, coreBranch = 'master', coreCommit = ''): +def localApiTestsOcStorage(ctx, coreBranch = 'master', coreCommit = ''): return { 'kind': 'pipeline', 'type': 'docker', - 'name': 'localApiTests', + 'name': 'localApiTestsOcStorage', 'platform': { 'os': 'linux', 'arch': 'amd64', @@ -53,7 +53,7 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = ''): revaServer() + cloneCoreRepos(coreBranch, coreCommit) + [ { - 'name': 'LocalApiTests', + 'name': 'localApiTestsOcStorage', 'image': 'owncloudci/php:7.2', 'pull': 'always', 'environment' : { @@ -63,6 +63,7 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = ''): 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_OCIS':'true', + 'BEHAT_FILTER_TAGS': '~@skipOnOcis-OC-Storage', 'PATH_TO_CORE': '/srv/app/testrunner' }, 'commands': [ From 45d77ed5a176dcac93b7a625ca24a7bc544409f3 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 4 Aug 2020 15:54:31 +0545 Subject: [PATCH 229/346] Bump core commit for tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 7508d15c90..9e95bb4cc8 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '9416491281aa5315b630e02e3c7e8ca76689505a', + 'coreCommit': '1bee9ca8bc5ca37d3ceeb1f22f89ff8fb9690d83', 'numberOfParts': 2 } } From f78eebb30cee7405c09b7646c0a0494365ff6918 Mon Sep 17 00:00:00 2001 From: swoichha Date: Wed, 5 Aug 2020 13:28:48 +0545 Subject: [PATCH 230/346] updated drone.star and testing.md file for tag preview-extension-required --- .drone.star | 2 +- docs/testing.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.star b/.drone.star index 9e95bb4cc8..2a91e8157a 100644 --- a/.drone.star +++ b/.drone.star @@ -63,7 +63,7 @@ def localApiTestsOcStorage(ctx, coreBranch = 'master', coreCommit = ''): 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_OCIS':'true', - 'BEHAT_FILTER_TAGS': '~@skipOnOcis-OC-Storage', + 'BEHAT_FILTER_TAGS': '~@skipOnOcis-OC-Storage&&~@preview-extension-required', 'PATH_TO_CORE': '/srv/app/testrunner' }, 'commands': [ diff --git a/docs/testing.md b/docs/testing.md index 33c220306a..58d96bd3e8 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -84,7 +84,7 @@ TEST_SERVER_URL=http://localhost:9140 \ TEST_EXTERNAL_USER_BACKENDS=true \ TEST_OCIS=true \ OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ -BEHAT_FILTER_TAGS='~@notToImplementOnOCIS&&~@toImplementOnOCIS' \ +BEHAT_FILTER_TAGS='~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~@preview-extension-required' \ SKELETON_DIR=apps/testing/data/apiSkeleton ``` From 541f0477314db99979c1460123a630b467ddfc83 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 5 Aug 2020 13:30:34 +0545 Subject: [PATCH 231/346] Bump core commit to match core 10.5.1 bump --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 2a91e8157a..d7abfa3b3a 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '1bee9ca8bc5ca37d3ceeb1f22f89ff8fb9690d83', + 'coreCommit': '9ebf886779b98fc3f78e11cf138246f80d5cab39', 'numberOfParts': 2 } } From 7a7a43361b997c16b236406d075dc57d2357a2c7 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 6 Aug 2020 13:12:18 +0545 Subject: [PATCH 232/346] Bump core commit to latest as of 2020-08-05 --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index d7abfa3b3a..faa264a72c 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '9ebf886779b98fc3f78e11cf138246f80d5cab39', + 'coreCommit': 'a5a25faab347ae7006093ac3472d287e0ebd16f6', 'numberOfParts': 2 } } From a396dc11464e5a35789a4e2f19c8717a8ad722c9 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 6 Aug 2020 14:13:03 +0545 Subject: [PATCH 233/346] Move 'not preview-extension-required' filter to core API acceptance tests --- .drone.star | 4 +-- tests/acceptance/expected-failures.txt | 41 -------------------------- 2 files changed, 2 insertions(+), 43 deletions(-) diff --git a/.drone.star b/.drone.star index faa264a72c..245ec57f7e 100644 --- a/.drone.star +++ b/.drone.star @@ -63,7 +63,7 @@ def localApiTestsOcStorage(ctx, coreBranch = 'master', coreCommit = ''): 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_OCIS':'true', - 'BEHAT_FILTER_TAGS': '~@skipOnOcis-OC-Storage&&~@preview-extension-required', + 'BEHAT_FILTER_TAGS': '~@skipOnOcis-OC-Storage', 'PATH_TO_CORE': '/srv/app/testrunner' }, 'commands': [ @@ -119,7 +119,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_OCIS':'true', - 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS', + 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~@preview-extension-required', 'DIVIDE_INTO_NUM_PARTS': number_of_parts, 'RUN_PART': part_number, 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures.txt' diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt index c2dea4195e..ecae9df22e 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures.txt @@ -637,47 +637,6 @@ apiWebdavOperations/search.feature:211 apiWebdavOperations/search.feature:213 apiWebdavOperations/search.feature:229 # -# https://github.com/owncloud/ocis/issues/187 Previews via webDAV API tests fails on OCIS -apiWebdavPreviews/previews.feature:15 -apiWebdavPreviews/previews.feature:16 -apiWebdavPreviews/previews.feature:17 -apiWebdavPreviews/previews.feature:18 -apiWebdavPreviews/previews.feature:19 -apiWebdavPreviews/previews.feature:30 -apiWebdavPreviews/previews.feature:31 -apiWebdavPreviews/previews.feature:32 -apiWebdavPreviews/previews.feature:33 -apiWebdavPreviews/previews.feature:34 -apiWebdavPreviews/previews.feature:35 -apiWebdavPreviews/previews.feature:36 -apiWebdavPreviews/previews.feature:63 -apiWebdavPreviews/previews.feature:64 -apiWebdavPreviews/previews.feature:65 -apiWebdavPreviews/previews.feature:66 -apiWebdavPreviews/previews.feature:67 -apiWebdavPreviews/previews.feature:68 -apiWebdavPreviews/previews.feature:69 -apiWebdavPreviews/previews.feature:88 -apiWebdavPreviews/previews.feature:103 -apiWebdavPreviews/previews.feature:104 -apiWebdavPreviews/previews.feature:105 -apiWebdavPreviews/previews.feature:127 -apiWebdavPreviews/previews.feature:128 -apiWebdavPreviews/previews.feature:143 -apiWebdavPreviews/previews.feature:160 -apiWebdavPreviews/previews.feature:169 -apiWebdavPreviews/previews.feature:186 -apiWebdavPreviews/previews.feature:201 -apiWebdavPreviews/previews.feature:208 -apiWebdavPreviews/previews.feature:224 -apiWebdavPreviews/previews.feature:242 -apiWebdavPreviews/previews.feature:271 -apiWebdavPreviews/previews.feature:272 -apiWebdavPreviews/previews.feature:273 -apiWebdavPreviews/previews.feature:274 -apiWebdavPreviews/previews.feature:286 -apiWebdavPreviews/previews.feature:287 -# # https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties1/copyFile.feature:65 apiWebdavProperties1/copyFile.feature:66 From 9d87ef5a2764bb2efd68f29225bd5bd7e65cc1af Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 7 Aug 2020 08:54:02 +0545 Subject: [PATCH 234/346] Bump core commit id for tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 245ec57f7e..8c926491f6 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': 'a5a25faab347ae7006093ac3472d287e0ebd16f6', + 'coreCommit': 'e3aba53ada536915cd0e1bdbf33527d9970a13d3', 'numberOfParts': 2 } } From e14bb72997ef1f2e821b8c9062f04327eeafd44f Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Sun, 9 Aug 2020 20:24:28 +0545 Subject: [PATCH 235/346] Bump core commit id 20200809 --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 8c926491f6..b65ca13adf 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': 'e3aba53ada536915cd0e1bdbf33527d9970a13d3', + 'coreCommit': '03c68e17ebab61da2ebb0a9f541a6cffac0908ac', 'numberOfParts': 2 } } From 8ef228eb3b7ab08026b383180694f0317294a7e8 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 11 Aug 2020 16:26:29 +0545 Subject: [PATCH 236/346] Add new uploadFile bug demo scenario from core PR 37795 --- .drone.star | 2 +- tests/acceptance/expected-failures.txt | 5 +++++ .../apiWebdavUpload1-uploadFile.feature | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index b65ca13adf..6c164de1ef 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '03c68e17ebab61da2ebb0a9f541a6cffac0908ac', + 'coreCommit': '567f9fa6ee4ba005e9a3ddc5823312a6defb306e', 'numberOfParts': 2 } } diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt index ecae9df22e..79040d2202 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures.txt @@ -822,6 +822,11 @@ apiWebdavProperties2/getFileProperties.feature:561 apiWebdavUpload1/uploadFile.feature:123 apiWebdavUpload1/uploadFile.feature:124 # +apiWebdavUpload1/uploadFile.feature:208 +apiWebdavUpload1/uploadFile.feature:209 +apiWebdavUpload1/uploadFile.feature:210 +apiWebdavUpload1/uploadFile.feature:211 +# # https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:14 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:31 diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature index 057a17df98..32e7c884be 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature @@ -18,3 +18,20 @@ Feature: upload file | dav_version | file_name | | old | "file ?2.txt" | | new | "file ?2.txt" | + + @issue-product-127 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario Outline: uploading a file inside a folder changes its etag + Given using DAV path + And user "Alice" has created folder "/upload" + And user "Alice" has stored etag of element "/" + When user "Alice" uploads file with content "uploaded content" to "/upload/file.txt" using the WebDAV API + Then the content of file "/upload/file.txt" for user "Alice" should be "uploaded content" +# And the etag of element "/" of user "Alice" should have changed + And the etag of element "/" of user "Alice" should not have changed + Examples: + | dav_version | element | + | old | | + | old | upload | + | new | | + | new | upload | From b3c088f9cba0bd9e1a878cc46f852be4f284093b Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 11 Aug 2020 18:42:14 +0545 Subject: [PATCH 237/346] Bump core commit id for removed bug demo scenarios --- .drone.star | 2 +- tests/acceptance/expected-failures.txt | 413 ++++++++++++------------- 2 files changed, 196 insertions(+), 219 deletions(-) diff --git a/.drone.star b/.drone.star index 6c164de1ef..073b2743ed 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '567f9fa6ee4ba005e9a3ddc5823312a6defb306e', + 'coreCommit': '5e6593b9ed1124b815039c9efb943ba23d9e457c', 'numberOfParts': 2 } } diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt index 79040d2202..a96dcd1d8b 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures.txt @@ -2,69 +2,51 @@ # # test scenarios that fail with OC storage (that were tagged skipOnOcis-OC-Storage in core) # -apiFavorites/favorites.feature:39 -apiFavorites/favorites.feature:40 -apiShareManagementBasic/createShare.feature:121 -apiShareManagementBasic/createShare.feature:122 -apiShareManagementBasic/createShare.feature:124 -apiShareManagementBasic/createShare.feature:125 -apiShareManagementBasic/createShare.feature:127 -apiShareManagementBasic/createShare.feature:128 -apiShareManagementBasic/createShare.feature:130 -apiShareManagementBasic/createShare.feature:131 -apiShareManagementBasic/createShare.feature:223 -apiShareManagementBasic/createShare.feature:224 -apiShareManagementBasic/createShare.feature:447 -apiShareManagementBasic/createShare.feature:589 -apiShareManagementBasic/createShare.feature:604 -apiShareManagementBasic/createShare.feature:619 +apiShareManagementBasic/createShare.feature:336 +apiShareManagementBasic/createShare.feature:357 +apiShareManagementBasic/createShare.feature:478 +apiShareManagementBasic/createShare.feature:493 +apiShareManagementBasic/createShare.feature:508 apiShareOperations/gettingShares.feature:155 apiShareOperations/gettingShares.feature:156 apiSharePublicLink2/multilinkSharing.feature:181 -apiWebdavMove2/moveFile.feature:316 apiWebdavProperties1/setFileProperties.feature:32 apiWebdavProperties1/setFileProperties.feature:33 -apiWebdavProperties2/getFileProperties.feature:84 -apiWebdavProperties2/getFileProperties.feature:85 -apiWebdavProperties2/getFileProperties.feature:166 -apiWebdavProperties2/getFileProperties.feature:167 -apiWebdavUpload1/uploadFile.feature:63 -apiWebdavUpload1/uploadFile.feature:64 # # https://github.com/owncloud/ocis-reva/issues/196 Checksum feature apiMain/checksums.feature:24 apiMain/checksums.feature:25 apiMain/checksums.feature:35 apiMain/checksums.feature:36 -apiMain/checksums.feature:60 -apiMain/checksums.feature:61 -apiMain/checksums.feature:64 -apiMain/checksums.feature:72 -apiMain/checksums.feature:81 -apiMain/checksums.feature:113 -apiMain/checksums.feature:114 -apiMain/checksums.feature:117 -apiMain/checksums.feature:124 -apiMain/checksums.feature:144 -apiMain/checksums.feature:154 -apiMain/checksums.feature:163 -apiMain/checksums.feature:172 -apiMain/checksums.feature:183 -apiMain/checksums.feature:199 +apiMain/checksums.feature:46 +apiMain/checksums.feature:47 +apiMain/checksums.feature:50 +apiMain/checksums.feature:58 +apiMain/checksums.feature:67 +apiMain/checksums.feature:99 +apiMain/checksums.feature:100 +apiMain/checksums.feature:103 +apiMain/checksums.feature:110 +apiMain/checksums.feature:119 +apiMain/checksums.feature:129 +apiMain/checksums.feature:138 +apiMain/checksums.feature:147 +apiMain/checksums.feature:158 +apiMain/checksums.feature:174 +apiMain/checksums.feature:192 apiMain/checksums.feature:217 -apiMain/checksums.feature:242 -apiMain/checksums.feature:243 -apiMain/checksums.feature:277 -apiMain/checksums.feature:278 -apiMain/checksums.feature:310 -apiMain/checksums.feature:331 -apiMain/checksums.feature:332 -apiMain/checksums.feature:347 -apiMain/checksums.feature:348 -apiMain/checksums.feature:360 -apiMain/checksums.feature:361 -apiMain/checksums.feature:364 -apiMain/checksums.feature:376 +apiMain/checksums.feature:218 +apiMain/checksums.feature:239 +apiMain/checksums.feature:240 +apiMain/checksums.feature:258 +apiMain/checksums.feature:279 +apiMain/checksums.feature:280 +apiMain/checksums.feature:295 +apiMain/checksums.feature:296 +apiMain/checksums.feature:308 +apiMain/checksums.feature:309 +apiMain/checksums.feature:312 +apiMain/checksums.feature:324 # # https://github.com/owncloud/ocis-reva/issues/100 no robots.txt available apiMain/main.feature:5 @@ -90,10 +72,10 @@ apiMain/status.feature:5 apiAuthOcs/ocsDELETEAuth.feature:9 apiAuthOcs/ocsGETAuth.feature:10 apiAuthOcs/ocsGETAuth.feature:33 -apiAuthOcs/ocsGETAuth.feature:82 -apiAuthOcs/ocsGETAuth.feature:171 -apiAuthOcs/ocsGETAuth.feature:234 -apiAuthOcs/ocsGETAuth.feature:252 +apiAuthOcs/ocsGETAuth.feature:53 +apiAuthOcs/ocsGETAuth.feature:88 +apiAuthOcs/ocsGETAuth.feature:121 +apiAuthOcs/ocsGETAuth.feature:139 apiAuthOcs/ocsPOSTAuth.feature:10 apiAuthOcs/ocsPUTAuth.feature:10 # @@ -123,11 +105,11 @@ apiAuthWebDav/webDavPUTAuth.feature:38 # # https://github.com/owncloud/ocis-reva/issues/175 Default capabilities for normal user not same as in oC-core # https://github.com/owncloud/ocis-reva/issues/176 Difference in response content of status.php and default capabilities -apiCapabilities/capabilitiesWithNormalUser.feature:52 +apiCapabilities/capabilitiesWithNormalUser.feature:11 # # https://github.com/owncloud/ocis-reva/issues/39 REPORT request not implemented -apiFavorites/favorites.feature:239 -apiFavorites/favorites.feature:240 +apiFavorites/favorites.feature:228 +apiFavorites/favorites.feature:229 # # https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist apiSharees/sharees.feature:32 @@ -184,13 +166,12 @@ apiSharees/sharees.feature:537 apiSharees/sharees.feature:538 # # https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist -apiShareManagementBasic/createShare.feature:247 -apiShareManagementBasic/createShare.feature:248 -apiShareManagementBasic/createShare.feature:272 -apiShareManagementBasic/createShare.feature:273 -apiShareManagementBasic/createShare.feature:468 -apiShareManagementBasic/createShare.feature:528 -apiShareManagementBasic/createShare.feature:529 +apiShareManagementBasic/createShare.feature:169 +apiShareManagementBasic/createShare.feature:170 +apiShareManagementBasic/createShare.feature:194 +apiShareManagementBasic/createShare.feature:195 +apiShareManagementBasic/createShare.feature:417 +apiShareManagementBasic/createShare.feature:418 # # https://github.com/owncloud/ocis-reva/issues/356 Fields missing in delete share OCS response apiShareManagementBasic/deleteShare.feature:36 @@ -202,8 +183,8 @@ apiShareOperations/accessToShare.feature:49 # # https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist # https://github.com/owncloud/ocis-reva/issues/194 Group shares support -apiShareOperations/accessToShare.feature:78 -apiShareOperations/accessToShare.feature:79 +apiShareOperations/accessToShare.feature:63 +apiShareOperations/accessToShare.feature:64 # # https://github.com/owncloud/ocis-reva/issues/262 Shares are not deleted when user is deleted apiShareOperations/gettingShares.feature:21 @@ -224,17 +205,17 @@ apiShareOperations/gettingShares.feature:168 apiShareOperations/gettingShares.feature:169 # # https://github.com/owncloud/ocis-reva/issues/194 Group shares support -apiShareOperations/gettingShares.feature:187 +apiShareOperations/gettingShares.feature:172 # # https://github.com/owncloud/ocis-reva/issues/372 Listing shares via ocs API does not show path for parent folders -apiShareOperations/gettingShares.feature:219 -apiShareOperations/gettingShares.feature:220 +apiShareOperations/gettingShares.feature:204 +apiShareOperations/gettingShares.feature:205 # # https://github.com/owncloud/ocis-reva/issues/47 cannot get ocs:share-permissions via WebDAV apiShareOperations/getWebDAVSharePermissions.feature:21 apiShareOperations/getWebDAVSharePermissions.feature:22 -apiShareOperations/getWebDAVSharePermissions.feature:148 -apiShareOperations/getWebDAVSharePermissions.feature:149 +apiShareOperations/getWebDAVSharePermissions.feature:134 +apiShareOperations/getWebDAVSharePermissions.feature:135 # # https://github.com/owncloud/ocis-reva/issues/282 Split old public API webdav tests from new public webdav tests # https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions @@ -355,10 +336,10 @@ apiSharePublicLink1/createPublicLinkShare.feature:718 apiSharePublicLink1/createPublicLinkShare.feature:727 # # https://github.com/owncloud/core/issues/37605 Public cannot upload file with mtime set on a public link share with new version of WebDAV API -apiSharePublicLink1/createPublicLinkShare.feature:790 +apiSharePublicLink1/createPublicLinkShare.feature:779 # # https://github.com/owncloud/core/issues/37605 Public cannot upload file with mtime set on a public link share with new version of WebDAV API -apiSharePublicLink1/createPublicLinkShare.feature:816 +apiSharePublicLink1/createPublicLinkShare.feature:793 # # https://github.com/owncloud/ocis-reva/issues/311 Deleting a public link after renaming a file apiSharePublicLink1/deletePublicLinkShare.feature:37 @@ -368,53 +349,53 @@ apiSharePublicLink1/deletePublicLinkShare.feature:38 apiSharePublicLink2/copyFromPublicLink.feature:60 # # https://github.com/owncloud/ocis-reva/issues/368 copying a file from within a public link folder to "/" overwrites the parent folder -apiSharePublicLink2/copyFromPublicLink.feature:198 -apiSharePublicLink2/copyFromPublicLink.feature:199 +apiSharePublicLink2/copyFromPublicLink.feature:167 +apiSharePublicLink2/copyFromPublicLink.feature:168 # # https://github.com/owncloud/ocis-reva/issues/368 copying a file from within a public link folder to "/" overwrites the parent folder -apiSharePublicLink2/copyFromPublicLink.feature:230 -apiSharePublicLink2/copyFromPublicLink.feature:231 +apiSharePublicLink2/copyFromPublicLink.feature:183 +apiSharePublicLink2/copyFromPublicLink.feature:184 # -apiSharePublicLink2/updatePublicLinkShare.feature:135 -apiSharePublicLink2/updatePublicLinkShare.feature:136 +apiSharePublicLink2/updatePublicLinkShare.feature:94 +apiSharePublicLink2/updatePublicLinkShare.feature:95 # -apiSharePublicLink2/updatePublicLinkShare.feature:326 -apiSharePublicLink2/updatePublicLinkShare.feature:327 +apiSharePublicLink2/updatePublicLinkShare.feature:285 +apiSharePublicLink2/updatePublicLinkShare.feature:286 # # https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work -apiSharePublicLink2/updatePublicLinkShare.feature:345 -apiSharePublicLink2/updatePublicLinkShare.feature:346 +apiSharePublicLink2/updatePublicLinkShare.feature:304 +apiSharePublicLink2/updatePublicLinkShare.feature:305 # -apiSharePublicLink2/updatePublicLinkShare.feature:364 -apiSharePublicLink2/updatePublicLinkShare.feature:365 +apiSharePublicLink2/updatePublicLinkShare.feature:323 +apiSharePublicLink2/updatePublicLinkShare.feature:324 # # https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work -apiSharePublicLink2/updatePublicLinkShare.feature:383 -apiSharePublicLink2/updatePublicLinkShare.feature:384 +apiSharePublicLink2/updatePublicLinkShare.feature:342 +apiSharePublicLink2/updatePublicLinkShare.feature:343 # -apiSharePublicLink2/updatePublicLinkShare.feature:402 -apiSharePublicLink2/updatePublicLinkShare.feature:403 +apiSharePublicLink2/updatePublicLinkShare.feature:361 +apiSharePublicLink2/updatePublicLinkShare.feature:362 # # https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work -apiSharePublicLink2/updatePublicLinkShare.feature:421 -apiSharePublicLink2/updatePublicLinkShare.feature:422 +apiSharePublicLink2/updatePublicLinkShare.feature:380 +apiSharePublicLink2/updatePublicLinkShare.feature:381 +# +apiSharePublicLink2/updatePublicLinkShare.feature:399 +apiSharePublicLink2/updatePublicLinkShare.feature:400 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiSharePublicLink2/updatePublicLinkShare.feature:418 +apiSharePublicLink2/updatePublicLinkShare.feature:419 # apiSharePublicLink2/updatePublicLinkShare.feature:440 apiSharePublicLink2/updatePublicLinkShare.feature:441 # -# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work -apiSharePublicLink2/updatePublicLinkShare.feature:459 -apiSharePublicLink2/updatePublicLinkShare.feature:460 -# -apiSharePublicLink2/updatePublicLinkShare.feature:481 -apiSharePublicLink2/updatePublicLinkShare.feature:482 -# # https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions -apiSharePublicLink2/updatePublicLinkShare.feature:503 -apiSharePublicLink2/updatePublicLinkShare.feature:504 +apiSharePublicLink2/updatePublicLinkShare.feature:462 +apiSharePublicLink2/updatePublicLinkShare.feature:463 # -apiSharePublicLink2/updatePublicLinkShare.feature:528 -apiSharePublicLink2/updatePublicLinkShare.feature:529 +apiSharePublicLink2/updatePublicLinkShare.feature:487 +apiSharePublicLink2/updatePublicLinkShare.feature:488 # apiSharePublicLink2/uploadToPublicLinkShare.feature:9 # @@ -429,62 +410,62 @@ apiSharePublicLink2/uploadToPublicLinkShare.feature:62 apiSharePublicLink2/uploadToPublicLinkShare.feature:63 # # https://github.com/owncloud/ocis-reva/issues/290 Accessing non-existing public link should return 404, not 500 -apiSharePublicLink2/uploadToPublicLinkShare.feature:77 +apiSharePublicLink2/uploadToPublicLinkShare.feature:66 # # https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions -apiSharePublicLink2/uploadToPublicLinkShare.feature:85 +apiSharePublicLink2/uploadToPublicLinkShare.feature:74 # -apiSharePublicLink2/uploadToPublicLinkShare.feature:94 +apiSharePublicLink2/uploadToPublicLinkShare.feature:83 # -apiSharePublicLink2/uploadToPublicLinkShare.feature:114 +apiSharePublicLink2/uploadToPublicLinkShare.feature:103 # -apiSharePublicLink2/uploadToPublicLinkShare.feature:132 +apiSharePublicLink2/uploadToPublicLinkShare.feature:121 # -apiSharePublicLink2/uploadToPublicLinkShare.feature:150 +apiSharePublicLink2/uploadToPublicLinkShare.feature:139 # # https://github.com/owncloud/ocis-reva/issues/195 Set quota over settings -apiSharePublicLink2/uploadToPublicLinkShare.feature:159 +apiSharePublicLink2/uploadToPublicLinkShare.feature:148 # -apiSharePublicLink2/uploadToPublicLinkShare.feature:169 +apiSharePublicLink2/uploadToPublicLinkShare.feature:158 # # https://github.com/owncloud/ocis-reva/issues/195 Set quota over settings -apiSharePublicLink2/uploadToPublicLinkShare.feature:178 +apiSharePublicLink2/uploadToPublicLinkShare.feature:167 # -apiSharePublicLink2/uploadToPublicLinkShare.feature:188 +apiSharePublicLink2/uploadToPublicLinkShare.feature:177 # # https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set -apiSharePublicLink2/uploadToPublicLinkShare.feature:197 +apiSharePublicLink2/uploadToPublicLinkShare.feature:186 # -apiSharePublicLink2/uploadToPublicLinkShare.feature:207 +apiSharePublicLink2/uploadToPublicLinkShare.feature:196 # # https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink2/uploadToPublicLinkShare.feature:206 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:217 # -apiSharePublicLink2/uploadToPublicLinkShare.feature:228 -# # https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink2/uploadToPublicLinkShare.feature:227 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:238 # -apiSharePublicLink2/uploadToPublicLinkShare.feature:249 -# -apiSharePublicLink2/uploadToPublicLinkShare.feature:266 +apiSharePublicLink2/uploadToPublicLinkShare.feature:255 # # https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file -apiSharePublicLink2/uploadToPublicLinkShare.feature:284 +apiSharePublicLink2/uploadToPublicLinkShare.feature:273 # # https://github.com/owncloud/ocis-reva/issues/17 uploading with old-chunking does not work # https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiVersions/fileVersions.feature:15 -apiVersions/fileVersions.feature:32 +apiVersions/fileVersions.feature:23 +apiVersions/fileVersions.feature:36 apiVersions/fileVersions.feature:45 -apiVersions/fileVersions.feature:64 -apiVersions/fileVersions.feature:107 -apiVersions/fileVersions.feature:108 -apiVersions/fileVersions.feature:112 -apiVersions/fileVersions.feature:123 -apiVersions/fileVersions.feature:334 -apiVersions/fileVersions.feature:464 -apiVersions/fileVersions.feature:488 +apiVersions/fileVersions.feature:88 +apiVersions/fileVersions.feature:89 +apiVersions/fileVersions.feature:93 +apiVersions/fileVersions.feature:104 +apiVersions/fileVersions.feature:288 +apiVersions/fileVersions.feature:362 +apiVersions/fileVersions.feature:373 # # https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFileAsync.feature:26 @@ -528,18 +509,18 @@ apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:27 # https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFolder.feature:21 apiWebdavMove1/moveFolder.feature:22 -apiWebdavMove1/moveFolder.feature:46 +apiWebdavMove1/moveFolder.feature:34 +apiWebdavMove1/moveFolder.feature:35 apiWebdavMove1/moveFolder.feature:47 -apiWebdavMove1/moveFolder.feature:71 -apiWebdavMove1/moveFolder.feature:72 +apiWebdavMove1/moveFolder.feature:48 # # https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFolderToBlacklistedName.feature:21 apiWebdavMove1/moveFolderToBlacklistedName.feature:22 -apiWebdavMove1/moveFolderToBlacklistedName.feature:48 -apiWebdavMove1/moveFolderToBlacklistedName.feature:49 -apiWebdavMove1/moveFolderToBlacklistedName.feature:83 -apiWebdavMove1/moveFolderToBlacklistedName.feature:84 +apiWebdavMove1/moveFolderToBlacklistedName.feature:35 +apiWebdavMove1/moveFolderToBlacklistedName.feature:36 +apiWebdavMove1/moveFolderToBlacklistedName.feature:70 +apiWebdavMove1/moveFolderToBlacklistedName.feature:71 # # https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFolderToExcludedDirectory.feature:21 @@ -568,18 +549,18 @@ apiWebdavMove2/moveFile.feature:200 apiWebdavMove2/moveFile.feature:201 apiWebdavMove2/moveFile.feature:219 apiWebdavMove2/moveFile.feature:220 -apiWebdavMove2/moveFile.feature:267 -apiWebdavMove2/moveFile.feature:268 -apiWebdavMove2/moveFile.feature:284 -apiWebdavMove2/moveFile.feature:285 +apiWebdavMove2/moveFile.feature:255 +apiWebdavMove2/moveFile.feature:256 +apiWebdavMove2/moveFile.feature:272 +apiWebdavMove2/moveFile.feature:273 # # https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove2/moveFileToBlacklistedName.feature:18 apiWebdavMove2/moveFileToBlacklistedName.feature:19 -apiWebdavMove2/moveFileToBlacklistedName.feature:41 -apiWebdavMove2/moveFileToBlacklistedName.feature:42 -apiWebdavMove2/moveFileToBlacklistedName.feature:74 -apiWebdavMove2/moveFileToBlacklistedName.feature:75 +apiWebdavMove2/moveFileToBlacklistedName.feature:29 +apiWebdavMove2/moveFileToBlacklistedName.feature:30 +apiWebdavMove2/moveFileToBlacklistedName.feature:62 +apiWebdavMove2/moveFileToBlacklistedName.feature:63 # # https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove2/moveFileToExcludedDirectory.feature:18 @@ -610,8 +591,8 @@ apiWebdavOperations/downloadFile.feature:85 apiWebdavOperations/refuseAccess.feature:21 apiWebdavOperations/refuseAccess.feature:22 # -apiWebdavOperations/refuseAccess.feature:47 -apiWebdavOperations/refuseAccess.feature:48 +apiWebdavOperations/refuseAccess.feature:33 +apiWebdavOperations/refuseAccess.feature:34 # # https://github.com/owncloud/ocis-reva/issues/39 REPORT request not implemented apiWebdavOperations/search.feature:42 @@ -702,8 +683,8 @@ apiWebdavProperties1/createFolder.feature:85 apiWebdavProperties1/createFolder.feature:86 # # https://github.com/owncloud/ocis-reva/issues/168 creating a folder that already exists returns an empty body -apiWebdavProperties1/createFolder.feature:113 -apiWebdavProperties1/createFolder.feature:114 +apiWebdavProperties1/createFolder.feature:99 +apiWebdavProperties1/createFolder.feature:100 # # https://github.com/owncloud/ocis-reva/issues/101 quota query apiWebdavProperties1/getQuota.feature:17 @@ -718,12 +699,8 @@ apiWebdavProperties1/getQuota.feature:77 apiWebdavProperties1/getQuota.feature:78 # # https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties1/setFileProperties.feature:44 -apiWebdavProperties1/setFileProperties.feature:45 -# -# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties1/setFileProperties.feature:75 -apiWebdavProperties1/setFileProperties.feature:76 +apiWebdavProperties1/setFileProperties.feature:63 +apiWebdavProperties1/setFileProperties.feature:64 # # https://github.com/owncloud/ocis-reva/issues/214 XML properties in webdav response not properly encoded apiWebdavProperties2/getFileProperties.feature:37 @@ -734,98 +711,98 @@ apiWebdavProperties2/getFileProperties.feature:43 apiWebdavProperties2/getFileProperties.feature:44 # # https://github.com/owncloud/ocis-reva/issues/214 XML properties in webdav response not properly encoded -apiWebdavProperties2/getFileProperties.feature:100 -apiWebdavProperties2/getFileProperties.feature:101 -apiWebdavProperties2/getFileProperties.feature:102 -apiWebdavProperties2/getFileProperties.feature:104 -apiWebdavProperties2/getFileProperties.feature:105 -apiWebdavProperties2/getFileProperties.feature:107 -apiWebdavProperties2/getFileProperties.feature:108 -apiWebdavProperties2/getFileProperties.feature:109 -apiWebdavProperties2/getFileProperties.feature:111 -apiWebdavProperties2/getFileProperties.feature:112 +apiWebdavProperties2/getFileProperties.feature:59 +apiWebdavProperties2/getFileProperties.feature:60 +apiWebdavProperties2/getFileProperties.feature:61 +apiWebdavProperties2/getFileProperties.feature:63 +apiWebdavProperties2/getFileProperties.feature:64 +apiWebdavProperties2/getFileProperties.feature:66 +apiWebdavProperties2/getFileProperties.feature:67 +apiWebdavProperties2/getFileProperties.feature:68 +apiWebdavProperties2/getFileProperties.feature:70 +apiWebdavProperties2/getFileProperties.feature:71 # # https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work -apiWebdavProperties2/getFileProperties.feature:231 +apiWebdavProperties2/getFileProperties.feature:135 +apiWebdavProperties2/getFileProperties.feature:136 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties2/getFileProperties.feature:156 +apiWebdavProperties2/getFileProperties.feature:157 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties2/getFileProperties.feature:174 +apiWebdavProperties2/getFileProperties.feature:175 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties2/getFileProperties.feature:206 +apiWebdavProperties2/getFileProperties.feature:207 +# +apiWebdavProperties2/getFileProperties.feature:218 +apiWebdavProperties2/getFileProperties.feature:219 +# +# https://github.com/owncloud/ocis-reva/issues/216 Private link support apiWebdavProperties2/getFileProperties.feature:232 +apiWebdavProperties2/getFileProperties.feature:233 # -# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work -apiWebdavProperties2/getFileProperties.feature:252 -apiWebdavProperties2/getFileProperties.feature:253 +# https://github.com/owncloud/ocis-reva/issues/163 trying to access a non-existing resource returns an empty body +apiWebdavProperties2/getFileProperties.feature:242 +apiWebdavProperties2/getFileProperties.feature:243 # -# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work -apiWebdavProperties2/getFileProperties.feature:270 -apiWebdavProperties2/getFileProperties.feature:271 +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:246 # -# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:266 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:301 apiWebdavProperties2/getFileProperties.feature:302 -apiWebdavProperties2/getFileProperties.feature:303 # +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:314 apiWebdavProperties2/getFileProperties.feature:315 # -# https://github.com/owncloud/ocis-reva/issues/216 Private link support +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:327 apiWebdavProperties2/getFileProperties.feature:328 -apiWebdavProperties2/getFileProperties.feature:329 -# -# https://github.com/owncloud/ocis-reva/issues/163 trying to access a non-existing resource returns an empty body -apiWebdavProperties2/getFileProperties.feature:338 -apiWebdavProperties2/getFileProperties.feature:339 # # https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:352 +apiWebdavProperties2/getFileProperties.feature:376 +apiWebdavProperties2/getFileProperties.feature:377 # # https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:372 +apiWebdavProperties2/getFileProperties.feature:389 +apiWebdavProperties2/getFileProperties.feature:390 # # https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:407 -apiWebdavProperties2/getFileProperties.feature:408 +apiWebdavProperties2/getFileProperties.feature:402 +apiWebdavProperties2/getFileProperties.feature:403 # # https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:420 -apiWebdavProperties2/getFileProperties.feature:421 +apiWebdavProperties2/getFileProperties.feature:415 +apiWebdavProperties2/getFileProperties.feature:416 # # https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:433 -apiWebdavProperties2/getFileProperties.feature:434 +apiWebdavProperties2/getFileProperties.feature:428 +apiWebdavProperties2/getFileProperties.feature:429 # # https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:482 -apiWebdavProperties2/getFileProperties.feature:483 +apiWebdavProperties2/getFileProperties.feature:441 +apiWebdavProperties2/getFileProperties.feature:442 # # https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:495 -apiWebdavProperties2/getFileProperties.feature:496 -# -# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:508 -apiWebdavProperties2/getFileProperties.feature:509 -# -# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:521 -apiWebdavProperties2/getFileProperties.feature:522 -# -# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:534 -apiWebdavProperties2/getFileProperties.feature:535 -# -# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:547 -apiWebdavProperties2/getFileProperties.feature:548 -# -# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties -apiWebdavProperties2/getFileProperties.feature:560 -apiWebdavProperties2/getFileProperties.feature:561 +apiWebdavProperties2/getFileProperties.feature:454 +apiWebdavProperties2/getFileProperties.feature:455 # # https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded -apiWebdavUpload1/uploadFile.feature:123 -apiWebdavUpload1/uploadFile.feature:124 +apiWebdavUpload1/uploadFile.feature:112 +apiWebdavUpload1/uploadFile.feature:113 # -apiWebdavUpload1/uploadFile.feature:208 -apiWebdavUpload1/uploadFile.feature:209 -apiWebdavUpload1/uploadFile.feature:210 -apiWebdavUpload1/uploadFile.feature:211 +apiWebdavUpload1/uploadFile.feature:197 +apiWebdavUpload1/uploadFile.feature:198 +apiWebdavUpload1/uploadFile.feature:199 +apiWebdavUpload1/uploadFile.feature:200 # # https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:14 From 666c851a5dab6b68c891250b51f0b3875be00bb8 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 11 Aug 2020 23:31:38 +0545 Subject: [PATCH 238/346] Comment out intermittent test scenario example for etag --- .../apiOcisSpecific/apiWebdavUpload1-uploadFile.feature | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature index 32e7c884be..b6b99f73d3 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature @@ -34,4 +34,5 @@ Feature: upload file | old | | | old | upload | | new | | - | new | upload | + # this example is intermittent - sometimes the etag changes and sometimes not + # | new | upload | From 87d2951172fa4fa9fb77414add8c344a26f6e696 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 12 Aug 2020 12:34:21 +0545 Subject: [PATCH 239/346] Remove unused skipOnOcis tag --- .../features/apiOcisSpecific/apiWebdavPreviews-previews.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature index d675d48280..08d796036c 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis @issue-ocis-187 +@api @issue-ocis-187 Feature: previews of files downloaded through the webdav API Background: From 7c071a97a5f175f844e33e8547d767403e4f8ce6 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 12 Aug 2020 12:36:46 +0545 Subject: [PATCH 240/346] Skip intermittent upload etag local test scenario --- .../apiOcisSpecific/apiWebdavUpload1-uploadFile.feature | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature index b6b99f73d3..3f5570fbff 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature @@ -19,7 +19,8 @@ Feature: upload file | old | "file ?2.txt" | | new | "file ?2.txt" | - @issue-product-127 + @skipOnOcis-OC-Storage @issue-product-127 + # this scenario passes/fails intermittently on OC storage, so do not run it in CI # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: uploading a file inside a folder changes its etag Given using DAV path From f830ef05b3322e02934faafc5e764b3c8fee0f1e Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 12 Aug 2020 12:38:26 +0545 Subject: [PATCH 241/346] Bump core commit id to get latest CI scripts --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 073b2743ed..03be90015d 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '5e6593b9ed1124b815039c9efb943ba23d9e457c', + 'coreCommit': 'aa87e9c07c5558387c37921d850e8d8e99d6cd45', 'numberOfParts': 2 } } From c1f3a6b73ddb2b97fe5f744c33aa56435f60b7da Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 12 Aug 2020 12:56:24 +0545 Subject: [PATCH 242/346] Remove core tests that are not run from expected-failures.txt --- tests/acceptance/expected-failures.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt index a96dcd1d8b..eb1efe5e25 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures.txt @@ -799,11 +799,6 @@ apiWebdavProperties2/getFileProperties.feature:455 apiWebdavUpload1/uploadFile.feature:112 apiWebdavUpload1/uploadFile.feature:113 # -apiWebdavUpload1/uploadFile.feature:197 -apiWebdavUpload1/uploadFile.feature:198 -apiWebdavUpload1/uploadFile.feature:199 -apiWebdavUpload1/uploadFile.feature:200 -# # https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:14 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:31 From b0b2ee05a1bb023d4258630ff3fe0620207d2032 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 13 Aug 2020 08:16:40 +0545 Subject: [PATCH 243/346] Bump core commit to run extra tests --- .drone.star | 2 +- tests/acceptance/expected-failures.txt | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 03be90015d..639a9d5869 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': 'aa87e9c07c5558387c37921d850e8d8e99d6cd45', + 'coreCommit': 'f0fd17a01c69c7c5b518d3209afe8f3e4feac1ef', 'numberOfParts': 2 } } diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt index eb1efe5e25..50b6d0bb1e 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures.txt @@ -173,6 +173,11 @@ apiShareManagementBasic/createShare.feature:195 apiShareManagementBasic/createShare.feature:417 apiShareManagementBasic/createShare.feature:418 # +# https://github.com/owncloud/ocis-reva/issues/243 Sharing seems to work but does not work +# https://github.com/owncloud/ocis-reva/issues/372 Listing shares via ocs API does not show path for parent folders +apiShareManagementBasic/createShare.feature:269 +apiShareManagementBasic/createShare.feature:270 +# # https://github.com/owncloud/ocis-reva/issues/356 Fields missing in delete share OCS response apiShareManagementBasic/deleteShare.feature:36 apiShareManagementBasic/deleteShare.feature:37 From f9059882cf04138aa04dac8a67d8cd47ce13329c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 31 Jul 2020 22:46:59 +0200 Subject: [PATCH 244/346] environment updates for the username userid split MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .../updates-for-username-userid-split.md | 6 ++++++ pkg/command/storagehome.go | 11 ++++++----- pkg/command/storagehomedata.go | 11 ++++++----- pkg/command/storageoc.go | 11 ++++++----- pkg/command/storageocdata.go | 11 ++++++----- pkg/flagset/storageeos.go | 4 ++-- pkg/flagset/storageeosdata.go | 4 ++-- pkg/flagset/storagehome.go | 14 ++++++++++++-- pkg/flagset/storagehomedata.go | 14 ++++++++++++-- pkg/flagset/storageoc.go | 14 ++++++++++++-- pkg/flagset/storageocdata.go | 14 ++++++++++++-- pkg/flagset/storageroot.go | 4 ++-- 12 files changed, 84 insertions(+), 34 deletions(-) create mode 100644 changelog/unreleased/updates-for-username-userid-split.md diff --git a/changelog/unreleased/updates-for-username-userid-split.md b/changelog/unreleased/updates-for-username-userid-split.md new file mode 100644 index 0000000000..027a87cc8c --- /dev/null +++ b/changelog/unreleased/updates-for-username-userid-split.md @@ -0,0 +1,6 @@ +Change: environment updates for the username userid split + +We updated the owncloud storage driver in reva to properly look up users by userid or username using the userprovider instead of taking the path segment as is. This requires the user service address as well as changing the default layout to the userid instead of the username. The latter is not considered a stable and persistent identifier. + +https://github.com/owncloud/ocis-reva/pull/420 +https://github.com/cs3org/reva/pull/1033 \ No newline at end of file diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 69f5343752..756bd9f42f 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -129,11 +129,12 @@ func StorageHome(cfg *config.Config) *cli.Command { "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": true, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": true, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "userprovidersvc": cfg.Reva.Users.URL, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 316f1d6ca1..1640051489 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -131,11 +131,12 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "userprovidersvc": cfg.Reva.Users.URL, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index 60b940a40d..a7f200c402 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -129,11 +129,12 @@ func StorageOC(cfg *config.Config) *cli.Command { "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "userprovidersvc": cfg.Reva.Users.URL, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 78da2e9b58..7064fe296f 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -131,11 +131,12 @@ func StorageOCData(cfg *config.Config) *cli.Command { "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "userprovidersvc": cfg.Reva.Users.URL, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/flagset/storageeos.go b/pkg/flagset/storageeos.go index e30283254a..dd63d7b684 100644 --- a/pkg/flagset/storageeos.go +++ b/pkg/flagset/storageeos.go @@ -324,8 +324,8 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, diff --git a/pkg/flagset/storageeosdata.go b/pkg/flagset/storageeosdata.go index 10d651c508..2ea51edebe 100644 --- a/pkg/flagset/storageeosdata.go +++ b/pkg/flagset/storageeosdata.go @@ -302,8 +302,8 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index fcfd595526..a80324b69d 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -329,10 +329,20 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, + + // User provider + + &cli.StringFlag{ + Name: "users-url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_USERS_URL"}, + Destination: &cfg.Reva.Users.URL, + }, } } diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 8b8393a651..a7f24e8aec 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -303,8 +303,8 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, @@ -318,5 +318,15 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_GATEWAY_URL"}, Destination: &cfg.Reva.Gateway.URL, }, + + // User provider + + &cli.StringFlag{ + Name: "users-url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_USERS_URL"}, + Destination: &cfg.Reva.Users.URL, + }, } } diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 62d58bccbe..9f44d50cfd 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -327,10 +327,20 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, + + // User provider + + &cli.StringFlag{ + Name: "users-url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_USERS_URL"}, + Destination: &cfg.Reva.Users.URL, + }, } } diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index bb2a645adb..0db9e3ed92 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -305,8 +305,8 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, @@ -320,5 +320,15 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_GATEWAY_URL"}, Destination: &cfg.Reva.Gateway.URL, }, + + // User provider + + &cli.StringFlag{ + Name: "users-url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_USERS_URL"}, + Destination: &cfg.Reva.Users.URL, + }, } } diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 31b136d762..134920866a 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -311,8 +311,8 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, From f0ad60dde52d4e4ed25ed580c1911791604e9c35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Mon, 10 Aug 2020 13:59:04 +0200 Subject: [PATCH 245/346] update reva to v1.0.1-0.20200810113514-38919badfcc7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- go.mod | 6 ++-- go.sum | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 9b4746b740..fb66b4cfea 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,9 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v0.1.1-0.20200728071211-c948977dd3a0 + github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7 github.com/gofrs/uuid v3.3.0+incompatible + github.com/gomodule/redigo v2.0.0+incompatible // indirect github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 github.com/micro/go-micro v1.18.0 @@ -13,10 +14,7 @@ require ( github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203 github.com/owncloud/ocis-pkg/v2 v2.2.1 github.com/pelletier/go-toml v1.6.0 // indirect - github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee // indirect - github.com/prometheus/procfs v0.0.8 // indirect github.com/restic/calens v0.2.0 github.com/spf13/viper v1.6.1 - github.com/uber/jaeger-client-go v2.20.1+incompatible // indirect gopkg.in/ini.v1 v1.51.1 // indirect ) diff --git a/go.sum b/go.sum index d2885547de..629c5ec99f 100644 --- a/go.sum +++ b/go.sum @@ -8,12 +8,23 @@ cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxK cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= contrib.go.opencensus.io/exporter/jaeger v0.2.0 h1:nhTv/Ry3lGmqbJ/JGvCjWxBl5ozRfqo86Ngz59UAlfk= contrib.go.opencensus.io/exporter/jaeger v0.2.0/go.mod h1:ukdzwIYYHgZ7QYtwVFQUjiT28BJHiMhTERo32s6qVgM= +contrib.go.opencensus.io/exporter/jaeger v0.2.1/go.mod h1:Y8IsLgdxqh1QxYxPC5IgXVmBaeLUeQFfBeBi9PbeZd0= contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= contrib.go.opencensus.io/exporter/prometheus v0.2.0 h1:9PUk0/8V0LGoPqVCrf8fQZJkFGBxudu8jOjQSMwoD6w= contrib.go.opencensus.io/exporter/prometheus v0.2.0/go.mod h1:TYmVAyE8Tn1lyPcltF5IYYfWp2KHu7lQGIZnj8iZMys= @@ -85,6 +96,7 @@ github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.33.11 h1:A7b3mNKbh/0zrhnNN/KxWD0YZJw2RImnjFXWOquYKB4= github.com/aws/aws-sdk-go v1.33.11/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.33.19/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -107,6 +119,9 @@ github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tj github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/cheggaaa/pb v1.0.28/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/cloudflare-go v0.10.2/go.mod h1:qhVI5MKwBGhdNU89ZRz2plgYutcJ5PCekLxXn56w6SY= @@ -144,11 +159,15 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cs3org/cato v0.0.0-20200626150132-28a40e643719/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= github.com/cs3org/go-cs3apis v0.0.0-20200709064917-d96c5f2a42ad h1:XxB0h+UKILRKdr+WgPJaOfW8duVPeVKq/18aip5D/Ws= github.com/cs3org/go-cs3apis v0.0.0-20200709064917-d96c5f2a42ad/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v0.1.1-0.20200728071211-c948977dd3a0 h1:v1+My73gml0FW0t8pokmbQ32QhJJyxiiJ8zHYL+g81I= github.com/cs3org/reva v0.1.1-0.20200728071211-c948977dd3a0/go.mod h1:hpkioVUPS+7USJq1cW1ikT22fxeMbVvHfonQVYcix4g= +github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7 h1:q2lDRDnDsjNPSt3iRMtoeSETCTi0d1LmkY89aFGZyBQ= +github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7/go.mod h1:fBzTrNuAKdQ62ybjpdu8nyhBin90/3/3s6DGQDCdBp4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= @@ -195,7 +214,9 @@ github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-cmd/cmd v1.0.5/go.mod h1:y8q8qlK5wQibcw63djSl/ntiHUHXHGdCkPk0j4QeW4s= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-ini/ini v1.44.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -205,6 +226,7 @@ github.com/go-log/log v0.1.0/go.mod h1:4mBwpdRMFLiuXZDCwU2lKQFsoSCo72j3HqBK9d81N github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= @@ -400,11 +422,13 @@ github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3 h1:GV+pQPG/EUUbkh47niozDcADz6go/dUwhVzdUQHIVRw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -422,6 +446,7 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/gomodule/redigo v1.8.2/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -436,6 +461,9 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -478,6 +506,7 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/huandu/xstrings v1.3.0 h1:gvV6jG9dTgFEncxo+AF7PH6MZXi/vZl25owA/8Dg8Wo= github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -503,7 +532,9 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= @@ -526,6 +557,7 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= @@ -705,17 +737,20 @@ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDf github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -724,6 +759,7 @@ github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDa github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.6/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/statsd_exporter v0.15.0 h1:UiwC1L5HkxEPeapXdm2Ye0u1vUJfTj7uwT5yydYpa1E= github.com/prometheus/statsd_exporter v0.15.0/go.mod h1:Dv8HnkoLQkeEjkIE4/2ndAA7WL1zHKK7WMqFQqu72rw= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= @@ -805,6 +841,7 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.1.1/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= @@ -825,6 +862,7 @@ github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2/go.mod h1:ygrT4B9ZSb27d github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.20.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -843,6 +881,7 @@ github.com/xeipuuv/gojsonschema v1.1.0/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4m github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c/go.mod h1:UrdRz5enIKZ63MEE3IF9l2/ebyx59GyGgPi+tICQdmM= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -854,6 +893,7 @@ go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4 h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -908,7 +948,12 @@ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -919,11 +964,15 @@ golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180816102801-aaf60122140d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -959,14 +1008,18 @@ golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191011234655-491137f69257/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191027093000-83d349e8ac1a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191109021931-daa7c04131f5/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -975,6 +1028,8 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1022,12 +1077,23 @@ golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191105231009-c1f44814a5cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191113165036-4c7a9d0fe056/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1035,6 +1101,7 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1082,12 +1149,24 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200113040837-eac381796e91 h1:OOkytthzFBKHY5EfEgLUabprb0LtJVkQtNxAQ02+UE4= golang.org/x/tools v0.0.0-20200113040837-eac381796e91/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= @@ -1098,7 +1177,13 @@ google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1 google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1120,9 +1205,16 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba h1:pRj9OXZbwNtbtZtOB4dLwfK4u+EVRMvP+e9zKkg2grM= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1134,9 +1226,12 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1150,6 +1245,7 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= @@ -1187,8 +1283,11 @@ gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bl gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From 38176a803ae7c54ec4746255478561d9960d92eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Mon, 10 Aug 2020 14:03:35 +0200 Subject: [PATCH 246/346] go mod tidy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- go.mod | 1 - go.sum | 32 ++++++++++++++++++-------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index fb66b4cfea..2580c91cae 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,6 @@ go 1.13 require ( github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7 github.com/gofrs/uuid v3.3.0+incompatible - github.com/gomodule/redigo v2.0.0+incompatible // indirect github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 github.com/micro/go-micro v1.18.0 diff --git a/go.sum b/go.sum index 629c5ec99f..e16948840e 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,7 @@ cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIA cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -contrib.go.opencensus.io/exporter/jaeger v0.2.0 h1:nhTv/Ry3lGmqbJ/JGvCjWxBl5ozRfqo86Ngz59UAlfk= -contrib.go.opencensus.io/exporter/jaeger v0.2.0/go.mod h1:ukdzwIYYHgZ7QYtwVFQUjiT28BJHiMhTERo32s6qVgM= +contrib.go.opencensus.io/exporter/jaeger v0.2.1 h1:yGBYzYMewVL0yO9qqJv3Z5+IRhPdU7e9o/2oKpX4YvI= contrib.go.opencensus.io/exporter/jaeger v0.2.1/go.mod h1:Y8IsLgdxqh1QxYxPC5IgXVmBaeLUeQFfBeBi9PbeZd0= contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= contrib.go.opencensus.io/exporter/prometheus v0.2.0 h1:9PUk0/8V0LGoPqVCrf8fQZJkFGBxudu8jOjQSMwoD6w= @@ -94,8 +93,7 @@ github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt github.com/aws/aws-sdk-go v1.20.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.33.11 h1:A7b3mNKbh/0zrhnNN/KxWD0YZJw2RImnjFXWOquYKB4= -github.com/aws/aws-sdk-go v1.33.11/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.33.19 h1:SMna0QLInNqm+nNL9tb7OVWTqSfNYSxrCa2adnyVth4= github.com/aws/aws-sdk-go v1.33.19/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= @@ -161,11 +159,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cs3org/cato v0.0.0-20200626150132-28a40e643719/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= -github.com/cs3org/go-cs3apis v0.0.0-20200709064917-d96c5f2a42ad h1:XxB0h+UKILRKdr+WgPJaOfW8duVPeVKq/18aip5D/Ws= -github.com/cs3org/go-cs3apis v0.0.0-20200709064917-d96c5f2a42ad/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd h1:uMaudkC7znaiIKT9rxIhoRYzrhTg1Nc78X7XEqhmjSk= github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v0.1.1-0.20200728071211-c948977dd3a0 h1:v1+My73gml0FW0t8pokmbQ32QhJJyxiiJ8zHYL+g81I= -github.com/cs3org/reva v0.1.1-0.20200728071211-c948977dd3a0/go.mod h1:hpkioVUPS+7USJq1cW1ikT22fxeMbVvHfonQVYcix4g= github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7 h1:q2lDRDnDsjNPSt3iRMtoeSETCTi0d1LmkY89aFGZyBQ= github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7/go.mod h1:fBzTrNuAKdQ62ybjpdu8nyhBin90/3/3s6DGQDCdBp4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -446,8 +441,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/gomodule/redigo v1.8.2 h1:H5XSIre1MB5NbPYFp+i1NBbb5qN1W8Y8YAQoAYbkm8k= github.com/gomodule/redigo v1.8.2/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= -github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -557,6 +552,7 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= @@ -737,12 +733,13 @@ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDf github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U= +github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -750,6 +747,7 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= +github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -758,7 +756,7 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.6/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/statsd_exporter v0.15.0 h1:UiwC1L5HkxEPeapXdm2Ye0u1vUJfTj7uwT5yydYpa1E= github.com/prometheus/statsd_exporter v0.15.0/go.mod h1:Dv8HnkoLQkeEjkIE4/2ndAA7WL1zHKK7WMqFQqu72rw= @@ -841,6 +839,7 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.1.1/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= @@ -861,7 +860,7 @@ github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2 h1:rcji4q9wMuSrz0tZt3kg github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2/go.mod h1:ygrT4B9ZSb27dx3uTnobX5nOFDnutBL6iWKLH4+KpA0= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= -github.com/uber/jaeger-client-go v2.20.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-client-go v2.25.0+incompatible h1:IxcNZ7WRY1Y3G4poYlx24szfsn/3LvK9QHCq9oQw8+U= github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -1029,6 +1028,7 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1093,6 +1093,7 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 h1:ogLJMz+qpzav7lGMh10LMvAkM/fAoGlaiiHYiFYdm80= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1166,6 +1167,7 @@ golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4 h1:kDtqNkeBrZb8B+atrj50B5XLHpzXXqcCdZPP/ApQ5NY= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1183,6 +1185,7 @@ google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsb google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.29.0 h1:BaiDisFir8O4IJxvAabCGGkQ6yCJegNQqSVoYUNAnbk= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1214,6 +1217,7 @@ google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940 h1:MRHtG0U6SnaUb+s+LhNE1qt1FQ1wlhqr5E4usBKC0uA= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1229,8 +1233,7 @@ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1287,6 +1290,7 @@ gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c h1:grhR+C34yXImVGp7EzNk+DTIk+323eIUWOmEevy6bDo= gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From d7978e0ee5ba3e20a72015f5f3fed28e19884ebd Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Thu, 13 Aug 2020 10:19:04 +0200 Subject: [PATCH 247/346] update ocis-reva with reva@master --- go.mod | 2 +- go.sum | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 2580c91cae..f10bdb7175 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7 + github.com/cs3org/reva v1.1.1-0.20200812182703-f3251947b9a8 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 diff --git a/go.sum b/go.sum index e16948840e..d673b58809 100644 --- a/go.sum +++ b/go.sum @@ -95,6 +95,7 @@ github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.33.19 h1:SMna0QLInNqm+nNL9tb7OVWTqSfNYSxrCa2adnyVth4= github.com/aws/aws-sdk-go v1.33.19/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.34.2/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= @@ -108,6 +109,7 @@ github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+Wji github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.2/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= +github.com/c-bata/go-prompt v0.2.3/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -117,6 +119,7 @@ github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tj github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/cheggaaa/pb v1.0.28/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -163,6 +166,8 @@ github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd h1:uMaudkC7znaiI github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7 h1:q2lDRDnDsjNPSt3iRMtoeSETCTi0d1LmkY89aFGZyBQ= github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7/go.mod h1:fBzTrNuAKdQ62ybjpdu8nyhBin90/3/3s6DGQDCdBp4= +github.com/cs3org/reva v1.1.1-0.20200812182703-f3251947b9a8 h1:G8ulhHJhUhem7NO8vC9plJ2E2ZQnuLK1v2io7P08YhI= +github.com/cs3org/reva v1.1.1-0.20200812182703-f3251947b9a8/go.mod h1:XpslyNQPPVszKD6D8bel1KicZ+/ZhKyp3q+pnLjLtJQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= @@ -192,6 +197,7 @@ github.com/eventials/go-tus v0.0.0-20200718001131-45c7ec8f5d59 h1:t2+zxJPT/jq/YO github.com/eventials/go-tus v0.0.0-20200718001131-45c7ec8f5d59/go.mod h1:XYuK1S5+kS6FGhlIUFuZFPvWiSrOIoLk6+ro33Xce3Y= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= @@ -592,8 +598,11 @@ github.com/marten-seemann/qpack v0.1.0/go.mod h1:LFt1NU/Ptjip0C2CPkhimBz5CGE3WGD github.com/marten-seemann/qtls v0.3.2/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= github.com/marten-seemann/qtls v0.4.1/go.mod h1:pxVXcHHw1pNIt8Qo0pwSYQEoZ8yYOOPXTCZLQQunvRc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -724,6 +733,7 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= +github.com/pkg/term v0.0.0-20200520122047-c3ffed290a03/go.mod h1:Z9+Ul5bCbBKnbCvdOWbLqTHhJiYV414CURZJba6L8qA= github.com/pkg/xattr v0.4.1/go.mod h1:W2cGD0TBEus7MkUgv0tNZ9JutLtVO3cXu+IBRuHqnFs= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= @@ -1059,6 +1069,7 @@ golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1079,6 +1090,7 @@ golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191105231009-c1f44814a5cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191113165036-4c7a9d0fe056/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= From aec920b36438a7e631de353d73973e1cd3ec23ca Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 13 Aug 2020 17:28:49 +0200 Subject: [PATCH 248/346] Update reva to v1.1.1-0.20200813152025-baea1c67fb87 --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index f10bdb7175..982285f373 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v1.1.1-0.20200812182703-f3251947b9a8 + github.com/cs3org/reva v1.1.1-0.20200813152025-baea1c67fb87 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 diff --git a/go.sum b/go.sum index d673b58809..ff6c2934fd 100644 --- a/go.sum +++ b/go.sum @@ -168,6 +168,8 @@ github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7 h1:q2lDRDnDsjNPSt3iR github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7/go.mod h1:fBzTrNuAKdQ62ybjpdu8nyhBin90/3/3s6DGQDCdBp4= github.com/cs3org/reva v1.1.1-0.20200812182703-f3251947b9a8 h1:G8ulhHJhUhem7NO8vC9plJ2E2ZQnuLK1v2io7P08YhI= github.com/cs3org/reva v1.1.1-0.20200812182703-f3251947b9a8/go.mod h1:XpslyNQPPVszKD6D8bel1KicZ+/ZhKyp3q+pnLjLtJQ= +github.com/cs3org/reva v1.1.1-0.20200813152025-baea1c67fb87 h1:AyAaCG63fGjLrFi0fx5MgAaFokkV1oHj3WPGdhdLaYk= +github.com/cs3org/reva v1.1.1-0.20200813152025-baea1c67fb87/go.mod h1:XpslyNQPPVszKD6D8bel1KicZ+/ZhKyp3q+pnLjLtJQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= From b1b712a70339065d31f2dd3ba0e71f7c4936c01c Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 13 Aug 2020 21:40:01 +0545 Subject: [PATCH 249/346] Adjust expected results of apiShareManagementBasic-createShare.feature:88 to match cs3org/reva --- ...apiShareManagementBasic-createShare.feature | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature index a4b6a73e74..729b53387e 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature @@ -101,17 +101,17 @@ Feature: sharing And user "Alice" has shared folder "/folder1/folder2" with user "Emily" When user "Alice" sends HTTP method "GET" to OCS API endpoint "/apps/files_sharing/api/v1/shares" Then the OCS status code should be "" - And the HTTP status code should be "" - # On OCIS and reva the response is currently not there -# And the response should contain 4 entries -# And folder "/folder1" should be included as path in the response -# And folder "/folder1/folder2" should be included as path in the response + And the HTTP status code should be "200" + And the response should contain 4 entries + And folder "/folder1" should be included as path in the response + # And folder "/folder1/folder2" should be included as path in the response + And folder "/folder2" should be included as path in the response And user "Alice" sends HTTP method "GET" to OCS API endpoint "/apps/files_sharing/api/v1/shares?path=/folder1/folder2" And the response should contain 2 entries And folder "/folder1" should not be included as path in the response + # And folder "/folder1/folder2" should be included as path in the response And folder "/folder2" should be included as path in the response -# And folder "/folder1/folder2" should be included as path in the response Examples: - | ocs_api_version | http_status_code | ocs_status_code | - | 1 | 200 | 996 | - | 2 | 500 | 996 | + | ocs_api_version | ocs_status_code | + | 1 | 100 | + | 2 | 200 | From f52589257addad8626720e81a38ba041f3e7ea6f Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Sat, 15 Aug 2020 12:00:02 +0545 Subject: [PATCH 250/346] Bump core commit for API tests 2020-08-15 --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 639a9d5869..a9bb5b1f0b 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': 'f0fd17a01c69c7c5b518d3209afe8f3e4feac1ef', + 'coreCommit': '33c64ea3d56ec20e5d0cbc0f745ed2c04589b7f8', 'numberOfParts': 2 } } From bddb13989fda8e20bfda264c4256225e1bb53c84 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Mon, 17 Aug 2020 03:22:42 +0000 Subject: [PATCH 251/346] Automated changelog update [skip ci] --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25796b58f0..90bb76da5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ The following sections list the changes in ocis-reva unreleased. ## Summary * Bugfix - Update LDAP filters: [#399](https://github.com/owncloud/ocis-reva/pull/399) +* Change - Environment updates for the username userid split: [#420](https://github.com/owncloud/ocis-reva/pull/420) * Enhancement - Update storage documentation: [#384](https://github.com/owncloud/ocis-reva/pull/384) * Enhancement - Update reva to v0.1.1-0.20200724135750-b46288b375d6: [#399](https://github.com/owncloud/ocis-reva/pull/399) * Enhancement - Update reva to v0.1.1-0.20200728071211-c948977dd3a0: [#407](https://github.com/owncloud/ocis-reva/pull/407) @@ -31,6 +32,17 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/cs3org/reva/pull/996 +* Change - Environment updates for the username userid split: [#420](https://github.com/owncloud/ocis-reva/pull/420) + + We updated the owncloud storage driver in reva to properly look up users by userid or username + using the userprovider instead of taking the path segment as is. This requires the user service + address as well as changing the default layout to the userid instead of the username. The latter + is not considered a stable and persistent identifier. + + https://github.com/owncloud/ocis-reva/pull/420 + https://github.com/cs3org/reva/pull/1033 + + * Enhancement - Update storage documentation: [#384](https://github.com/owncloud/ocis-reva/pull/384) We added details to the documentation about storage requirements known from ownCloud 10, the From e5e3aa732c01fe4de86562ac289de35c1ecdb771 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 17 Aug 2020 16:39:06 +0200 Subject: [PATCH 252/346] Prepare release 0.12.0 --- changelog/{unreleased => 0.12.0_2020-08-17}/update-docs.md | 0 changelog/{unreleased => 0.12.0_2020-08-17}/update-ldap-config.md | 0 .../{unreleased => 0.12.0_2020-08-17}/update-reva-to-20200724.md | 0 .../{unreleased => 0.12.0_2020-08-17}/update-reva-to-20200728.md | 0 .../updates-for-username-userid-split.md | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.12.0_2020-08-17}/update-docs.md (100%) rename changelog/{unreleased => 0.12.0_2020-08-17}/update-ldap-config.md (100%) rename changelog/{unreleased => 0.12.0_2020-08-17}/update-reva-to-20200724.md (100%) rename changelog/{unreleased => 0.12.0_2020-08-17}/update-reva-to-20200728.md (100%) rename changelog/{unreleased => 0.12.0_2020-08-17}/updates-for-username-userid-split.md (100%) diff --git a/changelog/unreleased/update-docs.md b/changelog/0.12.0_2020-08-17/update-docs.md similarity index 100% rename from changelog/unreleased/update-docs.md rename to changelog/0.12.0_2020-08-17/update-docs.md diff --git a/changelog/unreleased/update-ldap-config.md b/changelog/0.12.0_2020-08-17/update-ldap-config.md similarity index 100% rename from changelog/unreleased/update-ldap-config.md rename to changelog/0.12.0_2020-08-17/update-ldap-config.md diff --git a/changelog/unreleased/update-reva-to-20200724.md b/changelog/0.12.0_2020-08-17/update-reva-to-20200724.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200724.md rename to changelog/0.12.0_2020-08-17/update-reva-to-20200724.md diff --git a/changelog/unreleased/update-reva-to-20200728.md b/changelog/0.12.0_2020-08-17/update-reva-to-20200728.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200728.md rename to changelog/0.12.0_2020-08-17/update-reva-to-20200728.md diff --git a/changelog/unreleased/updates-for-username-userid-split.md b/changelog/0.12.0_2020-08-17/updates-for-username-userid-split.md similarity index 100% rename from changelog/unreleased/updates-for-username-userid-split.md rename to changelog/0.12.0_2020-08-17/updates-for-username-userid-split.md From 55fccdb00eb6b25d755f4ac0cc5de653f759f8f9 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 17 Aug 2020 15:19:09 +0000 Subject: [PATCH 253/346] Automated changelog update [skip ci] --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90bb76da5a..e5b91e43af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.12.0] (2020-08-17) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.12.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.11.0...master +[0.12.0]: https://github.com/owncloud/ocis-reva/compare/v0.11.0...v0.12.0 ## Summary From 719c96c5b323b0b30856cbdbb353dec5a73a8c66 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 17 Aug 2020 20:36:05 +0545 Subject: [PATCH 254/346] Implement separate expected-failures files for OC and EOS storage --- .drone.star | 2 +- docs/testing.md | 5 +- ...t => expected-failures-on-EOS-storage.txt} | 3 + .../expected-failures-on-OC-storage.txt | 916 ++++++++++++++++++ 4 files changed, 923 insertions(+), 3 deletions(-) rename tests/acceptance/{expected-failures.txt => expected-failures-on-EOS-storage.txt} (99%) create mode 100644 tests/acceptance/expected-failures-on-OC-storage.txt diff --git a/.drone.star b/.drone.star index a9bb5b1f0b..13e645fe60 100644 --- a/.drone.star +++ b/.drone.star @@ -122,7 +122,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~@preview-extension-required', 'DIVIDE_INTO_NUM_PARTS': number_of_parts, 'RUN_PART': part_number, - 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures.txt' + 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures-on-OC-storage.txt' }, 'commands': [ 'cd /srv/app/testrunner', diff --git a/docs/testing.md b/docs/testing.md index 58d96bd3e8..2c03fd2a18 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -97,8 +97,9 @@ To run a single test add `BEHAT_FEATURE=` and specify the path to ### use existing tests for BDD As a lot of scenarios are written for oC10, we can use those tests for Behaviour driven development in ocis. -Every scenario that does not work in OCIS, is listed in `tests/acceptance/expected-failures.txt` with a link to the related issue. -Those scenarios are run in the ordinary acceptance test pipeline in CI. The sccenarios that fail are checked against the +Every scenario that does not work in OCIS with OC storage, is listed in `tests/acceptance/expected-failures-on-OC-storage.txt` with a link to the related issue. +Similarly, scenarios that do not work in OCIS with EOS storage are listed in `tests/acceptance/expected-failures-on-EOS-storage.txt`. +Scenarios from the oC10 API acceptance tests are run in the ordinary acceptance test pipeline in CI. The scenarios that fail are checked against the expected failures. If there are any differences then the CI pipeline fails. Additionally, some issues have scenarios that demonstrate the current buggy behaviour in ocis(reva). diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures-on-EOS-storage.txt similarity index 99% rename from tests/acceptance/expected-failures.txt rename to tests/acceptance/expected-failures-on-EOS-storage.txt index 50b6d0bb1e..20eac85c40 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures-on-EOS-storage.txt @@ -1,4 +1,7 @@ # this file contains the scenarios from ownCloud10 core API tests that are currently expected to fail +# when run with EOS storage +# +# ToDo: enable testing with EOS in CI and adjust this list to match what actually fails # # test scenarios that fail with OC storage (that were tagged skipOnOcis-OC-Storage in core) # diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt new file mode 100644 index 0000000000..39f1fad1e3 --- /dev/null +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -0,0 +1,916 @@ +# this file contains the scenarios from ownCloud10 core API tests that are currently expected to fail +# when run with OC storage +# +# test scenarios that specifically fail with OC storage (that were tagged skipOnOcis-OC-Storage in core) +# +apiShareManagementBasic/createShare.feature:336 +apiShareManagementBasic/createShare.feature:357 +apiShareManagementBasic/createShare.feature:478 +apiShareManagementBasic/createShare.feature:493 +apiShareManagementBasic/createShare.feature:508 +apiShareOperations/gettingShares.feature:155 +apiShareOperations/gettingShares.feature:156 +apiSharePublicLink2/multilinkSharing.feature:181 +apiWebdavProperties1/setFileProperties.feature:32 +apiWebdavProperties1/setFileProperties.feature:33 +# +# https://github.com/owncloud/ocis-reva/issues/196 Checksum feature +apiMain/checksums.feature:24 +apiMain/checksums.feature:25 +apiMain/checksums.feature:35 +apiMain/checksums.feature:36 +apiMain/checksums.feature:46 +apiMain/checksums.feature:47 +apiMain/checksums.feature:50 +apiMain/checksums.feature:58 +apiMain/checksums.feature:67 +apiMain/checksums.feature:99 +apiMain/checksums.feature:100 +apiMain/checksums.feature:103 +apiMain/checksums.feature:110 +apiMain/checksums.feature:119 +apiMain/checksums.feature:129 +apiMain/checksums.feature:138 +apiMain/checksums.feature:147 +apiMain/checksums.feature:158 +apiMain/checksums.feature:174 +apiMain/checksums.feature:192 +apiMain/checksums.feature:217 +apiMain/checksums.feature:218 +apiMain/checksums.feature:239 +apiMain/checksums.feature:240 +apiMain/checksums.feature:258 +apiMain/checksums.feature:279 +apiMain/checksums.feature:280 +apiMain/checksums.feature:295 +apiMain/checksums.feature:296 +apiMain/checksums.feature:308 +apiMain/checksums.feature:309 +apiMain/checksums.feature:312 +apiMain/checksums.feature:324 +# +# https://github.com/owncloud/ocis-reva/issues/100 no robots.txt available +apiMain/main.feature:5 +# +# https://github.com/owncloud/ocis-reva/issues/101 quota query +apiMain/quota.feature:9 +apiMain/quota.feature:16 +apiMain/quota.feature:23 +apiMain/quota.feature:30 +apiMain/quota.feature:41 +apiMain/quota.feature:54 +apiMain/quota.feature:68 +apiMain/quota.feature:82 +apiMain/quota.feature:99 +apiMain/quota.feature:112 +# +# https://github.com/owncloud/ocis-reva/issues/65 There is no such thing like a "super-user" +# https://github.com/owncloud/ocis-reva/issues/97 no command equivalent to occ +apiMain/status.feature:5 +# +# https://github.com/owncloud/ocis-reva/issues/29 ocs config endpoint only accessible by authorized users +# https://github.com/owncloud/ocis-reva/issues/30 HTTP 401 Unauthorized responses don't contain a body +apiAuthOcs/ocsDELETEAuth.feature:9 +apiAuthOcs/ocsGETAuth.feature:10 +apiAuthOcs/ocsGETAuth.feature:33 +apiAuthOcs/ocsGETAuth.feature:53 +apiAuthOcs/ocsGETAuth.feature:88 +apiAuthOcs/ocsGETAuth.feature:121 +apiAuthOcs/ocsGETAuth.feature:139 +apiAuthOcs/ocsPOSTAuth.feature:10 +apiAuthOcs/ocsPUTAuth.feature:10 +# +# https://github.com/owncloud/ocis-reva/issues/13 server returns 500 when trying to access a not existing file +apiAuthWebDav/webDavDELETEAuth.feature:36 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API +apiAuthWebDav/webDavLOCKAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API +apiAuthWebDav/webDavMKCOLAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiAuthWebDav/webDavMOVEAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/179 send POST requests to another user's webDav endpoints as normal user +apiAuthWebDav/webDavPOSTAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API +apiAuthWebDav/webDavPROPFINDAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API +apiAuthWebDav/webDavPROPPATCHAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API +apiAuthWebDav/webDavPUTAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/175 Default capabilities for normal user not same as in oC-core +# https://github.com/owncloud/ocis-reva/issues/176 Difference in response content of status.php and default capabilities +apiCapabilities/capabilitiesWithNormalUser.feature:11 +# +# https://github.com/owncloud/ocis-reva/issues/39 REPORT request not implemented +apiFavorites/favorites.feature:228 +apiFavorites/favorites.feature:229 +# +# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist +apiSharees/sharees.feature:32 +apiSharees/sharees.feature:33 +apiSharees/sharees.feature:53 +apiSharees/sharees.feature:54 +apiSharees/sharees.feature:74 +apiSharees/sharees.feature:75 +apiSharees/sharees.feature:98 +apiSharees/sharees.feature:99 +apiSharees/sharees.feature:118 +apiSharees/sharees.feature:119 +apiSharees/sharees.feature:137 +apiSharees/sharees.feature:138 +apiSharees/sharees.feature:157 +apiSharees/sharees.feature:158 +apiSharees/sharees.feature:177 +apiSharees/sharees.feature:178 +apiSharees/sharees.feature:198 +apiSharees/sharees.feature:199 +apiSharees/sharees.feature:217 +apiSharees/sharees.feature:218 +apiSharees/sharees.feature:237 +apiSharees/sharees.feature:238 +apiSharees/sharees.feature:257 +apiSharees/sharees.feature:258 +apiSharees/sharees.feature:277 +apiSharees/sharees.feature:278 +apiSharees/sharees.feature:297 +apiSharees/sharees.feature:298 +apiSharees/sharees.feature:317 +apiSharees/sharees.feature:318 +apiSharees/sharees.feature:336 +apiSharees/sharees.feature:337 +apiSharees/sharees.feature:355 +apiSharees/sharees.feature:356 +apiSharees/sharees.feature:374 +apiSharees/sharees.feature:375 +apiSharees/sharees.feature:393 +apiSharees/sharees.feature:394 +apiSharees/sharees.feature:412 +apiSharees/sharees.feature:413 +apiSharees/sharees.feature:430 +apiSharees/sharees.feature:431 +apiSharees/sharees.feature:450 +apiSharees/sharees.feature:451 +apiSharees/sharees.feature:475 +apiSharees/sharees.feature:476 +apiSharees/sharees.feature:495 +apiSharees/sharees.feature:496 +apiSharees/sharees.feature:515 +apiSharees/sharees.feature:516 +apiSharees/sharees.feature:537 +apiSharees/sharees.feature:538 +# +# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist +apiShareManagementBasic/createShare.feature:169 +apiShareManagementBasic/createShare.feature:170 +apiShareManagementBasic/createShare.feature:194 +apiShareManagementBasic/createShare.feature:195 +apiShareManagementBasic/createShare.feature:417 +apiShareManagementBasic/createShare.feature:418 +# +# https://github.com/owncloud/ocis-reva/issues/243 Sharing seems to work but does not work +# https://github.com/owncloud/ocis-reva/issues/372 Listing shares via ocs API does not show path for parent folders +apiShareManagementBasic/createShare.feature:269 +apiShareManagementBasic/createShare.feature:270 +# +# https://github.com/owncloud/ocis-reva/issues/356 Fields missing in delete share OCS response +apiShareManagementBasic/deleteShare.feature:36 +apiShareManagementBasic/deleteShare.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/260 Sharee retrieves the information about a share -but gets response containing all the shares +apiShareOperations/accessToShare.feature:48 +apiShareOperations/accessToShare.feature:49 +# +# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist +# https://github.com/owncloud/ocis-reva/issues/194 Group shares support +apiShareOperations/accessToShare.feature:63 +apiShareOperations/accessToShare.feature:64 +# +# https://github.com/owncloud/ocis-reva/issues/262 Shares are not deleted when user is deleted +apiShareOperations/gettingShares.feature:21 +apiShareOperations/gettingShares.feature:22 +# +# https://github.com/owncloud/ocis-reva/issues/65 There is no such thing like a "super-user" +apiShareOperations/gettingShares.feature:34 +apiShareOperations/gettingShares.feature:35 +# +# https://github.com/owncloud/ocis-reva/issues/357 Delete shares from user when user is deleted +# https://github.com/owncloud/ocis-reva/issues/301 no displayname_owner shown when creating a share +# https://github.com/owncloud/ocis-reva/issues/302 when sharing a file mime-type field is set to application/octet-stream +apiShareOperations/gettingShares.feature:124 +apiShareOperations/gettingShares.feature:125 +# +# https://github.com/owncloud/ocis-reva/issues/374 OCS error message for attempting to access share via share id as an unauthorized user is not informative +apiShareOperations/gettingShares.feature:168 +apiShareOperations/gettingShares.feature:169 +# +# https://github.com/owncloud/ocis-reva/issues/194 Group shares support +apiShareOperations/gettingShares.feature:172 +# +# https://github.com/owncloud/ocis-reva/issues/372 Listing shares via ocs API does not show path for parent folders +apiShareOperations/gettingShares.feature:204 +apiShareOperations/gettingShares.feature:205 +# +# https://github.com/owncloud/ocis-reva/issues/47 cannot get ocs:share-permissions via WebDAV +apiShareOperations/getWebDAVSharePermissions.feature:21 +apiShareOperations/getWebDAVSharePermissions.feature:22 +apiShareOperations/getWebDAVSharePermissions.feature:134 +apiShareOperations/getWebDAVSharePermissions.feature:135 +# +# https://github.com/owncloud/ocis-reva/issues/282 Split old public API webdav tests from new public webdav tests +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink1/accessToPublicLinkShare.feature:10 +apiSharePublicLink1/accessToPublicLinkShare.feature:20 +apiSharePublicLink1/accessToPublicLinkShare.feature:30 +apiSharePublicLink1/accessToPublicLinkShare.feature:43 +apiSharePublicLink1/changingPublicLinkShare.feature:22 +apiSharePublicLink1/changingPublicLinkShare.feature:23 +apiSharePublicLink1/changingPublicLinkShare.feature:37 +apiSharePublicLink1/changingPublicLinkShare.feature:41 +apiSharePublicLink1/changingPublicLinkShare.feature:52 +apiSharePublicLink1/changingPublicLinkShare.feature:63 +apiSharePublicLink1/changingPublicLinkShare.feature:85 +apiSharePublicLink1/changingPublicLinkShare.feature:96 +apiSharePublicLink1/changingPublicLinkShare.feature:107 +apiSharePublicLink1/changingPublicLinkShare.feature:151 +apiSharePublicLink1/changingPublicLinkShare.feature:197 +apiSharePublicLink1/changingPublicLinkShare.feature:244 +apiSharePublicLink1/changingPublicLinkShare.feature:267 +apiSharePublicLink1/changingPublicLinkShare.feature:278 +apiSharePublicLink1/changingPublicLinkShare.feature:289 +apiSharePublicLink1/changingPublicLinkShare.feature:300 +apiSharePublicLink1/createPublicLinkShare.feature:34 +apiSharePublicLink1/createPublicLinkShare.feature:35 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file +apiSharePublicLink1/createPublicLinkShare.feature:63 +apiSharePublicLink1/createPublicLinkShare.feature:64 +# +apiSharePublicLink1/createPublicLinkShare.feature:95 +apiSharePublicLink1/createPublicLinkShare.feature:96 +# +# https://github.com/owncloud/ocis-reva/issues/199 Ability to return error messages in Webdav response bodies +apiSharePublicLink1/createPublicLinkShare.feature:127 +apiSharePublicLink1/createPublicLinkShare.feature:128 +# +apiSharePublicLink1/createPublicLinkShare.feature:155 +apiSharePublicLink1/createPublicLinkShare.feature:156 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink1/createPublicLinkShare.feature:183 +apiSharePublicLink1/createPublicLinkShare.feature:184 +# +apiSharePublicLink1/createPublicLinkShare.feature:214 +apiSharePublicLink1/createPublicLinkShare.feature:215 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file +apiSharePublicLink1/createPublicLinkShare.feature:245 +apiSharePublicLink1/createPublicLinkShare.feature:246 +# +apiSharePublicLink1/createPublicLinkShare.feature:276 +apiSharePublicLink1/createPublicLinkShare.feature:277 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink1/createPublicLinkShare.feature:307 +apiSharePublicLink1/createPublicLinkShare.feature:308 +# +apiSharePublicLink1/createPublicLinkShare.feature:370 +apiSharePublicLink1/createPublicLinkShare.feature:371 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:389 +apiSharePublicLink1/createPublicLinkShare.feature:390 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:411 +apiSharePublicLink1/createPublicLinkShare.feature:413 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:435 +apiSharePublicLink1/createPublicLinkShare.feature:437 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:461 +apiSharePublicLink1/createPublicLinkShare.feature:463 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:487 +apiSharePublicLink1/createPublicLinkShare.feature:489 +apiSharePublicLink1/createPublicLinkShare.feature:491 +apiSharePublicLink1/createPublicLinkShare.feature:493 +apiSharePublicLink1/createPublicLinkShare.feature:495 +apiSharePublicLink1/createPublicLinkShare.feature:497 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:518 +apiSharePublicLink1/createPublicLinkShare.feature:519 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:534 +apiSharePublicLink1/createPublicLinkShare.feature:535 +# +apiSharePublicLink1/createPublicLinkShare.feature:553 +apiSharePublicLink1/createPublicLinkShare.feature:554 +# +apiSharePublicLink1/createPublicLinkShare.feature:590 +apiSharePublicLink1/createPublicLinkShare.feature:591 +# +# https://github.com/owncloud/ocis-reva/issues/283 Prevent creating public share for the home root folder +apiSharePublicLink1/createPublicLinkShare.feature:620 +apiSharePublicLink1/createPublicLinkShare.feature:621 +# +apiSharePublicLink1/createPublicLinkShare.feature:634 +apiSharePublicLink1/createPublicLinkShare.feature:635 +# +apiSharePublicLink1/createPublicLinkShare.feature:663 +apiSharePublicLink1/createPublicLinkShare.feature:664 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:714 +apiSharePublicLink1/createPublicLinkShare.feature:715 +# +# https://github.com/owncloud/ocis-reva/issues/199 Ability to return error messages in Webdav response bodies +apiSharePublicLink1/createPublicLinkShare.feature:718 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink1/createPublicLinkShare.feature:727 +# +# https://github.com/owncloud/core/issues/37605 Public cannot upload file with mtime set on a public link share with new version of WebDAV API +apiSharePublicLink1/createPublicLinkShare.feature:779 +# +# https://github.com/owncloud/core/issues/37605 Public cannot upload file with mtime set on a public link share with new version of WebDAV API +apiSharePublicLink1/createPublicLinkShare.feature:793 +# +# https://github.com/owncloud/ocis-reva/issues/311 Deleting a public link after renaming a file +apiSharePublicLink1/deletePublicLinkShare.feature:37 +apiSharePublicLink1/deletePublicLinkShare.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/373 copying a folder within a public link folder to folder with same name as an already existing file overwrites the parent file +apiSharePublicLink2/copyFromPublicLink.feature:60 +# +# https://github.com/owncloud/ocis-reva/issues/368 copying a file from within a public link folder to "/" overwrites the parent folder +apiSharePublicLink2/copyFromPublicLink.feature:167 +apiSharePublicLink2/copyFromPublicLink.feature:168 +# +# https://github.com/owncloud/ocis-reva/issues/368 copying a file from within a public link folder to "/" overwrites the parent folder +apiSharePublicLink2/copyFromPublicLink.feature:183 +apiSharePublicLink2/copyFromPublicLink.feature:184 +# +apiSharePublicLink2/updatePublicLinkShare.feature:94 +apiSharePublicLink2/updatePublicLinkShare.feature:95 +# +apiSharePublicLink2/updatePublicLinkShare.feature:285 +apiSharePublicLink2/updatePublicLinkShare.feature:286 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiSharePublicLink2/updatePublicLinkShare.feature:304 +apiSharePublicLink2/updatePublicLinkShare.feature:305 +# +apiSharePublicLink2/updatePublicLinkShare.feature:323 +apiSharePublicLink2/updatePublicLinkShare.feature:324 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiSharePublicLink2/updatePublicLinkShare.feature:342 +apiSharePublicLink2/updatePublicLinkShare.feature:343 +# +apiSharePublicLink2/updatePublicLinkShare.feature:361 +apiSharePublicLink2/updatePublicLinkShare.feature:362 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiSharePublicLink2/updatePublicLinkShare.feature:380 +apiSharePublicLink2/updatePublicLinkShare.feature:381 +# +apiSharePublicLink2/updatePublicLinkShare.feature:399 +apiSharePublicLink2/updatePublicLinkShare.feature:400 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiSharePublicLink2/updatePublicLinkShare.feature:418 +apiSharePublicLink2/updatePublicLinkShare.feature:419 +# +apiSharePublicLink2/updatePublicLinkShare.feature:440 +apiSharePublicLink2/updatePublicLinkShare.feature:441 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink2/updatePublicLinkShare.feature:462 +apiSharePublicLink2/updatePublicLinkShare.feature:463 +# +apiSharePublicLink2/updatePublicLinkShare.feature:487 +apiSharePublicLink2/updatePublicLinkShare.feature:488 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:9 +# +# https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file +apiSharePublicLink2/uploadToPublicLinkShare.feature:23 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:48 +apiSharePublicLink2/uploadToPublicLinkShare.feature:49 +# +# https://github.com/owncloud/ocis-reva/issues/290 Accessing non-existing public link should return 404, not 500 +apiSharePublicLink2/uploadToPublicLinkShare.feature:62 +apiSharePublicLink2/uploadToPublicLinkShare.feature:63 +# +# https://github.com/owncloud/ocis-reva/issues/290 Accessing non-existing public link should return 404, not 500 +apiSharePublicLink2/uploadToPublicLinkShare.feature:66 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink2/uploadToPublicLinkShare.feature:74 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:83 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:103 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:121 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:139 +# +# https://github.com/owncloud/ocis-reva/issues/195 Set quota over settings +apiSharePublicLink2/uploadToPublicLinkShare.feature:148 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:158 +# +# https://github.com/owncloud/ocis-reva/issues/195 Set quota over settings +apiSharePublicLink2/uploadToPublicLinkShare.feature:167 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:177 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink2/uploadToPublicLinkShare.feature:186 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:196 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink2/uploadToPublicLinkShare.feature:206 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:217 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink2/uploadToPublicLinkShare.feature:227 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:238 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:255 +# +# https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file +apiSharePublicLink2/uploadToPublicLinkShare.feature:273 +# +# https://github.com/owncloud/ocis-reva/issues/17 uploading with old-chunking does not work +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiVersions/fileVersions.feature:15 +apiVersions/fileVersions.feature:23 +apiVersions/fileVersions.feature:36 +apiVersions/fileVersions.feature:45 +apiVersions/fileVersions.feature:88 +apiVersions/fileVersions.feature:89 +apiVersions/fileVersions.feature:93 +apiVersions/fileVersions.feature:104 +apiVersions/fileVersions.feature:288 +apiVersions/fileVersions.feature:362 +apiVersions/fileVersions.feature:373 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFileAsync.feature:26 +apiWebdavMove1/moveFileAsync.feature:27 +apiWebdavMove1/moveFileAsync.feature:28 +apiWebdavMove1/moveFileAsync.feature:29 +apiWebdavMove1/moveFileAsync.feature:30 +apiWebdavMove1/moveFileAsync.feature:31 +apiWebdavMove1/moveFileAsync.feature:33 +apiWebdavMove1/moveFileAsync.feature:46 +apiWebdavMove1/moveFileAsync.feature:59 +apiWebdavMove1/moveFileAsync.feature:73 +apiWebdavMove1/moveFileAsync.feature:88 +apiWebdavMove1/moveFileAsync.feature:107 +apiWebdavMove1/moveFileAsync.feature:125 +apiWebdavMove1/moveFileAsync.feature:135 +apiWebdavMove1/moveFileAsync.feature:141 +apiWebdavMove1/moveFileAsync.feature:156 +apiWebdavMove1/moveFileAsync.feature:173 +apiWebdavMove1/moveFileAsync.feature:174 +apiWebdavMove1/moveFileAsync.feature:184 +apiWebdavMove1/moveFileAsync.feature:185 +apiWebdavMove1/moveFileAsync.feature:204 +apiWebdavMove1/moveFileAsync.feature:205 +apiWebdavMove1/moveFileAsync.feature:224 +apiWebdavMove1/moveFileAsync.feature:225 +apiWebdavMove1/moveFileAsync.feature:234 +apiWebdavMove1/moveFileAsync.feature:235 +apiWebdavMove1/moveFileAsync.feature:240 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:12 +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:18 +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:26 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:12 +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:19 +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:27 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFolder.feature:21 +apiWebdavMove1/moveFolder.feature:22 +apiWebdavMove1/moveFolder.feature:34 +apiWebdavMove1/moveFolder.feature:35 +apiWebdavMove1/moveFolder.feature:47 +apiWebdavMove1/moveFolder.feature:48 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFolderToBlacklistedName.feature:21 +apiWebdavMove1/moveFolderToBlacklistedName.feature:22 +apiWebdavMove1/moveFolderToBlacklistedName.feature:35 +apiWebdavMove1/moveFolderToBlacklistedName.feature:36 +apiWebdavMove1/moveFolderToBlacklistedName.feature:70 +apiWebdavMove1/moveFolderToBlacklistedName.feature:71 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFolderToExcludedDirectory.feature:21 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:22 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:34 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:35 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:70 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:71 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove2/moveFile.feature:89 +apiWebdavMove2/moveFile.feature:90 +apiWebdavMove2/moveFile.feature:91 +apiWebdavMove2/moveFile.feature:92 +apiWebdavMove2/moveFile.feature:112 +apiWebdavMove2/moveFile.feature:113 +apiWebdavMove2/moveFile.feature:136 +apiWebdavMove2/moveFile.feature:137 +apiWebdavMove2/moveFile.feature:138 +apiWebdavMove2/moveFile.feature:139 +apiWebdavMove2/moveFile.feature:160 +apiWebdavMove2/moveFile.feature:161 +apiWebdavMove2/moveFile.feature:181 +apiWebdavMove2/moveFile.feature:182 +apiWebdavMove2/moveFile.feature:200 +apiWebdavMove2/moveFile.feature:201 +apiWebdavMove2/moveFile.feature:219 +apiWebdavMove2/moveFile.feature:220 +apiWebdavMove2/moveFile.feature:255 +apiWebdavMove2/moveFile.feature:256 +apiWebdavMove2/moveFile.feature:272 +apiWebdavMove2/moveFile.feature:273 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove2/moveFileToBlacklistedName.feature:18 +apiWebdavMove2/moveFileToBlacklistedName.feature:19 +apiWebdavMove2/moveFileToBlacklistedName.feature:29 +apiWebdavMove2/moveFileToBlacklistedName.feature:30 +apiWebdavMove2/moveFileToBlacklistedName.feature:62 +apiWebdavMove2/moveFileToBlacklistedName.feature:63 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove2/moveFileToExcludedDirectory.feature:18 +apiWebdavMove2/moveFileToExcludedDirectory.feature:19 +apiWebdavMove2/moveFileToExcludedDirectory.feature:28 +apiWebdavMove2/moveFileToExcludedDirectory.feature:29 +apiWebdavMove2/moveFileToExcludedDirectory.feature:63 +apiWebdavMove2/moveFileToExcludedDirectory.feature:64 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavOperations/deleteFolder.feature:67 +apiWebdavOperations/deleteFolder.feature:68 +apiWebdavOperations/deleteFolder.feature:69 +apiWebdavOperations/deleteFolder.feature:70 +apiWebdavOperations/deleteFolder.feature:91 +apiWebdavOperations/deleteFolder.feature:92 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file +apiWebdavOperations/downloadFile.feature:29 +apiWebdavOperations/downloadFile.feature:30 +# +apiWebdavOperations/downloadFile.feature:72 +apiWebdavOperations/downloadFile.feature:73 +# +apiWebdavOperations/downloadFile.feature:84 +apiWebdavOperations/downloadFile.feature:85 +# +apiWebdavOperations/refuseAccess.feature:21 +apiWebdavOperations/refuseAccess.feature:22 +# +apiWebdavOperations/refuseAccess.feature:33 +apiWebdavOperations/refuseAccess.feature:34 +# +# https://github.com/owncloud/ocis-reva/issues/39 REPORT request not implemented +apiWebdavOperations/search.feature:42 +apiWebdavOperations/search.feature:43 +apiWebdavOperations/search.feature:57 +apiWebdavOperations/search.feature:58 +apiWebdavOperations/search.feature:74 +apiWebdavOperations/search.feature:75 +apiWebdavOperations/search.feature:83 +apiWebdavOperations/search.feature:84 +apiWebdavOperations/search.feature:101 +apiWebdavOperations/search.feature:102 +apiWebdavOperations/search.feature:119 +apiWebdavOperations/search.feature:120 +apiWebdavOperations/search.feature:138 +apiWebdavOperations/search.feature:139 +apiWebdavOperations/search.feature:165 +apiWebdavOperations/search.feature:166 +apiWebdavOperations/search.feature:191 +apiWebdavOperations/search.feature:192 +apiWebdavOperations/search.feature:210 +apiWebdavOperations/search.feature:211 +apiWebdavOperations/search.feature:213 +apiWebdavOperations/search.feature:229 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties1/copyFile.feature:65 +apiWebdavProperties1/copyFile.feature:66 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties1/copyFile.feature:85 +apiWebdavProperties1/copyFile.feature:86 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavProperties1/copyFile.feature:102 +apiWebdavProperties1/copyFile.feature:103 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:116 +apiWebdavProperties1/copyFile.feature:117 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:129 +apiWebdavProperties1/copyFile.feature:130 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:146 +apiWebdavProperties1/copyFile.feature:147 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:165 +apiWebdavProperties1/copyFile.feature:166 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:202 +apiWebdavProperties1/copyFile.feature:203 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:350 +apiWebdavProperties1/copyFile.feature:351 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:370 +apiWebdavProperties1/copyFile.feature:371 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:395 +apiWebdavProperties1/copyFile.feature:396 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:422 +apiWebdavProperties1/copyFile.feature:423 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:448 +apiWebdavProperties1/copyFile.feature:449 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:474 +apiWebdavProperties1/copyFile.feature:475 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavProperties1/createFolder.feature:71 +apiWebdavProperties1/createFolder.feature:72 +# +# https://github.com/owncloud/ocis-reva/issues/168 creating a folder that already exists returns an empty body +apiWebdavProperties1/createFolder.feature:85 +apiWebdavProperties1/createFolder.feature:86 +# +# https://github.com/owncloud/ocis-reva/issues/168 creating a folder that already exists returns an empty body +apiWebdavProperties1/createFolder.feature:99 +apiWebdavProperties1/createFolder.feature:100 +# +# https://github.com/owncloud/ocis-reva/issues/101 quota query +apiWebdavProperties1/getQuota.feature:17 +apiWebdavProperties1/getQuota.feature:18 +apiWebdavProperties1/getQuota.feature:27 +apiWebdavProperties1/getQuota.feature:28 +apiWebdavProperties1/getQuota.feature:48 +apiWebdavProperties1/getQuota.feature:49 +apiWebdavProperties1/getQuota.feature:61 +apiWebdavProperties1/getQuota.feature:62 +apiWebdavProperties1/getQuota.feature:77 +apiWebdavProperties1/getQuota.feature:78 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties1/setFileProperties.feature:63 +apiWebdavProperties1/setFileProperties.feature:64 +# +# https://github.com/owncloud/ocis-reva/issues/214 XML properties in webdav response not properly encoded +apiWebdavProperties2/getFileProperties.feature:37 +apiWebdavProperties2/getFileProperties.feature:39 +apiWebdavProperties2/getFileProperties.feature:40 +apiWebdavProperties2/getFileProperties.feature:41 +apiWebdavProperties2/getFileProperties.feature:43 +apiWebdavProperties2/getFileProperties.feature:44 +# +# https://github.com/owncloud/ocis-reva/issues/214 XML properties in webdav response not properly encoded +apiWebdavProperties2/getFileProperties.feature:59 +apiWebdavProperties2/getFileProperties.feature:60 +apiWebdavProperties2/getFileProperties.feature:61 +apiWebdavProperties2/getFileProperties.feature:63 +apiWebdavProperties2/getFileProperties.feature:64 +apiWebdavProperties2/getFileProperties.feature:66 +apiWebdavProperties2/getFileProperties.feature:67 +apiWebdavProperties2/getFileProperties.feature:68 +apiWebdavProperties2/getFileProperties.feature:70 +apiWebdavProperties2/getFileProperties.feature:71 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties2/getFileProperties.feature:135 +apiWebdavProperties2/getFileProperties.feature:136 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties2/getFileProperties.feature:156 +apiWebdavProperties2/getFileProperties.feature:157 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties2/getFileProperties.feature:174 +apiWebdavProperties2/getFileProperties.feature:175 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties2/getFileProperties.feature:206 +apiWebdavProperties2/getFileProperties.feature:207 +# +apiWebdavProperties2/getFileProperties.feature:218 +apiWebdavProperties2/getFileProperties.feature:219 +# +# https://github.com/owncloud/ocis-reva/issues/216 Private link support +apiWebdavProperties2/getFileProperties.feature:232 +apiWebdavProperties2/getFileProperties.feature:233 +# +# https://github.com/owncloud/ocis-reva/issues/163 trying to access a non-existing resource returns an empty body +apiWebdavProperties2/getFileProperties.feature:242 +apiWebdavProperties2/getFileProperties.feature:243 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:246 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:266 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:301 +apiWebdavProperties2/getFileProperties.feature:302 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:314 +apiWebdavProperties2/getFileProperties.feature:315 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:327 +apiWebdavProperties2/getFileProperties.feature:328 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:376 +apiWebdavProperties2/getFileProperties.feature:377 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:389 +apiWebdavProperties2/getFileProperties.feature:390 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:402 +apiWebdavProperties2/getFileProperties.feature:403 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:415 +apiWebdavProperties2/getFileProperties.feature:416 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:428 +apiWebdavProperties2/getFileProperties.feature:429 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:441 +apiWebdavProperties2/getFileProperties.feature:442 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:454 +apiWebdavProperties2/getFileProperties.feature:455 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavUpload1/uploadFile.feature:112 +apiWebdavUpload1/uploadFile.feature:113 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:31 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:48 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:65 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:83 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:92 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:106 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:143 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:144 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:146 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:159 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavUpload1/uploadFileToBlacklistedName.feature:19 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:20 +# +# https://github.com/owncloud/ocis-reva/issues/54 system configuration options missing +apiWebdavUpload1/uploadFileToBlacklistedName.feature:31 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:32 +# +# https://github.com/owncloud/ocis-reva/issues/54 system configuration options missing +apiWebdavUpload1/uploadFileToBlacklistedName.feature:65 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:66 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:23 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:47 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:48 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:49 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:52 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:20 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:21 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:33 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:34 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:69 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:70 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:24 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:49 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:50 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:51 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:54 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:21 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:45 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:46 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:47 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:50 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:20 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:37 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:38 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:39 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:42 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:22 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:47 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:48 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:49 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:52 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:21 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:39 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:40 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:41 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:44 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload2/uploadFileUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:29 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:43 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:57 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:79 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:85 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:94 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:98 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:106 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:135 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:136 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:137 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:157 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:158 +# +# https://github.com/owncloud/ocis-reva/issues/17 uploading with old-chunking does not work +apiWebdavUpload2/uploadFileUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:26 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:35 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:44 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:76 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:77 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:97 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:98 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:99 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:100 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:101 From 9fa18bf7eaf9cd9f4592407b67ec45deb7a92100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 19 Aug 2020 13:32:14 +0200 Subject: [PATCH 255/346] update reva to v1.1.1-0.20200819100654-dcbf0c8ea187 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .../unreleased/update-reva-to-20200728.md | 17 ++++++++++ go.mod | 2 +- go.sum | 34 +++++++------------ pkg/command/storageeos.go | 3 +- pkg/command/storageeosdata.go | 3 +- pkg/command/storagehome.go | 3 +- pkg/command/storagehomedata.go | 3 +- pkg/command/storageoc.go | 3 +- pkg/command/storageocdata.go | 3 +- pkg/command/storageroot.go | 3 +- pkg/command/users.go | 21 +++++++----- pkg/config/config.go | 28 +++++++++------ pkg/flagset/storageeos.go | 7 ++++ pkg/flagset/storageeosdata.go | 7 ++++ pkg/flagset/storagehome.go | 7 ++++ pkg/flagset/storagehomedata.go | 7 ++++ pkg/flagset/storageoc.go | 7 ++++ pkg/flagset/storageocdata.go | 7 ++++ pkg/flagset/storageroot.go | 7 ++++ pkg/flagset/users.go | 21 ++++++++++++ 20 files changed, 143 insertions(+), 50 deletions(-) create mode 100644 changelog/unreleased/update-reva-to-20200728.md diff --git a/changelog/unreleased/update-reva-to-20200728.md b/changelog/unreleased/update-reva-to-20200728.md new file mode 100644 index 0000000000..a6ec4113f6 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200728.md @@ -0,0 +1,17 @@ +Enhancement: update reva to v1.1.1-0.20200819100654-dcbf0c8ea187 + +- Update reva to v1.1.1-0.20200819100654-dcbf0c8ea187 +- fix restoring and deleting trash items via ocs [(reva/#1103)](https://github.com/cs3org/reva/pull/1103) +- Add UID and GID in ldap auth driver [(reva/#1101)](https://github.com/cs3org/reva/pull/1101) +- Allow listing the trashbin [(reva/#1091)](https://github.com/cs3org/reva/pull/1091) +- Ignore Stray Public Shares [(reva/#1090)](https://github.com/cs3org/reva/pull/1090) +- Implement GetUserByClaim for LDAP user driver [(reva/#1088)](https://github.com/cs3org/reva/pull/1088) +- eosclient: get file info by fxid [(reva/#1079)](https://github.com/cs3org/reva/pull/1079) +- Ensure stray shares get ignored [(reva/#1064)](https://github.com/cs3org/reva/pull/1064) +- Improve timestamp precision while logging [(reva/#1059)](https://github.com/cs3org/reva/pull/1059) +- Ocfs lookup userid (update) [(reva/#1052)](https://github.com/cs3org/reva/pull/1052) +- Disallow sharing the shares directory [(reva/#1051)](https://github.com/cs3org/reva/pull/1051) +- Local storage provider: Fixed resolution of fileid [(reva/#1046)](https://github.com/cs3org/reva/pull/1046) +- List public shares only created by the current user [(reva/#1042)](https://github.com/cs3org/reva/pull/1042) + +https://github.com/owncloud/ocis-reva/pull/447 \ No newline at end of file diff --git a/go.mod b/go.mod index 982285f373..149da9fd12 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v1.1.1-0.20200813152025-baea1c67fb87 + github.com/cs3org/reva v1.1.1-0.20200819100654-dcbf0c8ea187 github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 diff --git a/go.sum b/go.sum index ff6c2934fd..1582dd7cdb 100644 --- a/go.sum +++ b/go.sum @@ -93,8 +93,7 @@ github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt github.com/aws/aws-sdk-go v1.20.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.33.19 h1:SMna0QLInNqm+nNL9tb7OVWTqSfNYSxrCa2adnyVth4= -github.com/aws/aws-sdk-go v1.33.19/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.34.2 h1:9vCknCdTAmmV4ht7lPuda7aJXzllXwEQyCMZKJHjBrM= github.com/aws/aws-sdk-go v1.34.2/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= @@ -118,7 +117,6 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= -github.com/cheggaaa/pb v1.0.28/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= @@ -164,12 +162,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/cs3org/cato v0.0.0-20200626150132-28a40e643719/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd h1:uMaudkC7znaiIKT9rxIhoRYzrhTg1Nc78X7XEqhmjSk= github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7 h1:q2lDRDnDsjNPSt3iRMtoeSETCTi0d1LmkY89aFGZyBQ= -github.com/cs3org/reva v1.0.1-0.20200810113514-38919badfcc7/go.mod h1:fBzTrNuAKdQ62ybjpdu8nyhBin90/3/3s6DGQDCdBp4= -github.com/cs3org/reva v1.1.1-0.20200812182703-f3251947b9a8 h1:G8ulhHJhUhem7NO8vC9plJ2E2ZQnuLK1v2io7P08YhI= -github.com/cs3org/reva v1.1.1-0.20200812182703-f3251947b9a8/go.mod h1:XpslyNQPPVszKD6D8bel1KicZ+/ZhKyp3q+pnLjLtJQ= -github.com/cs3org/reva v1.1.1-0.20200813152025-baea1c67fb87 h1:AyAaCG63fGjLrFi0fx5MgAaFokkV1oHj3WPGdhdLaYk= -github.com/cs3org/reva v1.1.1-0.20200813152025-baea1c67fb87/go.mod h1:XpslyNQPPVszKD6D8bel1KicZ+/ZhKyp3q+pnLjLtJQ= +github.com/cs3org/reva v1.1.1-0.20200819100654-dcbf0c8ea187 h1:ZyDXH+zy5KPOH5AM5CMHP2j9dhV6bM3JQmqTfO8fxJ8= +github.com/cs3org/reva v1.1.1-0.20200819100654-dcbf0c8ea187/go.mod h1:gkGtoun9QABW8k7jzAWWxB9jO64DJ1lreSzTucci/ok= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= @@ -470,7 +464,6 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= @@ -493,8 +486,8 @@ github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE= -github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 h1:0IKlLyQ3Hs9nDaiK5cSHAGmcQEIC8l2Ts1u6x5Dfrqg= -github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= +github.com/grpc-ecosystem/go-grpc-middleware v1.2.1 h1:V59tBiPuMkySHwJkuq/OYkK0WnOLwCwD3UkTbEMr12U= +github.com/grpc-ecosystem/go-grpc-middleware v1.2.1/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= @@ -513,7 +506,6 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= @@ -640,7 +632,6 @@ github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3N github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.27 h1:aEH/kqUzUxGJ/UHcEKdJY+ugH6WEzsEBBSPa8zuy1aM= github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= -github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -651,7 +642,6 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -828,7 +818,6 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= -github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= @@ -836,7 +825,6 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6 github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI= github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= @@ -849,7 +837,6 @@ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoH github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -951,7 +938,6 @@ golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200320181102-891825fb96df h1:lDWgvUvNnaTnNBc/dwOty86cFeKoKWbwy2wQj0gIxbU= golang.org/x/crypto v0.0.0-20200320181102-891825fb96df/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9 h1:vEg9joUBmeBcK9iSJftGNf3coIG4HqZElCPehJsfAYM= golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -965,6 +951,7 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1026,6 +1013,8 @@ golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200421231249-e086a090c8fd h1:QPwSajcTUrFriMF1nJ3XzgoqakqQEsnZf9LdXdi2nkI= +golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1104,9 +1093,9 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 h1:ogLJMz+qpzav7lGMh10LMvAkM/fAoGlaiiHYiFYdm80= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1172,7 +1161,6 @@ golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200113040837-eac381796e91 h1:OOkytthzFBKHY5EfEgLUabprb0LtJVkQtNxAQ02+UE4= golang.org/x/tools v0.0.0-20200113040837-eac381796e91/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1225,7 +1213,6 @@ google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba h1:pRj9OXZbwNtbtZtOB4dLwfK4u+EVRMvP+e9zKkg2grM= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= @@ -1233,6 +1220,8 @@ google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940 h1:MRHtG0U6SnaUb+s+LhNE1qt1FQ1wlhqr5E4usBKC0uA= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215 h1:0Uz5jLJQioKgVozXa1gzGbzYxbb/rhQEVvSWxzw5oUs= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1247,6 +1236,7 @@ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= diff --git a/pkg/command/storageeos.go b/pkg/command/storageeos.go index 15c79ef94a..643fdbbaf4 100644 --- a/pkg/command/storageeos.go +++ b/pkg/command/storageeos.go @@ -105,7 +105,7 @@ func StorageEOS(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, @@ -124,6 +124,7 @@ func StorageEOS(cfg *config.Config) *cli.Command { "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, }, "mount_path": cfg.Reva.StorageEOS.MountPath, diff --git a/pkg/command/storageeosdata.go b/pkg/command/storageeosdata.go index 7fc8ec56d4..3f208d0a50 100644 --- a/pkg/command/storageeosdata.go +++ b/pkg/command/storageeosdata.go @@ -107,7 +107,7 @@ func StorageEOSData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, @@ -126,6 +126,7 @@ func StorageEOSData(cfg *config.Config) *cli.Command { "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, }, "timeout": 86400, diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 756bd9f42f..4a67679742 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -105,7 +105,7 @@ func StorageHome(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, @@ -124,6 +124,7 @@ func StorageHome(cfg *config.Config) *cli.Command { "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "local": map[string]interface{}{ "root": cfg.Reva.Storages.Local.Root, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 1640051489..8c622e76a3 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -107,7 +107,7 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, @@ -126,6 +126,7 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "local": map[string]interface{}{ "root": cfg.Reva.Storages.Local.Root, diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index a7f200c402..01bc7a9fd1 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -105,7 +105,7 @@ func StorageOC(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, @@ -124,6 +124,7 @@ func StorageOC(cfg *config.Config) *cli.Command { "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "local": map[string]interface{}{ "root": cfg.Reva.Storages.Local.Root, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 7064fe296f..35cac2d1d3 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -107,7 +107,7 @@ func StorageOCData(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, @@ -126,6 +126,7 @@ func StorageOCData(cfg *config.Config) *cli.Command { "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "local": map[string]interface{}{ "root": cfg.Reva.Storages.Local.Root, diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index c562743d24..f63d23b6d0 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -105,7 +105,7 @@ func StorageRoot(cfg *config.Config) *cli.Command { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "eoshome": map[string]interface{}{ "namespace": cfg.Reva.Storages.EOS.Namespace, @@ -124,6 +124,7 @@ func StorageRoot(cfg *config.Config) *cli.Command { "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, "user_layout": cfg.Reva.Storages.EOS.Layout, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "local": map[string]interface{}{ "root": cfg.Reva.Storages.Local.Root, diff --git a/pkg/command/users.go b/pkg/command/users.go index d215f59e87..50fc4f9425 100644 --- a/pkg/command/users.go +++ b/pkg/command/users.go @@ -93,21 +93,24 @@ func Users(cfg *config.Config) *cli.Command { "users": cfg.Reva.Users.JSON, }, "ldap": map[string]interface{}{ - "hostname": cfg.Reva.LDAP.Hostname, - "port": cfg.Reva.LDAP.Port, - "base_dn": cfg.Reva.LDAP.BaseDN, - "userfilter": cfg.Reva.LDAP.UserFilter, - "findfilter": cfg.Reva.LDAP.FindFilter, - "groupfilter": cfg.Reva.LDAP.GroupFilter, - "bind_username": cfg.Reva.LDAP.BindDN, - "bind_password": cfg.Reva.LDAP.BindPassword, - "idp": cfg.Reva.LDAP.IDP, + "hostname": cfg.Reva.LDAP.Hostname, + "port": cfg.Reva.LDAP.Port, + "base_dn": cfg.Reva.LDAP.BaseDN, + "userfilter": cfg.Reva.LDAP.UserFilter, + "attributefilter": cfg.Reva.LDAP.AttributeFilter, + "findfilter": cfg.Reva.LDAP.FindFilter, + "groupfilter": cfg.Reva.LDAP.GroupFilter, + "bind_username": cfg.Reva.LDAP.BindDN, + "bind_password": cfg.Reva.LDAP.BindPassword, + "idp": cfg.Reva.LDAP.IDP, "schema": map[string]interface{}{ "dn": "dn", "uid": cfg.Reva.LDAP.Schema.UID, "mail": cfg.Reva.LDAP.Schema.Mail, "displayName": cfg.Reva.LDAP.Schema.DisplayName, "cn": cfg.Reva.LDAP.Schema.CN, + "uidNumber": cfg.Reva.LDAP.Schema.UIDNumber, + "gidNumber": cfg.Reva.LDAP.Schema.GIDNumber, }, }, }, diff --git a/pkg/config/config.go b/pkg/config/config.go index c2b0654833..1313a8ea99 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -168,6 +168,9 @@ type DriverEOS struct { // Layout of the users home dir path Layout string + + // gateway service to use for uid lookups + GatewaySVC string } // DriverLocal defines the available local storage driver configuration. @@ -203,17 +206,18 @@ type OIDC struct { // LDAP defines the available ldap configuration. type LDAP struct { - Hostname string - Port int - BaseDN string - LoginFilter string - UserFilter string - FindFilter string - GroupFilter string - BindDN string - BindPassword string - IDP string - Schema LDAPSchema + Hostname string + Port int + BaseDN string + LoginFilter string + UserFilter string + AttributeFilter string + FindFilter string + GroupFilter string + BindDN string + BindPassword string + IDP string + Schema LDAPSchema } // LDAPSchema defines the available ldap schema configuration. @@ -222,6 +226,8 @@ type LDAPSchema struct { Mail string DisplayName string CN string + UIDNumber string + GIDNumber string } // OCDav defines the available ocdav configuration. diff --git a/pkg/flagset/storageeos.go b/pkg/flagset/storageeos.go index dd63d7b684..29414ad747 100644 --- a/pkg/flagset/storageeos.go +++ b/pkg/flagset/storageeos.go @@ -281,6 +281,13 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, }, + &cli.StringFlag{ + Name: "storage-eos-gatewaysvc", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, + Destination: &cfg.Reva.Storages.EOS.GatewaySVC, + }, // local diff --git a/pkg/flagset/storageeosdata.go b/pkg/flagset/storageeosdata.go index 2ea51edebe..e8b5201e64 100644 --- a/pkg/flagset/storageeosdata.go +++ b/pkg/flagset/storageeosdata.go @@ -259,6 +259,13 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, }, + &cli.StringFlag{ + Name: "storage-eos-gatewaysvc", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, + Destination: &cfg.Reva.Storages.EOS.GatewaySVC, + }, // local diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index a80324b69d..8a7b1dabf8 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -286,6 +286,13 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, }, + &cli.StringFlag{ + Name: "storage-eos-gatewaysvc", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, + Destination: &cfg.Reva.Storages.EOS.GatewaySVC, + }, // local diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index a7f24e8aec..70bfc2419a 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -260,6 +260,13 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, }, + &cli.StringFlag{ + Name: "storage-eos-gatewaysvc", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, + Destination: &cfg.Reva.Storages.EOS.GatewaySVC, + }, // local diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 9f44d50cfd..cfdc9e6237 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -284,6 +284,13 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, }, + &cli.StringFlag{ + Name: "storage-eos-gatewaysvc", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, + Destination: &cfg.Reva.Storages.EOS.GatewaySVC, + }, // local diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index 0db9e3ed92..cb27bd8b17 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -262,6 +262,13 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, }, + &cli.StringFlag{ + Name: "storage-eos-gatewaysvc", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, + Destination: &cfg.Reva.Storages.EOS.GatewaySVC, + }, // local diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 134920866a..1c19104bbc 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -268,6 +268,13 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, Destination: &cfg.Reva.Storages.EOS.Layout, }, + &cli.StringFlag{ + Name: "storage-eos-gatewaysvc", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, + Destination: &cfg.Reva.Storages.EOS.GatewaySVC, + }, // local diff --git a/pkg/flagset/users.go b/pkg/flagset/users.go index 24b9b6ea0e..ebe8b351bd 100644 --- a/pkg/flagset/users.go +++ b/pkg/flagset/users.go @@ -112,6 +112,13 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_LDAP_USERFILTER"}, Destination: &cfg.Reva.LDAP.UserFilter, }, + &cli.StringFlag{ + Name: "ldap-attributefilter", + Value: "(&(objectclass=posixAccount)({{attr}}={{value}}))", + Usage: "LDAP filter used when searching for a user by claim/attribute. {{attr}} will be replaced with the attribute, {{value}} with the value.", + EnvVars: []string{"REVA_LDAP_ATTRIBUTEFILTER"}, + Destination: &cfg.Reva.LDAP.AttributeFilter, + }, &cli.StringFlag{ Name: "ldap-findfilter", Value: "(&(objectclass=posixAccount)(|(cn={{query}}*)(displayname={{query}}*)(mail={{query}}*)))", @@ -178,6 +185,20 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_LDAP_SCHEMA_CN"}, Destination: &cfg.Reva.LDAP.Schema.CN, }, + &cli.StringFlag{ + Name: "ldap-schema-uidnumber", + Value: "uidnumber", + Usage: "LDAP schema uidnumber", + EnvVars: []string{"REVA_LDAP_SCHEMA_UID_NUMBER"}, + Destination: &cfg.Reva.LDAP.Schema.UIDNumber, + }, + &cli.StringFlag{ + Name: "ldap-schema-gidnumber", + Value: "gidnumber", + Usage: "LDAP schema gidnumber", + EnvVars: []string{"REVA_LDAP_SCHEMA_GIDNUMBER"}, + Destination: &cfg.Reva.LDAP.Schema.GIDNumber, + }, // Services From f68defd1ff27b67218e13687ea5c3fd95fe4b258 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 19 Aug 2020 13:37:06 +0000 Subject: [PATCH 256/346] Automated changelog update [skip ci] --- CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ go.sum | 6 ++++++ 2 files changed, 39 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e5b91e43af..595cdd2fa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,36 @@ +# Changelog for [unreleased] (UNRELEASED) + +The following sections list the changes in ocis-reva unreleased. + +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.12.0...master + +## Summary + +* Enhancement - Update reva to v1.1.1-0.20200819100654-dcbf0c8ea187: [#447](https://github.com/owncloud/ocis-reva/pull/447) + +## Details + +* Enhancement - Update reva to v1.1.1-0.20200819100654-dcbf0c8ea187: [#447](https://github.com/owncloud/ocis-reva/pull/447) + + - Update reva to v1.1.1-0.20200819100654-dcbf0c8ea187 - fix restoring and deleting trash + items via ocs [(reva/#1103)](https://github.com/cs3org/reva/pull/1103) - Add UID and GID + in ldap auth driver [(reva/#1101)](https://github.com/cs3org/reva/pull/1101) - Allow + listing the trashbin [(reva/#1091)](https://github.com/cs3org/reva/pull/1091) - + Ignore Stray Public Shares [(reva/#1090)](https://github.com/cs3org/reva/pull/1090) - + Implement GetUserByClaim for LDAP user driver + [(reva/#1088)](https://github.com/cs3org/reva/pull/1088) - eosclient: get file info by + fxid [(reva/#1079)](https://github.com/cs3org/reva/pull/1079) - Ensure stray shares + get ignored [(reva/#1064)](https://github.com/cs3org/reva/pull/1064) - Improve + timestamp precision while logging + [(reva/#1059)](https://github.com/cs3org/reva/pull/1059) - Ocfs lookup userid + (update) [(reva/#1052)](https://github.com/cs3org/reva/pull/1052) - Disallow sharing + the shares directory [(reva/#1051)](https://github.com/cs3org/reva/pull/1051) - Local + storage provider: Fixed resolution of fileid + [(reva/#1046)](https://github.com/cs3org/reva/pull/1046) - List public shares only + created by the current user [(reva/#1042)](https://github.com/cs3org/reva/pull/1042) + + https://github.com/owncloud/ocis-reva/pull/447 + # Changelog for [0.12.0] (2020-08-17) The following sections list the changes in ocis-reva 0.12.0. diff --git a/go.sum b/go.sum index 1582dd7cdb..73c654041f 100644 --- a/go.sum +++ b/go.sum @@ -464,6 +464,7 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= @@ -506,6 +507,7 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= @@ -632,6 +634,7 @@ github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3N github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.27 h1:aEH/kqUzUxGJ/UHcEKdJY+ugH6WEzsEBBSPa8zuy1aM= github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -642,6 +645,7 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -818,6 +822,7 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= +github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= @@ -825,6 +830,7 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6 github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI= github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= From 9a7ec3a6ff5dc19abeb3de2f09904102a7012341 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 20 Aug 2020 10:07:42 +0545 Subject: [PATCH 257/346] Bump core commit for tests 20200820 --- .drone.star | 2 +- .../expected-failures-on-OC-storage.txt | 29 ++++++++++++------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/.drone.star b/.drone.star index 13e645fe60..099207f794 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '33c64ea3d56ec20e5d0cbc0f745ed2c04589b7f8', + 'coreCommit': '3f127eaf24ed539fd9effbc82db9b57df38e3157', 'numberOfParts': 2 } } diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index 39f1fad1e3..8255c03e8c 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -166,6 +166,24 @@ apiSharees/sharees.feature:516 apiSharees/sharees.feature:537 apiSharees/sharees.feature:538 # +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set (shareapi_auto_accept_share) +apiShareManagement/acceptShares.feature:333 +apiShareManagement/acceptShares.feature:415 +apiShareManagement/acceptShares.feature:416 +apiShareManagement/acceptShares.feature:417 +apiShareManagement/acceptShares.feature:418 +apiShareManagement/acceptShares.feature:419 +apiShareManagement/acceptShares.feature:421 +apiShareManagement/acceptShares.feature:436 +apiShareManagement/acceptShares.feature:458 +apiShareManagement/acceptShares.feature:477 +apiShareManagement/acceptShares.feature:511 +apiShareManagement/acceptShares.feature:542 +apiShareManagement/acceptShares.feature:561 +apiShareManagement/acceptShares.feature:582 +apiShareManagement/acceptShares.feature:652 +apiShareManagement/acceptShares.feature:696 +# # https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist apiShareManagementBasic/createShare.feature:169 apiShareManagementBasic/createShare.feature:170 @@ -187,11 +205,6 @@ apiShareManagementBasic/deleteShare.feature:37 apiShareOperations/accessToShare.feature:48 apiShareOperations/accessToShare.feature:49 # -# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist -# https://github.com/owncloud/ocis-reva/issues/194 Group shares support -apiShareOperations/accessToShare.feature:63 -apiShareOperations/accessToShare.feature:64 -# # https://github.com/owncloud/ocis-reva/issues/262 Shares are not deleted when user is deleted apiShareOperations/gettingShares.feature:21 apiShareOperations/gettingShares.feature:22 @@ -210,9 +223,6 @@ apiShareOperations/gettingShares.feature:125 apiShareOperations/gettingShares.feature:168 apiShareOperations/gettingShares.feature:169 # -# https://github.com/owncloud/ocis-reva/issues/194 Group shares support -apiShareOperations/gettingShares.feature:172 -# # https://github.com/owncloud/ocis-reva/issues/372 Listing shares via ocs API does not show path for parent folders apiShareOperations/gettingShares.feature:204 apiShareOperations/gettingShares.feature:205 @@ -449,9 +459,6 @@ apiSharePublicLink2/uploadToPublicLinkShare.feature:206 # apiSharePublicLink2/uploadToPublicLinkShare.feature:217 # -# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set -apiSharePublicLink2/uploadToPublicLinkShare.feature:227 -# apiSharePublicLink2/uploadToPublicLinkShare.feature:238 # apiSharePublicLink2/uploadToPublicLinkShare.feature:255 From 860bb793379e175210fae9fbd4325e12cd611209 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 25 Aug 2020 10:02:18 +0545 Subject: [PATCH 258/346] [Tests-Only] Bump core commit id --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 099207f794..8f0e48c5b0 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '3f127eaf24ed539fd9effbc82db9b57df38e3157', + 'coreCommit': '5804220153fb311d37b5eda7440cfe7edc355166', 'numberOfParts': 2 } } From c68bc60181163b0f5673f6242dec872d0ef04108 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 25 Aug 2020 10:33:03 +0545 Subject: [PATCH 259/346] Add trashbin scenarios to expected-failures-on-OC-storage.txt --- .../expected-failures-on-OC-storage.txt | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index 8255c03e8c..10548fd0bc 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -466,6 +466,89 @@ apiSharePublicLink2/uploadToPublicLinkShare.feature:255 # https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file apiSharePublicLink2/uploadToPublicLinkShare.feature:273 # +# https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file +apiSharePublicLink2/uploadToPublicLinkShare.feature:273 +# +apiTrashbin/trashbinDelete.feature:31 +apiTrashbin/trashbinDelete.feature:32 +apiTrashbin/trashbinDelete.feature:33 +apiTrashbin/trashbinDelete.feature:34 +apiTrashbin/trashbinDelete.feature:37 +apiTrashbin/trashbinDelete.feature:50 +apiTrashbin/trashbinDelete.feature:67 +# +apiTrashbin/trashbinFilesFolders.feature:21 +apiTrashbin/trashbinFilesFolders.feature:32 +apiTrashbin/trashbinFilesFolders.feature:44 +apiTrashbin/trashbinFilesFolders.feature:45 +apiTrashbin/trashbinFilesFolders.feature:60 +apiTrashbin/trashbinFilesFolders.feature:61 +apiTrashbin/trashbinFilesFolders.feature:75 +apiTrashbin/trashbinFilesFolders.feature:89 +apiTrashbin/trashbinFilesFolders.feature:90 +apiTrashbin/trashbinFilesFolders.feature:104 +apiTrashbin/trashbinFilesFolders.feature:105 +apiTrashbin/trashbinFilesFolders.feature:136 +apiTrashbin/trashbinFilesFolders.feature:137 +apiTrashbin/trashbinFilesFolders.feature:155 +apiTrashbin/trashbinFilesFolders.feature:185 +apiTrashbin/trashbinFilesFolders.feature:186 +apiTrashbin/trashbinFilesFolders.feature:203 +apiTrashbin/trashbinFilesFolders.feature:204 +apiTrashbin/trashbinFilesFolders.feature:227 +apiTrashbin/trashbinFilesFolders.feature:228 +apiTrashbin/trashbinFilesFolders.feature:241 +apiTrashbin/trashbinFilesFolders.feature:242 +apiTrashbin/trashbinFilesFolders.feature:255 +apiTrashbin/trashbinFilesFolders.feature:256 +apiTrashbin/trashbinFilesFolders.feature:270 +apiTrashbin/trashbinFilesFolders.feature:271 +apiTrashbin/trashbinFilesFolders.feature:272 +apiTrashbin/trashbinFilesFolders.feature:273 +apiTrashbin/trashbinFilesFolders.feature:274 +apiTrashbin/trashbinFilesFolders.feature:275 +apiTrashbin/trashbinFilesFolders.feature:276 +apiTrashbin/trashbinFilesFolders.feature:277 +apiTrashbin/trashbinFilesFolders.feature:278 +apiTrashbin/trashbinFilesFolders.feature:289 +# +apiTrashbin/trashbinRestore.feature:31 +apiTrashbin/trashbinRestore.feature:32 +apiTrashbin/trashbinRestore.feature:62 +apiTrashbin/trashbinRestore.feature:63 +apiTrashbin/trashbinRestore.feature:76 +apiTrashbin/trashbinRestore.feature:77 +apiTrashbin/trashbinRestore.feature:92 +apiTrashbin/trashbinRestore.feature:93 +apiTrashbin/trashbinRestore.feature:112 +apiTrashbin/trashbinRestore.feature:113 +apiTrashbin/trashbinRestore.feature:114 +apiTrashbin/trashbinRestore.feature:115 +apiTrashbin/trashbinRestore.feature:116 +apiTrashbin/trashbinRestore.feature:117 +apiTrashbin/trashbinRestore.feature:141 +apiTrashbin/trashbinRestore.feature:142 +apiTrashbin/trashbinRestore.feature:143 +apiTrashbin/trashbinRestore.feature:144 +apiTrashbin/trashbinRestore.feature:165 +apiTrashbin/trashbinRestore.feature:166 +apiTrashbin/trashbinRestore.feature:188 +apiTrashbin/trashbinRestore.feature:189 +apiTrashbin/trashbinRestore.feature:206 +apiTrashbin/trashbinRestore.feature:207 +apiTrashbin/trashbinRestore.feature:279 +apiTrashbin/trashbinRestore.feature:280 +apiTrashbin/trashbinRestore.feature:295 +apiTrashbin/trashbinRestore.feature:310 +apiTrashbin/trashbinRestore.feature:323 +apiTrashbin/trashbinRestore.feature:324 +apiTrashbin/trashbinRestore.feature:325 +apiTrashbin/trashbinRestore.feature:326 +apiTrashbin/trashbinRestore.feature:327 +apiTrashbin/trashbinRestore.feature:328 +apiTrashbin/trashbinRestore.feature:343 +apiTrashbin/trashbinRestore.feature:344 +# # https://github.com/owncloud/ocis-reva/issues/17 uploading with old-chunking does not work # https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiVersions/fileVersions.feature:15 From 283272b33935fbbe8588381f43691424a46ffdc2 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 25 Aug 2020 11:02:25 +0545 Subject: [PATCH 260/346] Do not run any local_storage API tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 8f0e48c5b0..2a9e05d546 100644 --- a/.drone.star +++ b/.drone.star @@ -119,7 +119,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_OCIS':'true', - 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~@preview-extension-required', + 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~@preview-extension-required&&~@local_storage', 'DIVIDE_INTO_NUM_PARTS': number_of_parts, 'RUN_PART': part_number, 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures-on-OC-storage.txt' From 726561cf1b21b4642f1b50a8b7d69053b621f684 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 25 Aug 2020 11:42:40 +0545 Subject: [PATCH 261/346] Remove these passing trashbin tests from expected-failures-on-OC-storage --- tests/acceptance/expected-failures-on-OC-storage.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index 10548fd0bc..e5185e419c 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -501,9 +501,6 @@ apiTrashbin/trashbinFilesFolders.feature:241 apiTrashbin/trashbinFilesFolders.feature:242 apiTrashbin/trashbinFilesFolders.feature:255 apiTrashbin/trashbinFilesFolders.feature:256 -apiTrashbin/trashbinFilesFolders.feature:270 -apiTrashbin/trashbinFilesFolders.feature:271 -apiTrashbin/trashbinFilesFolders.feature:272 apiTrashbin/trashbinFilesFolders.feature:273 apiTrashbin/trashbinFilesFolders.feature:274 apiTrashbin/trashbinFilesFolders.feature:275 From 20d2260b6b1bb603831880a52f6cbe976eb40e51 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 25 Aug 2020 13:20:33 +0545 Subject: [PATCH 262/346] Bump core commit to include core PR 37844 --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 2a9e05d546..1e86347014 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '5804220153fb311d37b5eda7440cfe7edc355166', + 'coreCommit': 'd65b8b5eefa0a59c8e9487196807d50588db698c', 'numberOfParts': 2 } } From fed4d133b0969c7b43c53a01f0153d1aa80f08e3 Mon Sep 17 00:00:00 2001 From: Ishank Arora Date: Wed, 26 Aug 2020 17:15:20 +0200 Subject: [PATCH 263/346] Separate user and auth providers, add config for rest user (#412) --- .../separate-auth-user-providers.md | 9 +++ pkg/command/authbasic.go | 4 +- pkg/command/authbearer.go | 8 ++- pkg/command/users.go | 12 ++++ pkg/config/config.go | 18 +++++ pkg/flagset/authbasic.go | 16 ++--- pkg/flagset/authbearer.go | 14 ++++ pkg/flagset/users.go | 72 ++++++++++++++++++- 8 files changed, 139 insertions(+), 14 deletions(-) create mode 100644 changelog/unreleased/separate-auth-user-providers.md diff --git a/changelog/unreleased/separate-auth-user-providers.md b/changelog/unreleased/separate-auth-user-providers.md new file mode 100644 index 0000000000..3f7eec4240 --- /dev/null +++ b/changelog/unreleased/separate-auth-user-providers.md @@ -0,0 +1,9 @@ +Enhancement: Separate user and auth providers, add config for rest user + +Previously, the auth and user provider services used to have the same driver, +which restricted using separate drivers and configs for both. This PR separates +the two and adds the config for the rest user driver and the gatewaysvc +parameter to EOS fs. + +https://github.com/owncloud/ocis-reva/pull/412 +https://github.com/cs3org/reva/pull/995 diff --git a/pkg/command/authbasic.go b/pkg/command/authbasic.go index 96fda922de..79471497dd 100644 --- a/pkg/command/authbasic.go +++ b/pkg/command/authbasic.go @@ -88,10 +88,10 @@ func AuthBasic(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "authprovider": map[string]interface{}{ - "auth_manager": cfg.Reva.Users.Driver, + "auth_manager": cfg.Reva.AuthProvider.Driver, "auth_managers": map[string]interface{}{ "json": map[string]interface{}{ - "users": cfg.Reva.Users.JSON, + "users": cfg.Reva.AuthProvider.JSON, }, "ldap": map[string]interface{}{ "hostname": cfg.Reva.LDAP.Hostname, diff --git a/pkg/command/authbearer.go b/pkg/command/authbearer.go index 630b673bc9..d6baa566e4 100644 --- a/pkg/command/authbearer.go +++ b/pkg/command/authbearer.go @@ -91,9 +91,11 @@ func AuthBearer(cfg *config.Config) *cli.Command { "auth_manager": "oidc", "auth_managers": map[string]interface{}{ "oidc": map[string]interface{}{ - "issuer": cfg.Reva.OIDC.Issuer, - "insecure": cfg.Reva.OIDC.Insecure, - "id_claim": cfg.Reva.OIDC.IDClaim, + "issuer": cfg.Reva.OIDC.Issuer, + "insecure": cfg.Reva.OIDC.Insecure, + "id_claim": cfg.Reva.OIDC.IDClaim, + "uid_claim": cfg.Reva.OIDC.UIDClaim, + "gid_claim": cfg.Reva.OIDC.GIDClaim, }, }, }, diff --git a/pkg/command/users.go b/pkg/command/users.go index 50fc4f9425..50558bf59a 100644 --- a/pkg/command/users.go +++ b/pkg/command/users.go @@ -113,6 +113,18 @@ func Users(cfg *config.Config) *cli.Command { "gidNumber": cfg.Reva.LDAP.Schema.GIDNumber, }, }, + "rest": map[string]interface{}{ + "client_id": cfg.Reva.UserRest.ClientID, + "client_secret": cfg.Reva.UserRest.ClientSecret, + "redis_address": cfg.Reva.UserRest.RedisAddress, + "redis_username": cfg.Reva.UserRest.RedisUsername, + "redis_password": cfg.Reva.UserRest.RedisPassword, + "user_groups_cache_expiration": cfg.Reva.UserRest.UserGroupsCacheExpiration, + "id_provider": cfg.Reva.UserRest.IDProvider, + "api_base_url": cfg.Reva.UserRest.APIBaseURL, + "oidc_token_endpoint": cfg.Reva.UserRest.OIDCTokenEndpoint, + "target_api": cfg.Reva.UserRest.TargetAPI, + }, }, }, }, diff --git a/pkg/config/config.go b/pkg/config/config.go index 1313a8ea99..6bb8cc5e0b 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -202,6 +202,8 @@ type OIDC struct { Issuer string Insecure bool IDClaim string + UIDClaim string + GIDClaim string } // LDAP defines the available ldap configuration. @@ -220,6 +222,20 @@ type LDAP struct { Schema LDAPSchema } +// UserRest defines the user REST driver specification. +type UserRest struct { + ClientID string + ClientSecret string + RedisAddress string + RedisUsername string + RedisPassword string + IDProvider string + APIBaseURL string + OIDCTokenEndpoint string + TargetAPI string + UserGroupsCacheExpiration int +} + // LDAPSchema defines the available ldap schema configuration. type LDAPSchema struct { UID string @@ -244,6 +260,7 @@ type Reva struct { TransferExpires int OIDC OIDC LDAP LDAP + UserRest UserRest OCDav OCDav Storages StorageConfig // Ports are used to configure which services to start on which port @@ -251,6 +268,7 @@ type Reva struct { DataGateway Port Gateway Gateway Users Users + AuthProvider Users AuthBasic Port AuthBearer Port Sharing Sharing diff --git a/pkg/flagset/authbasic.go b/pkg/flagset/authbasic.go index 021bba3ec1..4e10a77550 100644 --- a/pkg/flagset/authbasic.go +++ b/pkg/flagset/authbasic.go @@ -82,21 +82,21 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.JWTSecret, }, - // Users + // Auth &cli.StringFlag{ - Name: "users-driver", + Name: "auth-driver", Value: "ldap", - Usage: "user driver: 'demo', 'json' or 'ldap'", - EnvVars: []string{"REVA_USERS_DRIVER"}, - Destination: &cfg.Reva.Users.Driver, + Usage: "auth driver: 'demo', 'json' or 'ldap'", + EnvVars: []string{"REVA_AUTH_DRIVER"}, + Destination: &cfg.Reva.AuthProvider.Driver, }, &cli.StringFlag{ - Name: "users-json", + Name: "auth-json", Value: "", Usage: "Path to users.json file", - EnvVars: []string{"REVA_USERS_JSON"}, - Destination: &cfg.Reva.Users.JSON, + EnvVars: []string{"REVA_AUTH_JSON"}, + Destination: &cfg.Reva.AuthProvider.JSON, }, // LDAP diff --git a/pkg/flagset/authbearer.go b/pkg/flagset/authbearer.go index c01dcbc0f0..17a8d07858 100644 --- a/pkg/flagset/authbearer.go +++ b/pkg/flagset/authbearer.go @@ -111,6 +111,20 @@ func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_OIDC_ID_CLAIM"}, Destination: &cfg.Reva.OIDC.IDClaim, }, + &cli.StringFlag{ + Name: "oidc-uid-claim", + Value: "", + Usage: "OIDC uid claim", + EnvVars: []string{"REVA_OIDC_UID_CLAIM"}, + Destination: &cfg.Reva.OIDC.UIDClaim, + }, + &cli.StringFlag{ + Name: "oidc-gid-claim", + Value: "", + Usage: "OIDC gid claim", + EnvVars: []string{"REVA_OIDC_GID_CLAIM"}, + Destination: &cfg.Reva.OIDC.GIDClaim, + }, // Services diff --git a/pkg/flagset/users.go b/pkg/flagset/users.go index ebe8b351bd..baaffec8b9 100644 --- a/pkg/flagset/users.go +++ b/pkg/flagset/users.go @@ -199,6 +199,76 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_LDAP_SCHEMA_GIDNUMBER"}, Destination: &cfg.Reva.LDAP.Schema.GIDNumber, }, + &cli.StringFlag{ + Name: "rest-client-id", + Value: "", + Usage: "User rest driver Client ID", + EnvVars: []string{"REVA_REST_CLIENT_ID"}, + Destination: &cfg.Reva.UserRest.ClientID, + }, + &cli.StringFlag{ + Name: "rest-client-secret", + Value: "", + Usage: "User rest driver Client Secret", + EnvVars: []string{"REVA_REST_CLIENT_SECRET"}, + Destination: &cfg.Reva.UserRest.ClientSecret, + }, + &cli.StringFlag{ + Name: "rest-redis-address", + Value: "localhost:6379", + Usage: "Address for redis server", + EnvVars: []string{"REVA_REST_REDIS_ADDRESS"}, + Destination: &cfg.Reva.UserRest.RedisAddress, + }, + &cli.StringFlag{ + Name: "rest-redis-username", + Value: "", + Usage: "Username for redis server", + EnvVars: []string{"REVA_REST_REDIS_USERNAME"}, + Destination: &cfg.Reva.UserRest.RedisUsername, + }, + &cli.StringFlag{ + Name: "rest-redis-password", + Value: "", + Usage: "Password for redis server", + EnvVars: []string{"REVA_REST_REDIS_PASSWORD"}, + Destination: &cfg.Reva.UserRest.RedisPassword, + }, + &cli.IntFlag{ + Name: "rest-user-groups-cache-expiration", + Value: 5, + Usage: "Time in minutes for redis cache expiration.", + EnvVars: []string{"REVA_REST_CACHE_EXPIRATION"}, + Destination: &cfg.Reva.UserRest.UserGroupsCacheExpiration, + }, + &cli.StringFlag{ + Name: "rest-id-provider", + Value: "", + Usage: "The OIDC Provider", + EnvVars: []string{"REVA_REST_ID_PROVIDER"}, + Destination: &cfg.Reva.UserRest.IDProvider, + }, + &cli.StringFlag{ + Name: "rest-api-base-url", + Value: "", + Usage: "Base API Endpoint", + EnvVars: []string{"REVA_REST_API_BASE_URL"}, + Destination: &cfg.Reva.UserRest.APIBaseURL, + }, + &cli.StringFlag{ + Name: "rest-oidc-token-endpoint", + Value: "", + Usage: "Endpoint to generate token to access the API", + EnvVars: []string{"REVA_REST_OIDC_TOKEN_ENDPOINT"}, + Destination: &cfg.Reva.UserRest.OIDCTokenEndpoint, + }, + &cli.StringFlag{ + Name: "rest-target-api", + Value: "", + Usage: "The target application", + EnvVars: []string{"REVA_REST_TARGET_API"}, + Destination: &cfg.Reva.UserRest.TargetAPI, + }, // Services @@ -242,7 +312,7 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "driver", Value: "ldap", - Usage: "user driver: 'demo', 'json' or 'ldap'", + Usage: "user driver: 'demo', 'json', 'ldap', or 'rest'", EnvVars: []string{"REVA_USERS_DRIVER"}, Destination: &cfg.Reva.Users.Driver, }, From b08495cb2e041ae810b56e56ba8cc4c8474665fd Mon Sep 17 00:00:00 2001 From: Ishank Arora Date: Wed, 26 Aug 2020 15:30:53 +0000 Subject: [PATCH 264/346] Automated changelog update [skip ci] --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 595cdd2fa2..95af2233ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,21 @@ The following sections list the changes in ocis-reva unreleased. ## Summary +* Enhancement - Separate user and auth providers, add config for rest user: [#412](https://github.com/owncloud/ocis-reva/pull/412) * Enhancement - Update reva to v1.1.1-0.20200819100654-dcbf0c8ea187: [#447](https://github.com/owncloud/ocis-reva/pull/447) ## Details +* Enhancement - Separate user and auth providers, add config for rest user: [#412](https://github.com/owncloud/ocis-reva/pull/412) + + Previously, the auth and user provider services used to have the same driver, which restricted + using separate drivers and configs for both. This PR separates the two and adds the config for + the rest user driver and the gatewaysvc parameter to EOS fs. + + https://github.com/owncloud/ocis-reva/pull/412 + https://github.com/cs3org/reva/pull/995 + + * Enhancement - Update reva to v1.1.1-0.20200819100654-dcbf0c8ea187: [#447](https://github.com/owncloud/ocis-reva/pull/447) - Update reva to v1.1.1-0.20200819100654-dcbf0c8ea187 - fix restoring and deleting trash From 79aea9679421de7ddee38b4c64816921bc2e6c04 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 26 Aug 2020 23:02:03 +0200 Subject: [PATCH 265/346] Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea --- .../unreleased/update-reva-to-20200826.md | 24 +++++++++++++++++++ go.mod | 3 ++- go.sum | 5 ++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/update-reva-to-20200826.md diff --git a/changelog/unreleased/update-reva-to-20200826.md b/changelog/unreleased/update-reva-to-20200826.md new file mode 100644 index 0000000000..9439a67fb0 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200826.md @@ -0,0 +1,24 @@ +Enhancement: update reva to v1.2.1-0.20200826162318-c0f54e1f37ea + +- Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea +- Do not swallow 'not found' errors in Stat [(reva/#1124)](https://github.com/cs3org/reva/pull/1124) +- Rewire dav files to the home storage [(reva/#1125)](https://github.com/cs3org/reva/pull/1125) +- Do not restore recycle entry on purge [(reva/#1099)](https://github.com/cs3org/reva/pull/1099) +- Allow listing the trashbin [(reva/#1091)](https://github.com/cs3org/reva/pull/1091) +- Restore and delete trash items via ocs [(reva/#1103)](https://github.com/cs3org/reva/pull/1103) +- Ensure ignoring public stray shares [(reva/#1090)](https://github.com/cs3org/reva/pull/1090) +- Ensure ignoring stray shares [(reva/#1064)](https://github.com/cs3org/reva/pull/1064) +- Minor fixes in reva cmd, gateway uploads and smtpclient [(reva/#1082)](https://github.com/cs3org/reva/pull/1082) +- Owncloud driver - propagate mtime on RemoveGrant [(reva/#1115)](https://github.com/cs3org/reva/pull/1115) +- Handle redirection prefixes when extracting destination from URL [(reva/#1111)](https://github.com/cs3org/reva/pull/1111) +- Add UID and GID in ldap auth driver [(reva/#1101)](https://github.com/cs3org/reva/pull/1101) +- Add calens check to verify changelog entries in CI [(reva/#1077)](https://github.com/cs3org/reva/pull/1077) +- Refactor Reva CLI with prompts [(reva/#1072)](https://github.com/cs3org/reva/pull/1072j) +- Get file info using fxids from EOS [(reva/#1079)](https://github.com/cs3org/reva/pull/1079) +- Update LDAP user driver [(reva/#1088)](https://github.com/cs3org/reva/pull/1088) +- System information metrics cleanup [(reva/#1114)](https://github.com/cs3org/reva/pull/1114) +- System information included in Prometheus metrics [(reva/#1071)](https://github.com/cs3org/reva/pull/1071) +- Add logic for resolving storage references over webdav [(reva/#1094)](https://github.com/cs3org/reva/pull/1094) + +https://github.com/owncloud/ocis-reva/pull/454 + diff --git a/go.mod b/go.mod index 149da9fd12..19a72db54c 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v1.1.1-0.20200819100654-dcbf0c8ea187 + github.com/cs3org/reva v1.2.1-0.20200826162318-c0f54e1f37ea github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 @@ -13,6 +13,7 @@ require ( github.com/owncloud/flaex v0.0.0-20200411150708-dce59891a203 github.com/owncloud/ocis-pkg/v2 v2.2.1 github.com/pelletier/go-toml v1.6.0 // indirect + github.com/prometheus/client_golang v1.7.1 // indirect github.com/restic/calens v0.2.0 github.com/spf13/viper v1.6.1 gopkg.in/ini.v1 v1.51.1 // indirect diff --git a/go.sum b/go.sum index 73c654041f..1794ffb0e2 100644 --- a/go.sum +++ b/go.sum @@ -162,8 +162,11 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/cs3org/cato v0.0.0-20200626150132-28a40e643719/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd h1:uMaudkC7znaiIKT9rxIhoRYzrhTg1Nc78X7XEqhmjSk= github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/go-cs3apis v0.0.0-20200810113633-b00aca449666/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v1.1.1-0.20200819100654-dcbf0c8ea187 h1:ZyDXH+zy5KPOH5AM5CMHP2j9dhV6bM3JQmqTfO8fxJ8= github.com/cs3org/reva v1.1.1-0.20200819100654-dcbf0c8ea187/go.mod h1:gkGtoun9QABW8k7jzAWWxB9jO64DJ1lreSzTucci/ok= +github.com/cs3org/reva v1.2.1-0.20200826162318-c0f54e1f37ea h1:xVyJvR+GoaBrRJV6GnDflgm9bzkmjchCBBg0nMiHu6M= +github.com/cs3org/reva v1.2.1-0.20200826162318-c0f54e1f37ea/go.mod h1:FvYB+UPpuPCw0hH42qHVR1R2atZyy69METZI/zEaST8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= @@ -846,6 +849,7 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/studio-b12/gowebdav v0.0.0-20200303150724-9380631c29a1/go.mod h1:gCcfDlA1Y7GqOaeEKw5l9dOGx1VLdc/HuQSlQAaZ30s= github.com/subosito/gotenv v1.1.1/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= @@ -1245,6 +1249,7 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From cf6d9bed14908445a0370a939fba57c9e36f4e29 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 27 Aug 2020 07:59:55 +0545 Subject: [PATCH 266/346] Remove passing trashbin scenarios from expected-failures --- .../acceptance/expected-failures-on-OC-storage.txt | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index e5185e419c..0d864a906a 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -477,20 +477,16 @@ apiTrashbin/trashbinDelete.feature:37 apiTrashbin/trashbinDelete.feature:50 apiTrashbin/trashbinDelete.feature:67 # -apiTrashbin/trashbinFilesFolders.feature:21 -apiTrashbin/trashbinFilesFolders.feature:32 apiTrashbin/trashbinFilesFolders.feature:44 apiTrashbin/trashbinFilesFolders.feature:45 apiTrashbin/trashbinFilesFolders.feature:60 apiTrashbin/trashbinFilesFolders.feature:61 -apiTrashbin/trashbinFilesFolders.feature:75 apiTrashbin/trashbinFilesFolders.feature:89 apiTrashbin/trashbinFilesFolders.feature:90 apiTrashbin/trashbinFilesFolders.feature:104 apiTrashbin/trashbinFilesFolders.feature:105 apiTrashbin/trashbinFilesFolders.feature:136 apiTrashbin/trashbinFilesFolders.feature:137 -apiTrashbin/trashbinFilesFolders.feature:155 apiTrashbin/trashbinFilesFolders.feature:185 apiTrashbin/trashbinFilesFolders.feature:186 apiTrashbin/trashbinFilesFolders.feature:203 @@ -501,13 +497,6 @@ apiTrashbin/trashbinFilesFolders.feature:241 apiTrashbin/trashbinFilesFolders.feature:242 apiTrashbin/trashbinFilesFolders.feature:255 apiTrashbin/trashbinFilesFolders.feature:256 -apiTrashbin/trashbinFilesFolders.feature:273 -apiTrashbin/trashbinFilesFolders.feature:274 -apiTrashbin/trashbinFilesFolders.feature:275 -apiTrashbin/trashbinFilesFolders.feature:276 -apiTrashbin/trashbinFilesFolders.feature:277 -apiTrashbin/trashbinFilesFolders.feature:278 -apiTrashbin/trashbinFilesFolders.feature:289 # apiTrashbin/trashbinRestore.feature:31 apiTrashbin/trashbinRestore.feature:32 @@ -535,8 +524,6 @@ apiTrashbin/trashbinRestore.feature:206 apiTrashbin/trashbinRestore.feature:207 apiTrashbin/trashbinRestore.feature:279 apiTrashbin/trashbinRestore.feature:280 -apiTrashbin/trashbinRestore.feature:295 -apiTrashbin/trashbinRestore.feature:310 apiTrashbin/trashbinRestore.feature:323 apiTrashbin/trashbinRestore.feature:324 apiTrashbin/trashbinRestore.feature:325 From 575cb0bd63aef7fcbcc2cca16f7c244781fbae5d Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 26 Aug 2020 22:42:37 +0545 Subject: [PATCH 267/346] Add TrashbinContext to local acceptance tests --- tests/acceptance/config/behat.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml index 883dd16793..36ce61dfef 100644 --- a/tests/acceptance/config/behat.yml +++ b/tests/acceptance/config/behat.yml @@ -26,6 +26,7 @@ default: - FavoritesContext: - FilesVersionsContext: - PublicWebDavContext: + - TrashbinContext: - WebDavPropertiesContext: extensions: From af3c076b5f9234e145bc7dfc87da3e2775475a0f Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 26 Aug 2020 18:04:44 +0545 Subject: [PATCH 268/346] [Tests-Only] Add api trashbin tests --- .../expected-failures-on-OC-storage.txt | 6 +++ .../apiTrashbin-trashbinDelete.feature | 52 +++++++++++++++++++ .../apiTrashbin-trashbinFilesFolders.feature | 38 ++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index 0d864a906a..b6d70902b0 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -469,6 +469,8 @@ apiSharePublicLink2/uploadToPublicLinkShare.feature:273 # https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file apiSharePublicLink2/uploadToPublicLinkShare.feature:273 # +# https://github.com/owncloud/product/issues/179 Propfind to trashbin endpoint requires UUID +# https://github.com/owncloud/product/issues/178 File deletion using dav gives unique string in filename in the trashbin apiTrashbin/trashbinDelete.feature:31 apiTrashbin/trashbinDelete.feature:32 apiTrashbin/trashbinDelete.feature:33 @@ -477,6 +479,8 @@ apiTrashbin/trashbinDelete.feature:37 apiTrashbin/trashbinDelete.feature:50 apiTrashbin/trashbinDelete.feature:67 # +# https://github.com/owncloud/product/issues/179 Propfind to trashbin endpoint requires UUID +# https://github.com/owncloud/product/issues/178 File deletion using dav gives unique string in filename in the trashbin apiTrashbin/trashbinFilesFolders.feature:44 apiTrashbin/trashbinFilesFolders.feature:45 apiTrashbin/trashbinFilesFolders.feature:60 @@ -498,6 +502,8 @@ apiTrashbin/trashbinFilesFolders.feature:242 apiTrashbin/trashbinFilesFolders.feature:255 apiTrashbin/trashbinFilesFolders.feature:256 # +# https://github.com/owncloud/product/issues/179 Propfind to trashbin endpoint requires UUID +# https://github.com/owncloud/product/issues/178 File deletion using dav gives unique string in filename in the trashbin apiTrashbin/trashbinRestore.feature:31 apiTrashbin/trashbinRestore.feature:32 apiTrashbin/trashbinRestore.feature:62 diff --git a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature new file mode 100644 index 0000000000..697c8787c1 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature @@ -0,0 +1,52 @@ +@api @files_trashbin-app-required +Feature: files and folders can be deleted from the trashbin + As a user + I want to delete files and folders from the trashbin + So that I can control my trashbin space and which files are kept in that space + + Background: + Given user "Alice" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "to delete" to "/textfile0.txt" + And user "Alice" has uploaded file with content "to delete" to "/textfile1.txt" + And user "Alice" has created folder "PARENT" + And user "Alice" has created folder "PARENT/CHILD" + And user "Alice" has uploaded file with content "to delete" to "/PARENT/parent.txt" + And user "Alice" has uploaded file with content "to delete" to "/PARENT/CHILD/child.txt" + + @smokeTest + @issue-product-139 + @issue-product-178 + @issue-product-179 + Scenario Outline: Trashbin cannot be emptied + # after fixing all issues delete this Scenario and use the one from oC10 core + # because of @issue-product-178 we cannot perform this test using new dav, so only old dav is being used + Given user "Alice" has uploaded file with content "file with comma" to "sample,0.txt" + And user "Alice" has uploaded file with content "file with comma" to "sample,1.txt" + And using old DAV path + And user "Alice" has deleted file "" + And user "Alice" has deleted file "" + And as "Alice" file "" should exist in the trashbin + And as "Alice" file "" should exist in the trashbin + When user "Alice" empties the trashbin using the trashbin API + Then as "Alice" the file with original path "" should exist in the trashbin + And as "Alice" the file with original path "" should exist in the trashbin + Examples: + | filename1 | filename2 | + | textfile0.txt | textfile1.txt | + | sample,0.txt | sample,1.txt | + + @smokeTest + @issue-ocis-reva-118 + @issue-product-179 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: delete a single file from the trashbin + Given user "Alice" has deleted file "/textfile0.txt" + And user "Alice" has deleted file "/textfile1.txt" + And user "Alice" has deleted file "/PARENT/parent.txt" + And user "Alice" has deleted file "/PARENT/CHILD/child.txt" + When user "Alice" deletes the file with original path "textfile1.txt" from the trashbin using the trashbin API + Then the HTTP status code should be "405" + And as "Alice" the file with original path "/textfile1.txt" should exist in the trashbin + But as "Alice" the file with original path "/textfile0.txt" should exist in the trashbin + And as "Alice" the file with original path "/PARENT/parent.txt" should exist in the trashbin + And as "Alice" the file with original path "/PARENT/CHILD/child.txt" should exist in the trashbin diff --git a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature new file mode 100644 index 0000000000..3da3f6e6f1 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature @@ -0,0 +1,38 @@ +@api @files_trashbin-app-required +Feature: files and folders exist in the trashbin after being deleted + As a user + I want deleted files and folders to be available in the trashbin + So that I can recover data easily + + Background: + Given user "Alice" has been created with default attributes and skeleton files + + @smokeTest + @issue-product-178 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: deleting a file moves it to trashbin + Given using old DAV path + When user "Alice" deletes file "/textfile0.txt" using the WebDAV API + And using new DAV path + When user "Alice" deletes file "/textfile1.txt" using the WebDAV API + Then as "Alice" the file with original path "/textfile0.txt" should exist in the trashbin + But as "Alice" the file with original path "/textfile1.txt" should not exist in the trashbin + And as "Alice" the file with original path "Alice/textfile1.txt" should exist in the trashbin + And as "Alice" file "/textfile0.txt" should not exist + And as "Alice" file "/textfile1.txt" should not exist + + @smokeTest + @issue-product-178 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: deleting a folder moves it to trashbin + Given user "Alice" has created folder "/tmp1" + And user "Alice" has created folder "/tmp2" + And using old DAV path + When user "Alice" deletes folder "/tmp1" using the WebDAV API + And using new DAV path + When user "Alice" deletes folder "/tmp2" using the WebDAV API + Then as "Alice" the folder with original path "/tmp1" should exist in the trashbin + But as "Alice" the folder with original path "/tmp2" should not exist in the trashbin + And as "Alice" the folder with original path "Alice/tmp2" should exist in the trashbin + And as "Alice" folder "/tmp1" should not exist + And as "Alice" folder "/tmp2" should not exist From 50c3f8104208fead4b697b7bf4ee74476184932d Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 27 Aug 2020 08:08:30 +0545 Subject: [PATCH 269/346] Also use new dav-path for empty-trashbin local scenarios --- .../apiOcisSpecific/apiTrashbin-trashbinDelete.feature | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature index 697c8787c1..c63c4f5f69 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature @@ -22,7 +22,7 @@ Feature: files and folders can be deleted from the trashbin # because of @issue-product-178 we cannot perform this test using new dav, so only old dav is being used Given user "Alice" has uploaded file with content "file with comma" to "sample,0.txt" And user "Alice" has uploaded file with content "file with comma" to "sample,1.txt" - And using old DAV path + And using DAV path And user "Alice" has deleted file "" And user "Alice" has deleted file "" And as "Alice" file "" should exist in the trashbin @@ -31,9 +31,11 @@ Feature: files and folders can be deleted from the trashbin Then as "Alice" the file with original path "" should exist in the trashbin And as "Alice" the file with original path "" should exist in the trashbin Examples: - | filename1 | filename2 | - | textfile0.txt | textfile1.txt | - | sample,0.txt | sample,1.txt | + | dav-path | filename1 | filename2 | + | old | textfile0.txt | textfile1.txt | + | old | sample,0.txt | sample,1.txt | + | new | textfile0.txt | textfile1.txt | + | new | sample,0.txt | sample,1.txt | @smokeTest @issue-ocis-reva-118 From a3de1bb477fdbc856133502302837fcd2da9a6fe Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 27 Aug 2020 08:10:02 +0545 Subject: [PATCH 270/346] Adjust local trashbin scenarios now that new DAV path works --- .../apiTrashbin-trashbinFilesFolders.feature | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature index 3da3f6e6f1..ff8fc05e62 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature @@ -16,8 +16,7 @@ Feature: files and folders exist in the trashbin after being deleted And using new DAV path When user "Alice" deletes file "/textfile1.txt" using the WebDAV API Then as "Alice" the file with original path "/textfile0.txt" should exist in the trashbin - But as "Alice" the file with original path "/textfile1.txt" should not exist in the trashbin - And as "Alice" the file with original path "Alice/textfile1.txt" should exist in the trashbin + And as "Alice" the file with original path "/textfile1.txt" should exist in the trashbin And as "Alice" file "/textfile0.txt" should not exist And as "Alice" file "/textfile1.txt" should not exist @@ -32,7 +31,6 @@ Feature: files and folders exist in the trashbin after being deleted And using new DAV path When user "Alice" deletes folder "/tmp2" using the WebDAV API Then as "Alice" the folder with original path "/tmp1" should exist in the trashbin - But as "Alice" the folder with original path "/tmp2" should not exist in the trashbin - And as "Alice" the folder with original path "Alice/tmp2" should exist in the trashbin + And as "Alice" the folder with original path "/tmp2" should exist in the trashbin And as "Alice" folder "/tmp1" should not exist And as "Alice" folder "/tmp2" should not exist From 97d64ec85efdf6ee4fb4d4fc5d95b8f126ab93b8 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 27 Aug 2020 03:11:23 +0000 Subject: [PATCH 271/346] Automated changelog update [skip ci] --- CHANGELOG.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95af2233ee..d333ca83b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ The following sections list the changes in ocis-reva unreleased. * Enhancement - Separate user and auth providers, add config for rest user: [#412](https://github.com/owncloud/ocis-reva/pull/412) * Enhancement - Update reva to v1.1.1-0.20200819100654-dcbf0c8ea187: [#447](https://github.com/owncloud/ocis-reva/pull/447) +* Enhancement - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea: [#454](https://github.com/owncloud/ocis-reva/pull/454) ## Details @@ -42,6 +43,39 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/owncloud/ocis-reva/pull/447 + +* Enhancement - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea: [#454](https://github.com/owncloud/ocis-reva/pull/454) + + - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea - Do not swallow 'not found' errors in + Stat [(reva/#1124)](https://github.com/cs3org/reva/pull/1124) - Rewire dav files to the + home storage [(reva/#1125)](https://github.com/cs3org/reva/pull/1125) - Do not restore + recycle entry on purge [(reva/#1099)](https://github.com/cs3org/reva/pull/1099) - + Allow listing the trashbin [(reva/#1091)](https://github.com/cs3org/reva/pull/1091) - + Restore and delete trash items via ocs + [(reva/#1103)](https://github.com/cs3org/reva/pull/1103) - Ensure ignoring public + stray shares [(reva/#1090)](https://github.com/cs3org/reva/pull/1090) - Ensure + ignoring stray shares [(reva/#1064)](https://github.com/cs3org/reva/pull/1064) - + Minor fixes in reva cmd, gateway uploads and smtpclient + [(reva/#1082)](https://github.com/cs3org/reva/pull/1082) - Owncloud driver - + propagate mtime on RemoveGrant + [(reva/#1115)](https://github.com/cs3org/reva/pull/1115) - Handle redirection + prefixes when extracting destination from URL + [(reva/#1111)](https://github.com/cs3org/reva/pull/1111) - Add UID and GID in ldap auth + driver [(reva/#1101)](https://github.com/cs3org/reva/pull/1101) - Add calens check to + verify changelog entries in CI + [(reva/#1077)](https://github.com/cs3org/reva/pull/1077) - Refactor Reva CLI with + prompts [(reva/#1072)](https://github.com/cs3org/reva/pull/1072j) - Get file info + using fxids from EOS [(reva/#1079)](https://github.com/cs3org/reva/pull/1079) - Update + LDAP user driver [(reva/#1088)](https://github.com/cs3org/reva/pull/1088) - System + information metrics cleanup + [(reva/#1114)](https://github.com/cs3org/reva/pull/1114) - System information + included in Prometheus metrics + [(reva/#1071)](https://github.com/cs3org/reva/pull/1071) - Add logic for resolving + storage references over webdav + [(reva/#1094)](https://github.com/cs3org/reva/pull/1094) + + https://github.com/owncloud/ocis-reva/pull/454 + # Changelog for [0.12.0] (2020-08-17) The following sections list the changes in ocis-reva 0.12.0. From e020630e44cff6fc5e6bd08ca6e8fbf94816ffe8 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 27 Aug 2020 08:36:47 +0200 Subject: [PATCH 272/346] Prepare release 0.13.0 --- .../separate-auth-user-providers.md | 0 .../{unreleased => 0.13.0_2020-08-27}/update-reva-to-20200728.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.13.0_2020-08-27}/separate-auth-user-providers.md (100%) rename changelog/{unreleased => 0.13.0_2020-08-27}/update-reva-to-20200728.md (100%) diff --git a/changelog/unreleased/separate-auth-user-providers.md b/changelog/0.13.0_2020-08-27/separate-auth-user-providers.md similarity index 100% rename from changelog/unreleased/separate-auth-user-providers.md rename to changelog/0.13.0_2020-08-27/separate-auth-user-providers.md diff --git a/changelog/unreleased/update-reva-to-20200728.md b/changelog/0.13.0_2020-08-27/update-reva-to-20200728.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200728.md rename to changelog/0.13.0_2020-08-27/update-reva-to-20200728.md From 1f90d0c18a8a29791c47e0a6dca678d24f5f2de6 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 27 Aug 2020 07:15:38 +0000 Subject: [PATCH 273/346] Automated changelog update [skip ci] --- CHANGELOG.md | 80 +++++++++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d333ca83b2..712c9817b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,13 +2,56 @@ The following sections list the changes in ocis-reva unreleased. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.12.0...master +[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.13.0...master + +## Summary + +* Enhancement - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea: [#454](https://github.com/owncloud/ocis-reva/pull/454) + +## Details + +* Enhancement - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea: [#454](https://github.com/owncloud/ocis-reva/pull/454) + + - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea - Do not swallow 'not found' errors in + Stat [(reva/#1124)](https://github.com/cs3org/reva/pull/1124) - Rewire dav files to the + home storage [(reva/#1125)](https://github.com/cs3org/reva/pull/1125) - Do not restore + recycle entry on purge [(reva/#1099)](https://github.com/cs3org/reva/pull/1099) - + Allow listing the trashbin [(reva/#1091)](https://github.com/cs3org/reva/pull/1091) - + Restore and delete trash items via ocs + [(reva/#1103)](https://github.com/cs3org/reva/pull/1103) - Ensure ignoring public + stray shares [(reva/#1090)](https://github.com/cs3org/reva/pull/1090) - Ensure + ignoring stray shares [(reva/#1064)](https://github.com/cs3org/reva/pull/1064) - + Minor fixes in reva cmd, gateway uploads and smtpclient + [(reva/#1082)](https://github.com/cs3org/reva/pull/1082) - Owncloud driver - + propagate mtime on RemoveGrant + [(reva/#1115)](https://github.com/cs3org/reva/pull/1115) - Handle redirection + prefixes when extracting destination from URL + [(reva/#1111)](https://github.com/cs3org/reva/pull/1111) - Add UID and GID in ldap auth + driver [(reva/#1101)](https://github.com/cs3org/reva/pull/1101) - Add calens check to + verify changelog entries in CI + [(reva/#1077)](https://github.com/cs3org/reva/pull/1077) - Refactor Reva CLI with + prompts [(reva/#1072)](https://github.com/cs3org/reva/pull/1072j) - Get file info + using fxids from EOS [(reva/#1079)](https://github.com/cs3org/reva/pull/1079) - Update + LDAP user driver [(reva/#1088)](https://github.com/cs3org/reva/pull/1088) - System + information metrics cleanup + [(reva/#1114)](https://github.com/cs3org/reva/pull/1114) - System information + included in Prometheus metrics + [(reva/#1071)](https://github.com/cs3org/reva/pull/1071) - Add logic for resolving + storage references over webdav + [(reva/#1094)](https://github.com/cs3org/reva/pull/1094) + + https://github.com/owncloud/ocis-reva/pull/454 + +# Changelog for [0.13.0] (2020-08-27) + +The following sections list the changes in ocis-reva 0.13.0. + +[0.13.0]: https://github.com/owncloud/ocis-reva/compare/v0.12.0...v0.13.0 ## Summary * Enhancement - Separate user and auth providers, add config for rest user: [#412](https://github.com/owncloud/ocis-reva/pull/412) * Enhancement - Update reva to v1.1.1-0.20200819100654-dcbf0c8ea187: [#447](https://github.com/owncloud/ocis-reva/pull/447) -* Enhancement - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea: [#454](https://github.com/owncloud/ocis-reva/pull/454) ## Details @@ -43,39 +86,6 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/owncloud/ocis-reva/pull/447 - -* Enhancement - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea: [#454](https://github.com/owncloud/ocis-reva/pull/454) - - - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea - Do not swallow 'not found' errors in - Stat [(reva/#1124)](https://github.com/cs3org/reva/pull/1124) - Rewire dav files to the - home storage [(reva/#1125)](https://github.com/cs3org/reva/pull/1125) - Do not restore - recycle entry on purge [(reva/#1099)](https://github.com/cs3org/reva/pull/1099) - - Allow listing the trashbin [(reva/#1091)](https://github.com/cs3org/reva/pull/1091) - - Restore and delete trash items via ocs - [(reva/#1103)](https://github.com/cs3org/reva/pull/1103) - Ensure ignoring public - stray shares [(reva/#1090)](https://github.com/cs3org/reva/pull/1090) - Ensure - ignoring stray shares [(reva/#1064)](https://github.com/cs3org/reva/pull/1064) - - Minor fixes in reva cmd, gateway uploads and smtpclient - [(reva/#1082)](https://github.com/cs3org/reva/pull/1082) - Owncloud driver - - propagate mtime on RemoveGrant - [(reva/#1115)](https://github.com/cs3org/reva/pull/1115) - Handle redirection - prefixes when extracting destination from URL - [(reva/#1111)](https://github.com/cs3org/reva/pull/1111) - Add UID and GID in ldap auth - driver [(reva/#1101)](https://github.com/cs3org/reva/pull/1101) - Add calens check to - verify changelog entries in CI - [(reva/#1077)](https://github.com/cs3org/reva/pull/1077) - Refactor Reva CLI with - prompts [(reva/#1072)](https://github.com/cs3org/reva/pull/1072j) - Get file info - using fxids from EOS [(reva/#1079)](https://github.com/cs3org/reva/pull/1079) - Update - LDAP user driver [(reva/#1088)](https://github.com/cs3org/reva/pull/1088) - System - information metrics cleanup - [(reva/#1114)](https://github.com/cs3org/reva/pull/1114) - System information - included in Prometheus metrics - [(reva/#1071)](https://github.com/cs3org/reva/pull/1071) - Add logic for resolving - storage references over webdav - [(reva/#1094)](https://github.com/cs3org/reva/pull/1094) - - https://github.com/owncloud/ocis-reva/pull/454 - # Changelog for [0.12.0] (2020-08-17) The following sections list the changes in ocis-reva 0.12.0. From df7fb80fbe972ac383427c98c5b1c8499a970789 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 28 Aug 2020 08:39:04 +0545 Subject: [PATCH 274/346] Bump oC10 test commit id --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 1e86347014..c4b45301f5 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': 'd65b8b5eefa0a59c8e9487196807d50588db698c', + 'coreCommit': '7b6a4cf6dab990d1624042589d22e348e027b74b', 'numberOfParts': 2 } } From a91e6b5445c60af778d8954b753480a822286a69 Mon Sep 17 00:00:00 2001 From: HariBhandari07 Date: Mon, 31 Aug 2020 11:53:20 +0545 Subject: [PATCH 275/346] Delete passing apiTrashbin test from bug demonstration --- .../apiTrashbin-trashbinFilesFolders.feature | 36 ------------------- 1 file changed, 36 deletions(-) delete mode 100644 tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature diff --git a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature deleted file mode 100644 index ff8fc05e62..0000000000 --- a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature +++ /dev/null @@ -1,36 +0,0 @@ -@api @files_trashbin-app-required -Feature: files and folders exist in the trashbin after being deleted - As a user - I want deleted files and folders to be available in the trashbin - So that I can recover data easily - - Background: - Given user "Alice" has been created with default attributes and skeleton files - - @smokeTest - @issue-product-178 - # after fixing all issues delete this Scenario and use the one from oC10 core - Scenario: deleting a file moves it to trashbin - Given using old DAV path - When user "Alice" deletes file "/textfile0.txt" using the WebDAV API - And using new DAV path - When user "Alice" deletes file "/textfile1.txt" using the WebDAV API - Then as "Alice" the file with original path "/textfile0.txt" should exist in the trashbin - And as "Alice" the file with original path "/textfile1.txt" should exist in the trashbin - And as "Alice" file "/textfile0.txt" should not exist - And as "Alice" file "/textfile1.txt" should not exist - - @smokeTest - @issue-product-178 - # after fixing all issues delete this Scenario and use the one from oC10 core - Scenario: deleting a folder moves it to trashbin - Given user "Alice" has created folder "/tmp1" - And user "Alice" has created folder "/tmp2" - And using old DAV path - When user "Alice" deletes folder "/tmp1" using the WebDAV API - And using new DAV path - When user "Alice" deletes folder "/tmp2" using the WebDAV API - Then as "Alice" the folder with original path "/tmp1" should exist in the trashbin - And as "Alice" the folder with original path "/tmp2" should exist in the trashbin - And as "Alice" folder "/tmp1" should not exist - And as "Alice" folder "/tmp2" should not exist From 249191007e0f07572c1f6ec8ccd835602efd4a5f Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 2 Sep 2020 08:19:20 +0545 Subject: [PATCH 276/346] Bump core commit 20200902 --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index c4b45301f5..f3d0df04b6 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '7b6a4cf6dab990d1624042589d22e348e027b74b', + 'coreCommit': '175ced019d71973b03afbefc6e79172a39ae9e28', 'numberOfParts': 2 } } From 2c17012428c1be9fe3fcfc397ac32ba009753116 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 2 Sep 2020 10:33:08 +0545 Subject: [PATCH 277/346] Adjust line numbers of trashbinFilesFolders scenarios --- .../expected-failures-on-OC-storage.txt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index b6d70902b0..0827df8643 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -491,16 +491,16 @@ apiTrashbin/trashbinFilesFolders.feature:104 apiTrashbin/trashbinFilesFolders.feature:105 apiTrashbin/trashbinFilesFolders.feature:136 apiTrashbin/trashbinFilesFolders.feature:137 -apiTrashbin/trashbinFilesFolders.feature:185 -apiTrashbin/trashbinFilesFolders.feature:186 -apiTrashbin/trashbinFilesFolders.feature:203 -apiTrashbin/trashbinFilesFolders.feature:204 -apiTrashbin/trashbinFilesFolders.feature:227 -apiTrashbin/trashbinFilesFolders.feature:228 -apiTrashbin/trashbinFilesFolders.feature:241 -apiTrashbin/trashbinFilesFolders.feature:242 -apiTrashbin/trashbinFilesFolders.feature:255 -apiTrashbin/trashbinFilesFolders.feature:256 +apiTrashbin/trashbinFilesFolders.feature:217 +apiTrashbin/trashbinFilesFolders.feature:218 +apiTrashbin/trashbinFilesFolders.feature:235 +apiTrashbin/trashbinFilesFolders.feature:236 +apiTrashbin/trashbinFilesFolders.feature:259 +apiTrashbin/trashbinFilesFolders.feature:260 +apiTrashbin/trashbinFilesFolders.feature:273 +apiTrashbin/trashbinFilesFolders.feature:274 +apiTrashbin/trashbinFilesFolders.feature:287 +apiTrashbin/trashbinFilesFolders.feature:288 # # https://github.com/owncloud/product/issues/179 Propfind to trashbin endpoint requires UUID # https://github.com/owncloud/product/issues/178 File deletion using dav gives unique string in filename in the trashbin From 4c7ba5b45eb690ebb5f1b5eabec1c219175cc43d Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 2 Sep 2020 15:18:44 +0545 Subject: [PATCH 278/346] Do not run comments, federation, notifications, systemtags tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index f3d0df04b6..1d1995e838 100644 --- a/.drone.star +++ b/.drone.star @@ -119,7 +119,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_OCIS':'true', - 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~@preview-extension-required&&~@local_storage', + 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~comments-app-required&&~@federation-app-required&&~@notifications-app-required&&~systemtags-app-required&&~@preview-extension-required&&~@local_storage', 'DIVIDE_INTO_NUM_PARTS': number_of_parts, 'RUN_PART': part_number, 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures-on-OC-storage.txt' From 2561a115c8293a3670f6ebedc6fa0b299b7c8e9e Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 2 Sep 2020 22:16:22 +0545 Subject: [PATCH 279/346] Do not run provisioning API tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 1d1995e838..daa6c07b0c 100644 --- a/.drone.star +++ b/.drone.star @@ -119,7 +119,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_OCIS':'true', - 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~comments-app-required&&~@federation-app-required&&~@notifications-app-required&&~systemtags-app-required&&~@preview-extension-required&&~@local_storage', + 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~comments-app-required&&~@federation-app-required&&~@notifications-app-required&&~systemtags-app-required&&~@provisioning_api-app-required&&~@preview-extension-required&&~@local_storage', 'DIVIDE_INTO_NUM_PARTS': number_of_parts, 'RUN_PART': part_number, 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures-on-OC-storage.txt' From 306f6b76b3333edb7b3c8f29611e58f7bd7cf027 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 8 Sep 2020 14:53:12 +0545 Subject: [PATCH 280/346] Bump core commit --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index daa6c07b0c..6fec0eeea0 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '175ced019d71973b03afbefc6e79172a39ae9e28', + 'coreCommit': '1f5506549cbebdc910b6d24681278e9a210f6d82', 'numberOfParts': 2 } } From 707607aa7c31878752c6417fa180ec215b0f238b Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 8 Sep 2020 15:14:31 +0545 Subject: [PATCH 281/346] Add acceptSharesToSharesFolder expected-failures --- tests/acceptance/expected-failures-on-OC-storage.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index 0827df8643..b456ecccae 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -184,6 +184,12 @@ apiShareManagement/acceptShares.feature:582 apiShareManagement/acceptShares.feature:652 apiShareManagement/acceptShares.feature:696 # +# Accepting a share returns empty response +apiShareManagement/acceptSharesToSharesFolder.feature:15 +apiShareManagement/acceptSharesToSharesFolder.feature:22 +apiShareManagement/acceptSharesToSharesFolder.feature:30 +apiShareManagement/acceptSharesToSharesFolder.feature:52 +# # https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist apiShareManagementBasic/createShare.feature:169 apiShareManagementBasic/createShare.feature:170 From dbe4d416fdfddbda1b13d78de97a1b5057cf9259 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 8 Sep 2020 16:52:37 +0545 Subject: [PATCH 282/346] Add issue links for failing acceptSharesToSharesFolder scenarios --- tests/acceptance/expected-failures-on-OC-storage.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index b456ecccae..56b9be3e56 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -184,9 +184,11 @@ apiShareManagement/acceptShares.feature:582 apiShareManagement/acceptShares.feature:652 apiShareManagement/acceptShares.feature:696 # -# Accepting a share returns empty response +# https://github.com/owncloud/product/issues/208 After accepting a share data in the received file cannot be downloaded apiShareManagement/acceptSharesToSharesFolder.feature:15 apiShareManagement/acceptSharesToSharesFolder.feature:22 +# +# https://github.com/owncloud/product/issues/207 Response is empty when accepting a share apiShareManagement/acceptSharesToSharesFolder.feature:30 apiShareManagement/acceptSharesToSharesFolder.feature:52 # From c99861130f2a2bc66bfb953097ec73006caaa3eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 1 Sep 2020 12:12:52 +0200 Subject: [PATCH 283/346] config cleanup --- docs/_index.md | 35 ++++ pkg/command/drivers.go | 95 ++++++++++ pkg/command/gateway.go | 22 +++ pkg/command/storageeos.go | 42 +---- pkg/command/storageeosdata.go | 44 +---- pkg/command/storagehome.go | 61 +------ pkg/command/storagehomedata.go | 63 +------ pkg/command/storageoc.go | 61 +------ pkg/command/storageocdata.go | 63 +------ pkg/command/storagepubliclink.go | 9 +- pkg/command/storageroot.go | 60 +------ pkg/config/config.go | 42 +++-- pkg/flagset/authbasic.go | 154 +--------------- pkg/flagset/authbearer.go | 72 +------- pkg/flagset/debug.go | 31 ++++ pkg/flagset/drivereos.go | 133 ++++++++++++++ pkg/flagset/driverlocal.go | 19 ++ pkg/flagset/driverowncloud.go | 47 +++++ pkg/flagset/frontend.go | 69 +------- pkg/flagset/gateway.go | 94 +++------- pkg/flagset/ldap.go | 134 ++++++++++++++ pkg/flagset/secret.go | 19 ++ pkg/flagset/sharing.go | 72 +------- pkg/flagset/storageeos.go | 252 ++------------------------ pkg/flagset/storageeosdata.go | 258 +++------------------------ pkg/flagset/storagehome.go | 249 ++------------------------ pkg/flagset/storagehomedata.go | 249 ++------------------------ pkg/flagset/storageoc.go | 251 ++------------------------ pkg/flagset/storageocdata.go | 251 ++------------------------ pkg/flagset/storagepubliclink.go | 142 ++------------- pkg/flagset/storageroot.go | 237 ++----------------------- pkg/flagset/tracing.go | 47 +++++ pkg/flagset/users.go | 292 +++++++------------------------ 33 files changed, 841 insertions(+), 2828 deletions(-) create mode 100644 pkg/command/drivers.go create mode 100644 pkg/flagset/debug.go create mode 100644 pkg/flagset/drivereos.go create mode 100644 pkg/flagset/driverlocal.go create mode 100644 pkg/flagset/driverowncloud.go create mode 100644 pkg/flagset/ldap.go create mode 100644 pkg/flagset/secret.go create mode 100644 pkg/flagset/tracing.go diff --git a/docs/_index.md b/docs/_index.md index 757f7f6f50..ab942240c0 100644 --- a/docs/_index.md +++ b/docs/_index.md @@ -8,3 +8,38 @@ geekdocFilePath: _index.md --- This service provides an ocis extension that wraps [reva](https://github.com/cs3org/reva/) and adds an opinionated configuration to it. + +It uses the port range 9140-9179 to preconfigure several services. + +| port | service | ++------+---------+ +| 9109 | health? | +| 9140 | frontend | +| 9141 | frontend debug | +| 9142 | gateway | +| 9143 | gateway debug | +| 9144 | users | +| 9145 | users debug | +| 9146 | authbasic | +| 9147 | authbasic debug | +| 9148 | authbearer | +| 9149 | authbearer debug | +| 9150 | sharing | +| 9151 | sharing debug | +| 9152 | storage root | +| 9153 | storage root debug | +| 9154 | storage home | +| 9155 | storage home debug | +| 9156 | storage home data | +| 9157 | storage home data debug | +| 9158 | storage eos | +| 9159 | storage eos debug | +| 9160 | storage eos data | +| 9161 | storage eos data debug | +| 9162 | storage oc | +| 9163 | storage oc debug | +| 9164 | storage oc data | +| 9165 | storage oc data debug | +| 9166-9177 | reserved for s3, wnd, custom + data providers | +| 9178 | storage public link | +| 9179 | storage public link data | diff --git a/pkg/command/drivers.go b/pkg/command/drivers.go new file mode 100644 index 0000000000..7140409b31 --- /dev/null +++ b/pkg/command/drivers.go @@ -0,0 +1,95 @@ +package command + +import ( + "github.com/owncloud/ocis-reva/pkg/config" +) + +func drivers(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "eos": map[string]interface{}{ + "namespace": cfg.Reva.Storages.Common.Root, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "uploads_namespace": cfg.Reva.Storages.EOS.UploadsNamespace, + "share_folder": cfg.Reva.Storages.Common.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, + }, + "eoshome": map[string]interface{}{ + "namespace": cfg.Reva.Storages.Common.Root, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "uploads_namespace": cfg.Reva.Storages.EOS.UploadsNamespace, + "share_folder": cfg.Reva.Storages.Common.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "user_layout": cfg.Reva.Storages.Common.UserLayout, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, + }, + "eosgrpc": map[string]interface{}{ + "namespace": cfg.Reva.Storages.Common.Root, + "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, + "share_folder": cfg.Reva.Storages.Common.ShareFolder, + "eos_binary": cfg.Reva.Storages.EOS.EosBinary, + "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, + "master_url": cfg.Reva.Storages.EOS.MasterURL, + "master_grpc_uri": cfg.Reva.Storages.EOS.GrpcURI, + "slave_url": cfg.Reva.Storages.EOS.SlaveURL, + "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, + "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, + "keytab": cfg.Reva.Storages.EOS.Keytab, + "single_username": cfg.Reva.Storages.EOS.SingleUsername, + "user_layout": cfg.Reva.Storages.Common.UserLayout, + "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, + "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, + "enable_home": cfg.Reva.Storages.Common.EnableHome, + "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, + }, + "local": map[string]interface{}{ + "root": cfg.Reva.Storages.Common.Root, + "share_folder": cfg.Reva.Storages.Common.ShareFolder, + }, + "localhome": map[string]interface{}{ + "root": cfg.Reva.Storages.Common.Root, + "share_folder": cfg.Reva.Storages.Common.ShareFolder, + "user_layout": cfg.Reva.Storages.Common.UserLayout, + }, + "owncloud": map[string]interface{}{ + "datadirectory": cfg.Reva.Storages.Common.Root, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.Common.EnableHome, + "user_layout": cfg.Reva.Storages.Common.UserLayout, + "userprovidersvc": cfg.Reva.Users.URL, + }, + "s3": map[string]interface{}{ + "region": cfg.Reva.Storages.S3.Region, + "access_key": cfg.Reva.Storages.S3.AccessKey, + "secret_key": cfg.Reva.Storages.S3.SecretKey, + "endpoint": cfg.Reva.Storages.S3.Endpoint, + "bucket": cfg.Reva.Storages.S3.Bucket, + "prefix": cfg.Reva.Storages.Common.Root, + }, + } +} diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index 842063bcd3..f2f7644e9f 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -241,3 +241,25 @@ func Gateway(cfg *config.Config) *cli.Command { }, } } + +func rules(cfg *config.Config) map[string]interface{} { + + return map[string]interface{}{ + cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL, + cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, + cfg.Reva.StorageHome.MountPath: cfg.Reva.StorageHome.URL, + cfg.Reva.StorageHome.MountID: cfg.Reva.StorageHome.URL, + cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL, + cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL, + cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL, + cfg.Reva.StorageOC.MountID: cfg.Reva.StorageOC.URL, + cfg.Reva.StorageS3.MountPath: cfg.Reva.StorageS3.URL, + cfg.Reva.StorageS3.MountID: cfg.Reva.StorageS3.URL, + cfg.Reva.StorageWND.MountPath: cfg.Reva.StorageWND.URL, + cfg.Reva.StorageWND.MountID: cfg.Reva.StorageWND.URL, + cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL, + cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL, + cfg.Reva.StoragePublicLink.MountPath: cfg.Reva.StoragePublicLink.URL, + cfg.Reva.StoragePublicLink.MountID: cfg.Reva.StoragePublicLink.URL, + } +} diff --git a/pkg/command/storageeos.go b/pkg/command/storageeos.go index 643fdbbaf4..6fab0e7636 100644 --- a/pkg/command/storageeos.go +++ b/pkg/command/storageeos.go @@ -87,46 +87,8 @@ func StorageEOS(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "storageprovider": map[string]interface{}{ - "driver": cfg.Reva.StorageEOS.Driver, - "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "eoshome": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - }, + "driver": cfg.Reva.StorageEOS.Driver, + "drivers": drivers(cfg), "mount_path": cfg.Reva.StorageEOS.MountPath, "mount_id": cfg.Reva.StorageEOS.MountID, "expose_data_server": cfg.Reva.StorageEOS.ExposeDataServer, diff --git a/pkg/command/storageeosdata.go b/pkg/command/storageeosdata.go index 3f208d0a50..e939e01274 100644 --- a/pkg/command/storageeosdata.go +++ b/pkg/command/storageeosdata.go @@ -88,47 +88,9 @@ func StorageEOSData(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "dataprovider": map[string]interface{}{ - "prefix": cfg.Reva.StorageEOSData.Prefix, - "driver": cfg.Reva.StorageEOSData.Driver, - "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "eoshome": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - }, + "prefix": cfg.Reva.StorageEOSData.Prefix, + "driver": cfg.Reva.StorageEOSData.Driver, + "drivers": drivers(cfg), "timeout": 86400, "insecure": true, "disable_tus": false, diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 4a67679742..c528ff8a81 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -87,65 +87,8 @@ func StorageHome(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "storageprovider": map[string]interface{}{ - "driver": cfg.Reva.StorageHome.Driver, - "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "eoshome": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - }, - "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": true, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, - "userprovidersvc": cfg.Reva.Users.URL, - }, - "s3": map[string]interface{}{ - "region": cfg.Reva.Storages.S3.Region, - "access_key": cfg.Reva.Storages.S3.AccessKey, - "secret_key": cfg.Reva.Storages.S3.SecretKey, - "endpoint": cfg.Reva.Storages.S3.Endpoint, - "bucket": cfg.Reva.Storages.S3.Bucket, - "prefix": cfg.Reva.Storages.S3.Prefix, - }, - }, + "driver": cfg.Reva.StorageHome.Driver, + "drivers": drivers(cfg), "mount_path": cfg.Reva.StorageHome.MountPath, "mount_id": cfg.Reva.StorageHome.MountID, "expose_data_server": cfg.Reva.StorageHome.ExposeDataServer, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 8c622e76a3..6f909bd2d9 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -88,66 +88,9 @@ func StorageHomeData(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "dataprovider": map[string]interface{}{ - "prefix": cfg.Reva.StorageHomeData.Prefix, - "driver": cfg.Reva.StorageHomeData.Driver, - "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "eoshome": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - }, - "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, - "userprovidersvc": cfg.Reva.Users.URL, - }, - "s3": map[string]interface{}{ - "region": cfg.Reva.Storages.S3.Region, - "access_key": cfg.Reva.Storages.S3.AccessKey, - "secret_key": cfg.Reva.Storages.S3.SecretKey, - "endpoint": cfg.Reva.Storages.S3.Endpoint, - "bucket": cfg.Reva.Storages.S3.Bucket, - "prefix": cfg.Reva.Storages.S3.Prefix, - }, - }, + "prefix": cfg.Reva.StorageHomeData.Prefix, + "driver": cfg.Reva.StorageHomeData.Driver, + "drivers": drivers(cfg), "timeout": 86400, "insecure": true, "disable_tus": false, diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index 01bc7a9fd1..dfe39702b4 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -87,65 +87,8 @@ func StorageOC(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "storageprovider": map[string]interface{}{ - "driver": cfg.Reva.StorageOC.Driver, - "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "eoshome": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - }, - "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, - "userprovidersvc": cfg.Reva.Users.URL, - }, - "s3": map[string]interface{}{ - "region": cfg.Reva.Storages.S3.Region, - "access_key": cfg.Reva.Storages.S3.AccessKey, - "secret_key": cfg.Reva.Storages.S3.SecretKey, - "endpoint": cfg.Reva.Storages.S3.Endpoint, - "bucket": cfg.Reva.Storages.S3.Bucket, - "prefix": cfg.Reva.Storages.S3.Prefix, - }, - }, + "driver": cfg.Reva.StorageOC.Driver, + "drivers": drivers(cfg), "mount_path": cfg.Reva.StorageOC.MountPath, "mount_id": cfg.Reva.StorageOC.MountID, "expose_data_server": cfg.Reva.StorageOC.ExposeDataServer, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 35cac2d1d3..414069d15c 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -88,66 +88,9 @@ func StorageOCData(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "dataprovider": map[string]interface{}{ - "prefix": cfg.Reva.StorageOCData.Prefix, - "driver": cfg.Reva.StorageOCData.Driver, - "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "eoshome": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - }, - "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, - "userprovidersvc": cfg.Reva.Users.URL, - }, - "s3": map[string]interface{}{ - "region": cfg.Reva.Storages.S3.Region, - "access_key": cfg.Reva.Storages.S3.AccessKey, - "secret_key": cfg.Reva.Storages.S3.SecretKey, - "endpoint": cfg.Reva.Storages.S3.Endpoint, - "bucket": cfg.Reva.Storages.S3.Bucket, - "prefix": cfg.Reva.Storages.S3.Prefix, - }, - }, + "prefix": cfg.Reva.StorageOCData.Prefix, + "driver": cfg.Reva.StorageOCData.Driver, + "drivers": drivers(cfg), "timeout": 86400, "insecure": true, "disable_tus": false, diff --git a/pkg/command/storagepubliclink.go b/pkg/command/storagepubliclink.go index d40313156f..21bcd6abd6 100644 --- a/pkg/command/storagepubliclink.go +++ b/pkg/command/storagepubliclink.go @@ -68,8 +68,11 @@ func StoragePublicLink(cfg *config.Config) *cli.Command { rcfg := map[string]interface{}{ "core": map[string]interface{}{ - "max_cpus": cfg.Reva.StoragePublicLink.MaxCPUs, - "tracing_enabled": true, + "max_cpus": cfg.Reva.StoragePublicLink.MaxCPUs, + "tracing_enabled": cfg.Tracing.Enabled, + "tracing_endpoint": cfg.Tracing.Endpoint, + "tracing_collector": cfg.Tracing.Collector, + "tracing_service_name": "storage-public-link", }, "shared": map[string]interface{}{ "jwt_secret": cfg.Reva.JWTSecret, @@ -83,8 +86,6 @@ func StoragePublicLink(cfg *config.Config) *cli.Command { "services": map[string]interface{}{ "publicstorageprovider": map[string]interface{}{ "mount_path": cfg.Reva.StoragePublicLink.MountPath, - "mount_id": cfg.Reva.StoragePublicLink.MountID, - "driver_addr": cfg.Reva.StoragePublicLink.PublicShareProviderAddr, "gateway_addr": cfg.Reva.Gateway.URL, }, "authprovider": map[string]interface{}{ diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index f63d23b6d0..ed9968018e 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -87,64 +87,8 @@ func StorageRoot(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "storageprovider": map[string]interface{}{ - "driver": cfg.Reva.StorageRoot.Driver, - "drivers": map[string]interface{}{ - "eos": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "eoshome": map[string]interface{}{ - "namespace": cfg.Reva.Storages.EOS.Namespace, - "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.EOS.ShareFolder, - "eos_binary": cfg.Reva.Storages.EOS.EosBinary, - "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, - "master_url": cfg.Reva.Storages.EOS.MasterURL, - "slave_url": cfg.Reva.Storages.EOS.SlaveURL, - "cache_directory": cfg.Reva.Storages.EOS.CacheDirectory, - "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, - "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, - "keytab": cfg.Reva.Storages.EOS.Keytab, - "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.EOS.Layout, - "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, - }, - "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Local.Root, - }, - "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, - }, - "s3": map[string]interface{}{ - "region": cfg.Reva.Storages.S3.Region, - "access_key": cfg.Reva.Storages.S3.AccessKey, - "secret_key": cfg.Reva.Storages.S3.SecretKey, - "endpoint": cfg.Reva.Storages.S3.Endpoint, - "bucket": cfg.Reva.Storages.S3.Bucket, - "prefix": cfg.Reva.Storages.S3.Prefix, - }, - }, + "driver": cfg.Reva.StorageRoot.Driver, + "drivers": drivers(cfg), "mount_path": cfg.Reva.StorageRoot.MountPath, "mount_id": cfg.Reva.StorageRoot.MountID, "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, diff --git a/pkg/config/config.go b/pkg/config/config.go index 6bb8cc5e0b..71bcaf1130 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -94,9 +94,7 @@ type PublicStorage struct { StoragePort PublicShareProviderAddr string - StorageProviderAddr string UserProviderAddr string - MountID string } // StorageConfig combines all available storage driver configuration parts. @@ -105,20 +103,18 @@ type StorageConfig struct { Local DriverLocal OwnCloud DriverOwnCloud S3 DriverS3 + Common DriverCommon // TODO checksums ... figure out what that is supposed to do } // DriverEOS defines the available EOS driver configuration. type DriverEOS struct { - // Namespace for metadata operations - Namespace string // ShadowNamespace for storing shadow data ShadowNamespace string - // ShareFolder defines the name of the folder in the - // shadowed namespace. Ex: /eos/user/.shadow/h/hugo/MyShares - ShareFolder string + // UploadsNamespace for storing upload data + UploadsNamespace string // Location of the eos binary. // Default is /usr/bin/eos. @@ -132,6 +128,10 @@ type DriverEOS struct { // Default is root://eos-example.org MasterURL string + // URI of the EOS MGM grpc server + // Default is empty + GrpcURI string + // URL of the Slave EOS MGM. // Default is root://eos-example.org SlaveURL string @@ -154,9 +154,6 @@ type DriverEOS struct { // UseKeyTabAuth changes will authenticate requests by using an EOS keytab. UseKeytab bool - // EnableHome enables the creation of home directories. - EnableHome bool - // SecProtocol specifies the xrootd security protocol to use between the server and EOS. SecProtocol string @@ -166,9 +163,6 @@ type DriverEOS struct { // SingleUsername is the username to use when SingleUserMode is enabled SingleUsername string - // Layout of the users home dir path - Layout string - // gateway service to use for uid lookups GatewaySVC string } @@ -178,13 +172,23 @@ type DriverLocal struct { Root string } +// DriverCommon defines common driver configuration options. +type DriverCommon struct { + // Root is the absolute path to the location of the data + Root string + //ShareFolder defines the name of the folder jailing all shares + ShareFolder string + // UserLayout contains the template used to construct + // the internal path, eg: `{{substr 0 1 .Username}}/{{.Username}}` + UserLayout string + // EnableHome enables the creation of home directories. + EnableHome bool +} + // DriverOwnCloud defines the available ownCloud storage driver configuration. type DriverOwnCloud struct { - Datadirectory string - Layout string - Redis string - Scan bool - EnableHome bool + Redis string + Scan bool } // DriverS3 defines the available S3 storage driver configuration. @@ -194,7 +198,6 @@ type DriverS3 struct { SecretKey string Endpoint string Bucket string - Prefix string } // OIDC defines the available OpenID Connect configuration. @@ -273,6 +276,7 @@ type Reva struct { AuthBearer Port Sharing Sharing StorageRoot StoragePort + StorageRootData StoragePort StorageHome StoragePort StorageHomeData StoragePort StorageEOS StoragePort diff --git a/pkg/flagset/authbasic.go b/pkg/flagset/authbasic.go index 4e10a77550..09ee616fbf 100644 --- a/pkg/flagset/authbasic.go +++ b/pkg/flagset/authbasic.go @@ -7,42 +7,7 @@ import ( // AuthBasicWithConfig applies cfg to the root flagset func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -52,35 +17,6 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_AUTH_BASIC_DEBUG_ADDR"}, Destination: &cfg.Reva.AuthBasic.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - - // REVA - - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, // Auth @@ -99,87 +35,6 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.AuthProvider.JSON, }, - // LDAP - - &cli.StringFlag{ - Name: "ldap-hostname", - Value: "localhost", - Usage: "LDAP hostname", - EnvVars: []string{"REVA_LDAP_HOSTNAME"}, - Destination: &cfg.Reva.LDAP.Hostname, - }, - &cli.IntFlag{ - Name: "ldap-port", - Value: 9126, - Usage: "LDAP port", - EnvVars: []string{"REVA_LDAP_PORT"}, - Destination: &cfg.Reva.LDAP.Port, - }, - &cli.StringFlag{ - Name: "ldap-base-dn", - Value: "dc=example,dc=org", - Usage: "LDAP basedn", - EnvVars: []string{"REVA_LDAP_BASE_DN"}, - Destination: &cfg.Reva.LDAP.BaseDN, - }, - &cli.StringFlag{ - Name: "ldap-loginfilter", - Value: "(&(objectclass=posixAccount)(|(cn={{login}})(mail={{login}})))", - Usage: "LDAP login filter", - EnvVars: []string{"REVA_LDAP_LOGINFILTER"}, - Destination: &cfg.Reva.LDAP.LoginFilter, - }, - &cli.StringFlag{ - Name: "ldap-bind-dn", - Value: "cn=reva,ou=sysusers,dc=example,dc=org", - Usage: "LDAP bind dn", - EnvVars: []string{"REVA_LDAP_BIND_DN"}, - Destination: &cfg.Reva.LDAP.BindDN, - }, - &cli.StringFlag{ - Name: "ldap-bind-password", - Value: "reva", - Usage: "LDAP bind password", - EnvVars: []string{"REVA_LDAP_BIND_PASSWORD"}, - Destination: &cfg.Reva.LDAP.BindPassword, - }, - &cli.StringFlag{ - Name: "ldap-idp", - Value: "https://localhost:9200", - Usage: "Identity provider to use for users", - EnvVars: []string{"REVA_LDAP_IDP"}, - Destination: &cfg.Reva.LDAP.IDP, - }, - // ldap dn is always the dn - &cli.StringFlag{ - Name: "ldap-schema-uid", - Value: "ownclouduuid", - Usage: "LDAP schema uid", - EnvVars: []string{"REVA_LDAP_SCHEMA_UID"}, - Destination: &cfg.Reva.LDAP.Schema.UID, - }, - &cli.StringFlag{ - Name: "ldap-schema-mail", - Value: "mail", - Usage: "LDAP schema mail", - EnvVars: []string{"REVA_LDAP_SCHEMA_MAIL"}, - Destination: &cfg.Reva.LDAP.Schema.Mail, - }, - &cli.StringFlag{ - Name: "ldap-schema-displayName", - Value: "displayname", - Usage: "LDAP schema displayName", - EnvVars: []string{"REVA_LDAP_SCHEMA_DISPLAYNAME"}, - Destination: &cfg.Reva.LDAP.Schema.DisplayName, - }, - &cli.StringFlag{ - Name: "ldap-schema-cn", - Value: "cn", - Usage: "LDAP schema cn", - EnvVars: []string{"REVA_LDAP_SCHEMA_CN"}, - Destination: &cfg.Reva.LDAP.Schema.CN, - }, - // Services // AuthBasic @@ -219,4 +74,11 @@ func AuthBasicWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_AUTH_BASIC_SERVICES"}, }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + flags = append(flags, LDAPWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/authbearer.go b/pkg/flagset/authbearer.go index 17a8d07858..181032c892 100644 --- a/pkg/flagset/authbearer.go +++ b/pkg/flagset/authbearer.go @@ -7,42 +7,7 @@ import ( // AuthBearerWithConfig applies cfg to the root flagset func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -52,35 +17,6 @@ func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_AUTH_BEARER_DEBUG_ADDR"}, Destination: &cfg.Reva.AuthBearer.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - - // REVA - - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, // OIDC @@ -165,4 +101,10 @@ func AuthBearerWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_AUTH_BEARER_SERVICES"}, }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/debug.go b/pkg/flagset/debug.go new file mode 100644 index 0000000000..0056942f5d --- /dev/null +++ b/pkg/flagset/debug.go @@ -0,0 +1,31 @@ +package flagset + +import ( + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// DebugWithConfig applies common debug config cfg to the flagset +func DebugWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "debug-token", + Value: "", + Usage: "Token to grant metrics access", + EnvVars: []string{"REVA_DEBUG_TOKEN"}, + Destination: &cfg.Debug.Token, + }, + &cli.BoolFlag{ + Name: "debug-pprof", + Usage: "Enable pprof debugging", + EnvVars: []string{"REVA_DEBUG_PPROF"}, + Destination: &cfg.Debug.Pprof, + }, + &cli.BoolFlag{ + Name: "debug-zpages", + Usage: "Enable zpages debugging", + EnvVars: []string{"REVA_DEBUG_ZPAGES"}, + Destination: &cfg.Debug.Zpages, + }, + } +} diff --git a/pkg/flagset/drivereos.go b/pkg/flagset/drivereos.go new file mode 100644 index 0000000000..3ea27170a7 --- /dev/null +++ b/pkg/flagset/drivereos.go @@ -0,0 +1,133 @@ +package flagset + +import ( + "os" + + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// DriverEOSWithConfig applies cfg to the root flagset +func DriverEOSWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.StringFlag{ + Name: "storage-eos-namespace", + Value: "/eos/dockertest/reva", + Usage: "Namespace for metadata operations", + EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, + Destination: &cfg.Reva.Storages.Common.Root, + }, + &cli.StringFlag{ + Name: "storage-eos-shadow-namespace", + // Defaults to path.Join(c.Namespace, ".shadow") + Usage: "Shadow namespace where share references are stored", + EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, + Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, + }, + &cli.StringFlag{ + Name: "storage-eos-share-folder", + Value: "/Shares", + Usage: "name of the share folder", + EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.Common.ShareFolder, + }, + &cli.StringFlag{ + Name: "storage-eos-binary", + Value: "/usr/bin/eos", + Usage: "Location of the eos binary", + EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.EosBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-xrdcopy-binary", + Value: "/usr/bin/xrdcopy", + Usage: "Location of the xrdcopy binary", + EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, + Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, + }, + &cli.StringFlag{ + Name: "storage-eos-master-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Master EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, + Destination: &cfg.Reva.Storages.EOS.MasterURL, + }, + &cli.StringFlag{ + Name: "storage-eos-slave-url", + Value: "root://eos-mgm1.eoscluster.cern.ch:1094", + Usage: "URL of the Slave EOS MGM", + EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, + Destination: &cfg.Reva.Storages.EOS.SlaveURL, + }, + &cli.StringFlag{ + Name: "storage-eos-cache-directory", + Value: os.TempDir(), + Usage: "Location on the local fs where to store reads", + EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, + Destination: &cfg.Reva.Storages.EOS.CacheDirectory, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-logging", + Usage: "Enables logging of the commands executed", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, + Destination: &cfg.Reva.Storages.EOS.EnableLogging, + }, + &cli.BoolFlag{ + Name: "storage-eos-show-hidden-sysfiles", + Usage: "show internal EOS files like .sys.v# and .sys.a# files.", + EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, + Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, + }, + &cli.BoolFlag{ + Name: "storage-eos-force-singleuser-mode", + Usage: "force connections to EOS to use SingleUsername", + EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, + Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, + }, + &cli.BoolFlag{ + Name: "storage-eos-use-keytab", + Usage: "authenticate requests by using an EOS keytab", + EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.UseKeytab, + }, + &cli.BoolFlag{ + Name: "storage-eos-enable-home", + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.Common.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-eos-sec-protocol", + Usage: "the xrootd security protocol to use between the server and EOS", + EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, + Destination: &cfg.Reva.Storages.EOS.SecProtocol, + }, + &cli.StringFlag{ + Name: "storage-eos-keytab", + Usage: "the location of the keytab to use to authenticate to EOS", + EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, + Destination: &cfg.Reva.Storages.EOS.Keytab, + }, + &cli.StringFlag{ + Name: "storage-eos-single-username", + Usage: "the username to use when SingleUserMode is enabled", + EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, + Destination: &cfg.Reva.Storages.EOS.SingleUsername, + }, + &cli.StringFlag{ + Name: "storage-eos-layout", + Value: "{{substr 0 1 .Username}}/{{.Username}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, + Destination: &cfg.Reva.Storages.Common.UserLayout, + }, + &cli.StringFlag{ + Name: "storage-eos-gatewaysvc", + Value: "localhost:9142", + Usage: "URL to use for the reva gateway service", + EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, + Destination: &cfg.Reva.Storages.EOS.GatewaySVC, + }, + } +} diff --git a/pkg/flagset/driverlocal.go b/pkg/flagset/driverlocal.go new file mode 100644 index 0000000000..ba8eda4da6 --- /dev/null +++ b/pkg/flagset/driverlocal.go @@ -0,0 +1,19 @@ +package flagset + +import ( + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// DriverLocalWithConfig applies cfg to the root flagset +func DriverLocalWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "storage-local-root", + Value: "/var/tmp/reva/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, + Destination: &cfg.Reva.Storages.Local.Root, + }, + } +} diff --git a/pkg/flagset/driverowncloud.go b/pkg/flagset/driverowncloud.go new file mode 100644 index 0000000000..a33e94d41e --- /dev/null +++ b/pkg/flagset/driverowncloud.go @@ -0,0 +1,47 @@ +package flagset + +import ( + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// DriverOwnCloudWithConfig applies cfg to the root flagset +func DriverOwnCloudWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "storage-owncloud-datadir", + Value: "/var/tmp/reva/data", + Usage: "the path to the owncloud data directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, + Destination: &cfg.Reva.Storages.Common.Root, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-scan", + Value: true, + Usage: "scan files on startup to add fileids", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, + Destination: &cfg.Reva.Storages.OwnCloud.Scan, + }, + &cli.StringFlag{ + Name: "storage-owncloud-redis", + Value: ":6379", + Usage: "the address of the redis server", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, + Destination: &cfg.Reva.Storages.OwnCloud.Redis, + }, + &cli.BoolFlag{ + Name: "storage-owncloud-enable-home", + Value: false, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.Common.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-owncloud-layout", + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, + Destination: &cfg.Reva.Storages.Common.UserLayout, + }, + } +} diff --git a/pkg/flagset/frontend.go b/pkg/flagset/frontend.go index 94ec4a9347..5dbd7b2220 100644 --- a/pkg/flagset/frontend.go +++ b/pkg/flagset/frontend.go @@ -7,42 +7,7 @@ import ( // FrontendWithConfig applies cfg to the root flagset func FrontendWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -52,35 +17,9 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_FRONTEND_DEBUG_ADDR"}, Destination: &cfg.Reva.Frontend.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, // REVA - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, &cli.StringFlag{ Name: "transfer-secret", Value: "replace-me-with-a-transfer-secret", @@ -202,4 +141,10 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.UploadHTTPMethodOverride, }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index 68c9838a3f..0da9e9df05 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -7,42 +7,7 @@ import ( // GatewayWithConfig applies cfg to the root flagset func GatewayWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -52,35 +17,9 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_GATEWAY_DEBUG_ADDR"}, Destination: &cfg.Reva.Gateway.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, // REVA - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, &cli.StringFlag{ Name: "transfer-secret", Value: "replace-me-with-a-transfer-secret", @@ -229,6 +168,13 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.Sharing.URL, }, + &cli.StringSliceFlag{ + Name: "storage-registry-rule", + Value: cli.NewStringSlice(), + Usage: `Replace the generated storage registry rules with this set --storage-registry-rule "/eos=localhost:9158" [--storage-registry-rule "1284d238-aa92-42ce-bdc4-0b0000009162=localhost:9162"]`, + EnvVars: []string{"REVA_STORAGE_REGISTRY_RULES"}, + }, + &cli.StringFlag{ Name: "storage-root-url", Value: "localhost:9152", @@ -266,11 +212,8 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.StorageHome.MountPath, }, &cli.StringFlag{ - Name: "storage-home-mount-id", - // This is tho mount id of the /oc storage - // set it to 1284d238-aa92-42ce-bdc4-0b0000009158 for /eos - // Value: "1284d238-aa92-42ce-bdc4-0b0000009162", /os - Value: "1284d238-aa92-42ce-bdc4-0b0000009154", // /home + Name: "storage-home-mount-id", + Value: "1284d238-aa92-42ce-bdc4-0b0000009154", Usage: "mount id", EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_ID"}, Destination: &cfg.Reva.StorageHome.MountID, @@ -319,12 +262,27 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_MOUNT_ID"}, Destination: &cfg.Reva.StorageOC.MountID, }, + &cli.StringFlag{ - Name: "public-links-url", + Name: "public-link-url", Value: "localhost:10054", Usage: "URL to use for the public links service", EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_URL"}, Destination: &cfg.Reva.StoragePublicLink.URL, }, + &cli.StringFlag{ + Name: "storage-public-link-mount-path", + Value: "/public/", + Usage: "mount path", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH"}, + Destination: &cfg.Reva.StoragePublicLink.MountPath, + }, + // public-link has no mount id } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/ldap.go b/pkg/flagset/ldap.go new file mode 100644 index 0000000000..0aa54693f9 --- /dev/null +++ b/pkg/flagset/ldap.go @@ -0,0 +1,134 @@ +package flagset + +import ( + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// LDAPWithConfig applies LDAP cfg to the flagset +func LDAPWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "ldap-hostname", + Value: "localhost", + Usage: "LDAP hostname", + EnvVars: []string{"REVA_LDAP_HOSTNAME"}, + Destination: &cfg.Reva.LDAP.Hostname, + }, + &cli.IntFlag{ + Name: "ldap-port", + Value: 9126, + Usage: "LDAP port", + EnvVars: []string{"REVA_LDAP_PORT"}, + Destination: &cfg.Reva.LDAP.Port, + }, + &cli.StringFlag{ + Name: "ldap-base-dn", + Value: "dc=example,dc=org", + Usage: "LDAP basedn", + EnvVars: []string{"REVA_LDAP_BASE_DN"}, + Destination: &cfg.Reva.LDAP.BaseDN, + }, + &cli.StringFlag{ + Name: "ldap-loginfilter", + Value: "(&(objectclass=posixAccount)(|(cn={{login}})(mail={{login}})))", + Usage: "LDAP login filter", + EnvVars: []string{"REVA_LDAP_LOGINFILTER"}, + Destination: &cfg.Reva.LDAP.LoginFilter, + }, + &cli.StringFlag{ + Name: "ldap-userfilter", + Value: "(&(objectclass=posixAccount)(|(ownclouduuid={{.OpaqueId}})(cn={{.OpaqueId}})))", + Usage: "LDAP filter used when getting a user. The CS3 userid properties {{.OpaqueId}} and {{.Idp}} are available.", + EnvVars: []string{"REVA_LDAP_USERFILTER"}, + Destination: &cfg.Reva.LDAP.UserFilter, + }, + &cli.StringFlag{ + Name: "ldap-attributefilter", + Value: "(&(objectclass=posixAccount)({{attr}}={{value}}))", + Usage: "LDAP filter used when searching for a user by claim/attribute. {{attr}} will be replaced with the attribute, {{value}} with the value.", + EnvVars: []string{"REVA_LDAP_ATTRIBUTEFILTER"}, + Destination: &cfg.Reva.LDAP.AttributeFilter, + }, + &cli.StringFlag{ + Name: "ldap-findfilter", + Value: "(&(objectclass=posixAccount)(|(cn={{query}}*)(displayname={{query}}*)(mail={{query}}*)))", + Usage: "LDAP filter used when searching for recipients. {{query}} will be replaced with the search query", + EnvVars: []string{"REVA_LDAP_FINDFILTER"}, + Destination: &cfg.Reva.LDAP.FindFilter, + }, + &cli.StringFlag{ + Name: "ldap-groupfilter", + // FIXME the reva implementation needs to use the memberof overlay to get the cn when it only has the uuid, + // because the ldap schema either uses the dn or the member(of) attributes to establish membership + Value: "(&(objectclass=posixGroup)(ownclouduuid={{.OpaqueId}}*))", // This filter will never work + Usage: "LDAP filter used when getting the groups of a user. The CS3 userid properties {{.OpaqueId}} and {{.Idp}} are available.", + EnvVars: []string{"REVA_LDAP_GROUPFILTER"}, + Destination: &cfg.Reva.LDAP.GroupFilter, + }, + &cli.StringFlag{ + Name: "ldap-bind-dn", + Value: "cn=reva,ou=sysusers,dc=example,dc=org", + Usage: "LDAP bind dn", + EnvVars: []string{"REVA_LDAP_BIND_DN"}, + Destination: &cfg.Reva.LDAP.BindDN, + }, + &cli.StringFlag{ + Name: "ldap-bind-password", + Value: "reva", + Usage: "LDAP bind password", + EnvVars: []string{"REVA_LDAP_BIND_PASSWORD"}, + Destination: &cfg.Reva.LDAP.BindPassword, + }, + &cli.StringFlag{ + Name: "ldap-idp", + Value: "https://localhost:9200", + Usage: "Identity provider to use for users", + EnvVars: []string{"REVA_LDAP_IDP"}, + Destination: &cfg.Reva.LDAP.IDP, + }, + // ldap dn is always the dn + &cli.StringFlag{ + Name: "ldap-schema-uid", + Value: "ownclouduuid", + Usage: "LDAP schema uid", + EnvVars: []string{"REVA_LDAP_SCHEMA_UID"}, + Destination: &cfg.Reva.LDAP.Schema.UID, + }, + &cli.StringFlag{ + Name: "ldap-schema-mail", + Value: "mail", + Usage: "LDAP schema mail", + EnvVars: []string{"REVA_LDAP_SCHEMA_MAIL"}, + Destination: &cfg.Reva.LDAP.Schema.Mail, + }, + &cli.StringFlag{ + Name: "ldap-schema-displayName", + Value: "displayname", + Usage: "LDAP schema displayName", + EnvVars: []string{"REVA_LDAP_SCHEMA_DISPLAYNAME"}, + Destination: &cfg.Reva.LDAP.Schema.DisplayName, + }, + &cli.StringFlag{ + Name: "ldap-schema-cn", + Value: "cn", + Usage: "LDAP schema cn", + EnvVars: []string{"REVA_LDAP_SCHEMA_CN"}, + Destination: &cfg.Reva.LDAP.Schema.CN, + }, + &cli.StringFlag{ + Name: "ldap-schema-uidnumber", + Value: "uidnumber", + Usage: "LDAP schema uidnumber", + EnvVars: []string{"REVA_LDAP_SCHEMA_UID_NUMBER"}, + Destination: &cfg.Reva.LDAP.Schema.UIDNumber, + }, + &cli.StringFlag{ + Name: "ldap-schema-gidnumber", + Value: "gidnumber", + Usage: "LDAP schema gidnumber", + EnvVars: []string{"REVA_LDAP_SCHEMA_GIDNUMBER"}, + Destination: &cfg.Reva.LDAP.Schema.GIDNumber, + }, + } +} diff --git a/pkg/flagset/secret.go b/pkg/flagset/secret.go new file mode 100644 index 0000000000..deaa83aa74 --- /dev/null +++ b/pkg/flagset/secret.go @@ -0,0 +1,19 @@ +package flagset + +import ( + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// SecretWithConfig applies cfg to the root flagset +func SecretWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "jwt-secret", + Value: "Pive-Fumkiu4", + Usage: "Shared jwt secret for reva service communication", + EnvVars: []string{"REVA_JWT_SECRET"}, + Destination: &cfg.Reva.JWTSecret, + }, + } +} diff --git a/pkg/flagset/sharing.go b/pkg/flagset/sharing.go index b6f5420c2e..34252bf976 100644 --- a/pkg/flagset/sharing.go +++ b/pkg/flagset/sharing.go @@ -7,42 +7,7 @@ import ( // SharingWithConfig applies cfg to the root flagset func SharingWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -52,35 +17,6 @@ func SharingWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_SHARING_DEBUG_ADDR"}, Destination: &cfg.Reva.Sharing.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - - // REVA - - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, // Services @@ -142,4 +78,10 @@ func SharingWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.Sharing.PublicDriver, }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/storageeos.go b/pkg/flagset/storageeos.go index 29414ad747..51c95f04e4 100644 --- a/pkg/flagset/storageeos.go +++ b/pkg/flagset/storageeos.go @@ -1,50 +1,13 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageEOSWithConfig applies cfg to the root flagset func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -54,39 +17,8 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageEOS.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - // REVA - - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, - - // Services - - // Storage oc + // Storage eos &cli.StringFlag{ Name: "network", @@ -165,176 +97,14 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME_CREATION"}, Destination: &cfg.Reva.StorageEOS.EnableHomeCreation, }, - - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "/eos/dockertest/reva", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "/Shares", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - &cli.StringFlag{ - Name: "storage-eos-gatewaysvc", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, - Destination: &cfg.Reva.Storages.EOS.GatewaySVC, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: false, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Id.OpaqueId}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + flags = append(flags, DriverEOSWithConfig(cfg)...) + flags = append(flags, DriverLocalWithConfig(cfg)...) + flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/storageeosdata.go b/pkg/flagset/storageeosdata.go index e8b5201e64..1249d64214 100644 --- a/pkg/flagset/storageeosdata.go +++ b/pkg/flagset/storageeosdata.go @@ -1,50 +1,13 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageEOSDataWithConfig applies cfg to the root flagset func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -54,35 +17,6 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageEOSData.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - - // REVA - - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, // Services @@ -144,177 +78,6 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.StorageEOSData.TempFolder, }, - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "/eos/dockertest/reva", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "/Shares", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - &cli.StringFlag{ - Name: "storage-eos-gatewaysvc", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, - Destination: &cfg.Reva.Storages.EOS.GatewaySVC, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: false, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Id.OpaqueId}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - // Gateway &cli.StringFlag{ @@ -324,5 +87,24 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_GATEWAY_URL"}, Destination: &cfg.Reva.Gateway.URL, }, + + // User provider + + &cli.StringFlag{ + Name: "users-url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_USERS_URL"}, + Destination: &cfg.Reva.Users.URL, + }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + flags = append(flags, DriverEOSWithConfig(cfg)...) + flags = append(flags, DriverLocalWithConfig(cfg)...) + flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index 8a7b1dabf8..c771ed2686 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -1,50 +1,13 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageHomeWithConfig applies cfg to the root flagset func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -54,35 +17,6 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageHome.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - - // REVA - - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, // Services @@ -170,178 +104,6 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.StorageHome.EnableHomeCreation, }, - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "/eos/dockertest/reva/users", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "/Shares", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Value: true, - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - &cli.StringFlag{ - Name: "storage-eos-gatewaysvc", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, - Destination: &cfg.Reva.Storages.EOS.GatewaySVC, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: true, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Id.OpaqueId}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - // User provider &cli.StringFlag{ @@ -352,4 +114,13 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.Users.URL, }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + flags = append(flags, DriverEOSWithConfig(cfg)...) + flags = append(flags, DriverLocalWithConfig(cfg)...) + flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 70bfc2419a..494a8c50d4 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -1,50 +1,13 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageHomeDataWithConfig applies cfg to the root flagset func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -54,35 +17,6 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DATA_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageHomeData.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - - // REVA - - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, // Services @@ -144,178 +78,6 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.StorageHomeData.TempFolder, }, - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "/eos/dockertest/reva/users", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "/Shares", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-mgm1.eoscluster.cern.ch:1094", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Value: true, - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - &cli.StringFlag{ - Name: "storage-eos-gatewaysvc", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, - Destination: &cfg.Reva.Storages.EOS.GatewaySVC, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: true, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Id.OpaqueId}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - // Gateway &cli.StringFlag{ @@ -336,4 +98,13 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.Users.URL, }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + flags = append(flags, DriverEOSWithConfig(cfg)...) + flags = append(flags, DriverLocalWithConfig(cfg)...) + flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index cfdc9e6237..30f3153a7a 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -1,50 +1,13 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageOCWithConfig applies cfg to the root flagset func StorageOCWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -54,35 +17,6 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageOC.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - - // REVA - - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, // Services @@ -166,180 +100,6 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.StorageOC.EnableHomeCreation, }, - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-example.org", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-example.org", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Value: "", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Value: "", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Value: "", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - &cli.StringFlag{ - Name: "storage-eos-gatewaysvc", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, - Destination: &cfg.Reva.Storages.EOS.GatewaySVC, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: false, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Id.OpaqueId}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - // User provider &cli.StringFlag{ @@ -350,4 +110,13 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.Users.URL, }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + flags = append(flags, DriverEOSWithConfig(cfg)...) + flags = append(flags, DriverLocalWithConfig(cfg)...) + flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index cb27bd8b17..3952bb595b 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -1,50 +1,13 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageOCDataWithConfig applies cfg to the root flagset func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -54,35 +17,6 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DATA_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageOCData.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - - // REVA - - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, // Services @@ -144,180 +78,6 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.StorageOCData.TempFolder, }, - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-shadow-namespace", - // Defaults to path.Join(c.Namespace, ".shadow") - Usage: "Shadow namespace where share references are stored", - EnvVars: []string{"REVA_STORAGE_EOS_SHADOW_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.ShadowNamespace, - }, - &cli.StringFlag{ - Name: "storage-eos-share-folder", - Value: "", - Usage: "name of the share folder", - EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.EOS.ShareFolder, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-example.org", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-example.org", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Value: "", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Value: "", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Value: "", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - &cli.StringFlag{ - Name: "storage-eos-gatewaysvc", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, - Destination: &cfg.Reva.Storages.EOS.GatewaySVC, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: false, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Id.OpaqueId}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, - // Gateway &cli.StringFlag{ @@ -338,4 +98,13 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.Users.URL, }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + flags = append(flags, DriverEOSWithConfig(cfg)...) + flags = append(flags, DriverLocalWithConfig(cfg)...) + flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/storagepubliclink.go b/pkg/flagset/storagepubliclink.go index a665d959f7..ebe429d539 100644 --- a/pkg/flagset/storagepubliclink.go +++ b/pkg/flagset/storagepubliclink.go @@ -7,74 +7,16 @@ import ( // StoragePublicLink applies cfg to the root flagset func StoragePublicLink(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ + &cli.StringFlag{ Name: "debug-addr", - Value: "0.0.0.0:10053", + Value: "0.0.0.0:9179", Usage: "Address to bind debug server", EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DEBUG_ADDR"}, Destination: &cfg.Reva.StoragePublicLink.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, + &cli.StringFlag{ Name: "network", Value: "tcp", @@ -91,74 +33,19 @@ func StoragePublicLink(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "addr", - Value: "localhost:10054", + Value: "0.0.0.0:9178", Usage: "Address to bind reva service", EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_ADDR"}, Destination: &cfg.Reva.StoragePublicLink.Addr, }, - &cli.StringSliceFlag{ - Name: "service", - Value: cli.NewStringSlice("storageprovider"), - Usage: "--service storageprovider [--service otherservice]", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_SERVICES"}, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9178", + Usage: "Address to bind reva service", + EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_URL"}, + Destination: &cfg.Reva.StoragePublicLink.URL, }, - &cli.StringFlag{ - Name: "public_share_provider_addr", - Value: "localhost:9150", - Usage: "public share provider service address", - EnvVars: []string{"REVA_STORAGE_PUBLICLINK_PUBLIC_SHARE_PROVIDER_ADDR"}, - Destination: &cfg.Reva.StoragePublicLink.PublicShareProviderAddr, - }, - &cli.StringFlag{ - Name: "user_provider_addr", - Value: "localhost:9144", - Usage: "user provider service address", - EnvVars: []string{"REVA_STORAGE_PUBLICLINK_USER_PROVIDER_ADDR"}, - Destination: &cfg.Reva.StoragePublicLink.UserProviderAddr, - }, - &cli.StringFlag{ - Name: "storage_provider_addr", - Value: "localhost:9154", - Usage: "storage provider service address", - EnvVars: []string{"REVA_STORAGE_PUBLICLINK_STORAGE_PROVIDER_ADDR"}, - Destination: &cfg.Reva.StoragePublicLink.StorageProviderAddr, - }, - &cli.StringFlag{ - Name: "driver", - Value: "owncloud", - Usage: "storage driver, eg. local, eos, owncloud or s3", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DRIVER"}, - Destination: &cfg.Reva.StoragePublicLink.Driver, - }, - &cli.StringFlag{ - Name: "mount-id", - Value: "e1a73ede-549b-4226-abdf-40e69ca8230d", - Usage: "mount id", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_ID"}, - Destination: &cfg.Reva.StoragePublicLink.MountID, - }, - &cli.BoolFlag{ - Name: "expose-data-server", - Value: false, - Usage: "exposes a dedicated data server", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_EXPOSE_DATA_SERVER"}, - Destination: &cfg.Reva.StoragePublicLink.ExposeDataServer, - }, - &cli.StringFlag{ - Name: "data-server-url", - Value: "http://localhost:9156/data", - Usage: "data server url", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_DATA_SERVER_URL"}, - Destination: &cfg.Reva.StoragePublicLink.DataServerURL, - }, - &cli.BoolFlag{ - Name: "enable-home-creation", - Value: true, - Usage: "if enabled home dirs will be automatically created", - EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_ENABLE_HOME_CREATION"}, - Destination: &cfg.Reva.StoragePublicLink.EnableHomeCreation, - }, &cli.StringFlag{ Name: "mount-path", Value: "/public/", @@ -166,6 +53,7 @@ func StoragePublicLink(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH"}, Destination: &cfg.Reva.StoragePublicLink.MountPath, }, + &cli.StringFlag{ Name: "gateway-url", Value: "localhost:9142", @@ -174,4 +62,10 @@ func StoragePublicLink(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.Gateway.URL, }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 1c19104bbc..791f8fbd5f 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -1,50 +1,13 @@ package flagset import ( - "os" - "github.com/micro/cli/v2" "github.com/owncloud/ocis-reva/pkg/config" ) // StorageRootWithConfig applies cfg to the root flagset func StorageRootWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -54,35 +17,6 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_ROOT_DEBUG_ADDR"}, Destination: &cfg.Reva.StorageRoot.DebugAddr, }, - &cli.StringFlag{ - Name: "debug-token", - Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, - }, - - // REVA - - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, // Services @@ -163,165 +97,14 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"}, Destination: &cfg.Reva.StorageHome.EnableHomeCreation, }, - - // Storage drivers - - // Eos - - &cli.StringFlag{ - Name: "storage-eos-namespace", - Value: "", - Usage: "Namespace for metadata operations", - EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.EOS.Namespace, - }, - &cli.StringFlag{ - Name: "storage-eos-binary", - Value: "/usr/bin/eos", - Usage: "Location of the eos binary", - EnvVars: []string{"REVA_STORAGE_EOS_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.EosBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-xrdcopy-binary", - Value: "/usr/bin/xrdcopy", - Usage: "Location of the xrdcopy binary", - EnvVars: []string{"REVA_STORAGE_EOS_XRDCOPY_BINARY"}, - Destination: &cfg.Reva.Storages.EOS.XrdcopyBinary, - }, - &cli.StringFlag{ - Name: "storage-eos-master-url", - Value: "root://eos-example.org", - Usage: "URL of the Master EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_MASTER_URL"}, - Destination: &cfg.Reva.Storages.EOS.MasterURL, - }, - &cli.StringFlag{ - Name: "storage-eos-slave-url", - Value: "root://eos-example.org", - Usage: "URL of the Slave EOS MGM", - EnvVars: []string{"REVA_STORAGE_EOS_SLAVE_URL"}, - Destination: &cfg.Reva.Storages.EOS.SlaveURL, - }, - &cli.StringFlag{ - Name: "storage-eos-cache-directory", - Value: os.TempDir(), - Usage: "Location on the local fs where to store reads", - EnvVars: []string{"REVA_STORAGE_EOS_CACHE_DIRECTORY"}, - Destination: &cfg.Reva.Storages.EOS.CacheDirectory, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-logging", - Usage: "Enables logging of the commands executed", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_LOGGING"}, - Destination: &cfg.Reva.Storages.EOS.EnableLogging, - }, - &cli.BoolFlag{ - Name: "storage-eos-show-hidden-sysfiles", - Usage: "show internal EOS files like .sys.v# and .sys.a# files.", - EnvVars: []string{"REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES"}, - Destination: &cfg.Reva.Storages.EOS.ShowHiddenSysFiles, - }, - &cli.BoolFlag{ - Name: "storage-eos-force-singleuser-mode", - Usage: "force connections to EOS to use SingleUsername", - EnvVars: []string{"REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE"}, - Destination: &cfg.Reva.Storages.EOS.ForceSingleUserMode, - }, - &cli.BoolFlag{ - Name: "storage-eos-use-keytab", - Usage: "authenticate requests by using an EOS keytab", - EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.UseKeytab, - }, - &cli.BoolFlag{ - Name: "storage-eos-enable-home", - Usage: "enable the creation of home directories", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.EOS.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-eos-sec-protocol", - Value: "", - Usage: "the xrootd security protocol to use between the server and EOS", - EnvVars: []string{"REVA_STORAGE_EOS_SEC_PROTOCOL"}, - Destination: &cfg.Reva.Storages.EOS.SecProtocol, - }, - &cli.StringFlag{ - Name: "storage-eos-keytab", - Value: "", - Usage: "the location of the keytab to use to authenticate to EOS", - EnvVars: []string{"REVA_STORAGE_EOS_KEYTAB"}, - Destination: &cfg.Reva.Storages.EOS.Keytab, - }, - &cli.StringFlag{ - Name: "storage-eos-single-username", - Value: "", - Usage: "the username to use when SingleUserMode is enabled", - EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"}, - Destination: &cfg.Reva.Storages.EOS.SingleUsername, - }, - &cli.StringFlag{ - Name: "storage-eos-layout", - Value: "{{substr 0 1 .Username}}/{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.EOS.Layout, - }, - &cli.StringFlag{ - Name: "storage-eos-gatewaysvc", - Value: "localhost:9142", - Usage: "URL to use for the reva gateway service", - EnvVars: []string{"REVA_STORAGE_EOS_GATEWAYSVC"}, - Destination: &cfg.Reva.Storages.EOS.GatewaySVC, - }, - - // local - - &cli.StringFlag{ - Name: "storage-local-root", - Value: "/var/tmp/reva/root", - Usage: "the path to the local storage root", - EnvVars: []string{"REVA_STORAGE_LOCAL_ROOT"}, - Destination: &cfg.Reva.Storages.Local.Root, - }, - - // owncloud - - &cli.StringFlag{ - Name: "storage-owncloud-datadir", - Value: "/var/tmp/reva/data", - Usage: "the path to the owncloud data directory", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Datadirectory, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-scan", - Value: true, - Usage: "scan files on startup to add fileids", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"}, - Destination: &cfg.Reva.Storages.OwnCloud.Scan, - }, - &cli.StringFlag{ - Name: "storage-owncloud-redis", - Value: ":6379", - Usage: "the address of the redis server", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"}, - Destination: &cfg.Reva.Storages.OwnCloud.Redis, - }, - &cli.BoolFlag{ - Name: "storage-owncloud-enable-home", - Value: false, - Usage: "enable the creation of home storages", - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, - }, - &cli.StringFlag{ - Name: "storage-owncloud-layout", - Value: "{{.Id.OpaqueId}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, - EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.OwnCloud.Layout, - }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + flags = append(flags, DriverEOSWithConfig(cfg)...) + flags = append(flags, DriverLocalWithConfig(cfg)...) + flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + + return flags } diff --git a/pkg/flagset/tracing.go b/pkg/flagset/tracing.go new file mode 100644 index 0000000000..5c39832a8c --- /dev/null +++ b/pkg/flagset/tracing.go @@ -0,0 +1,47 @@ +package flagset + +import ( + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// TracingWithConfig applies cfg to the root flagset +func TracingWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + + &cli.BoolFlag{ + Name: "tracing-enabled", + Usage: "Enable sending traces", + EnvVars: []string{"REVA_TRACING_ENABLED"}, + Destination: &cfg.Tracing.Enabled, + }, + &cli.StringFlag{ + Name: "tracing-type", + Value: "jaeger", + Usage: "Tracing backend type", + EnvVars: []string{"REVA_TRACING_TYPE"}, + Destination: &cfg.Tracing.Type, + }, + &cli.StringFlag{ + Name: "tracing-endpoint", + Value: "", + Usage: "Endpoint for the agent", + EnvVars: []string{"REVA_TRACING_ENDPOINT"}, + Destination: &cfg.Tracing.Endpoint, + }, + &cli.StringFlag{ + Name: "tracing-collector", + Value: "", + Usage: "Endpoint for the collector", + EnvVars: []string{"REVA_TRACING_COLLECTOR"}, + Destination: &cfg.Tracing.Collector, + }, + &cli.StringFlag{ + Name: "tracing-service", + Value: "reva", + Usage: "Service name for tracing", + EnvVars: []string{"REVA_TRACING_SERVICE"}, + Destination: &cfg.Tracing.Service, + }, + } +} diff --git a/pkg/flagset/users.go b/pkg/flagset/users.go index baaffec8b9..b54df06338 100644 --- a/pkg/flagset/users.go +++ b/pkg/flagset/users.go @@ -7,42 +7,7 @@ import ( // UsersWithConfig applies cfg to the root flagset func UsersWithConfig(cfg *config.Config) []cli.Flag { - return []cli.Flag{ - - &cli.BoolFlag{ - Name: "tracing-enabled", - Usage: "Enable sending traces", - EnvVars: []string{"REVA_TRACING_ENABLED"}, - Destination: &cfg.Tracing.Enabled, - }, - &cli.StringFlag{ - Name: "tracing-type", - Value: "jaeger", - Usage: "Tracing backend type", - EnvVars: []string{"REVA_TRACING_TYPE"}, - Destination: &cfg.Tracing.Type, - }, - &cli.StringFlag{ - Name: "tracing-endpoint", - Value: "", - Usage: "Endpoint for the agent", - EnvVars: []string{"REVA_TRACING_ENDPOINT"}, - Destination: &cfg.Tracing.Endpoint, - }, - &cli.StringFlag{ - Name: "tracing-collector", - Value: "", - Usage: "Endpoint for the collector", - EnvVars: []string{"REVA_TRACING_COLLECTOR"}, - Destination: &cfg.Tracing.Collector, - }, - &cli.StringFlag{ - Name: "tracing-service", - Value: "reva", - Usage: "Service name for tracing", - EnvVars: []string{"REVA_TRACING_SERVICE"}, - Destination: &cfg.Tracing.Service, - }, + flags := []cli.Flag{ // debug ports are the odd ports &cli.StringFlag{ @@ -52,153 +17,63 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_SHARING_DEBUG_ADDR"}, Destination: &cfg.Reva.Users.DebugAddr, }, + + // Services + + // Users + &cli.StringFlag{ - Name: "debug-token", + Name: "network", + Value: "tcp", + Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", + EnvVars: []string{"REVA_USERS_NETWORK"}, + Destination: &cfg.Reva.Users.Network, + }, + &cli.StringFlag{ + Name: "protocol", + Value: "grpc", + Usage: "protocol for reva service, can be 'http' or 'grpc'", + EnvVars: []string{"REVA_USERS_PROTOCOL"}, + Destination: &cfg.Reva.Users.Protocol, + }, + &cli.StringFlag{ + Name: "addr", + Value: "0.0.0.0:9144", + Usage: "Address to bind reva service", + EnvVars: []string{"REVA_USERS_ADDR"}, + Destination: &cfg.Reva.Users.Addr, + }, + &cli.StringFlag{ + Name: "url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_USERS_URL"}, + Destination: &cfg.Reva.Users.URL, + }, + &cli.StringSliceFlag{ + Name: "service", + Value: cli.NewStringSlice("userprovider"), // TODO preferences + Usage: "--service userprovider [--service otherservice]", + EnvVars: []string{"REVA_USERS_SERVICES"}, + }, + + &cli.StringFlag{ + Name: "driver", + Value: "ldap", + Usage: "user driver: 'demo', 'json', 'ldap', or 'rest'", + EnvVars: []string{"REVA_USERS_DRIVER"}, + Destination: &cfg.Reva.Users.Driver, + }, + &cli.StringFlag{ + Name: "json-config", Value: "", - Usage: "Token to grant metrics access", - EnvVars: []string{"REVA_DEBUG_TOKEN"}, - Destination: &cfg.Debug.Token, - }, - &cli.BoolFlag{ - Name: "debug-pprof", - Usage: "Enable pprof debugging", - EnvVars: []string{"REVA_DEBUG_PPROF"}, - Destination: &cfg.Debug.Pprof, - }, - &cli.BoolFlag{ - Name: "debug-zpages", - Usage: "Enable zpages debugging", - EnvVars: []string{"REVA_DEBUG_ZPAGES"}, - Destination: &cfg.Debug.Zpages, + Usage: "Path to users.json file", + EnvVars: []string{"REVA_USERS_JSON"}, + Destination: &cfg.Reva.Users.JSON, }, - // REVA + // rest driver - &cli.StringFlag{ - Name: "jwt-secret", - Value: "Pive-Fumkiu4", - Usage: "Shared jwt secret for reva service communication", - EnvVars: []string{"REVA_JWT_SECRET"}, - Destination: &cfg.Reva.JWTSecret, - }, - - // LDAP - - &cli.StringFlag{ - Name: "ldap-hostname", - Value: "localhost", - Usage: "LDAP hostname", - EnvVars: []string{"REVA_LDAP_HOSTNAME"}, - Destination: &cfg.Reva.LDAP.Hostname, - }, - &cli.IntFlag{ - Name: "ldap-port", - Value: 9126, - Usage: "LDAP port", - EnvVars: []string{"REVA_LDAP_PORT"}, - Destination: &cfg.Reva.LDAP.Port, - }, - &cli.StringFlag{ - Name: "ldap-base-dn", - Value: "dc=example,dc=org", - Usage: "LDAP basedn", - EnvVars: []string{"REVA_LDAP_BASE_DN"}, - Destination: &cfg.Reva.LDAP.BaseDN, - }, - &cli.StringFlag{ - Name: "ldap-userfilter", - Value: "(&(objectclass=posixAccount)(|(ownclouduuid={{.OpaqueId}})(cn={{.OpaqueId}})))", - Usage: "LDAP filter used when getting a user. The CS3 userid properties {{.OpaqueId}} and {{.Idp}} are available.", - EnvVars: []string{"REVA_LDAP_USERFILTER"}, - Destination: &cfg.Reva.LDAP.UserFilter, - }, - &cli.StringFlag{ - Name: "ldap-attributefilter", - Value: "(&(objectclass=posixAccount)({{attr}}={{value}}))", - Usage: "LDAP filter used when searching for a user by claim/attribute. {{attr}} will be replaced with the attribute, {{value}} with the value.", - EnvVars: []string{"REVA_LDAP_ATTRIBUTEFILTER"}, - Destination: &cfg.Reva.LDAP.AttributeFilter, - }, - &cli.StringFlag{ - Name: "ldap-findfilter", - Value: "(&(objectclass=posixAccount)(|(cn={{query}}*)(displayname={{query}}*)(mail={{query}}*)))", - Usage: "LDAP filter used when searching for recipients. {{query}} will be replaced with the search query", - EnvVars: []string{"REVA_LDAP_FINDFILTER"}, - Destination: &cfg.Reva.LDAP.FindFilter, - }, - &cli.StringFlag{ - Name: "ldap-groupfilter", - // FIXME the reva implementation needs to use the memberof overlay to get the cn when it only has the uuid, - // because the ldap schema either uses the dn or the member(of) attributes to establish membership - Value: "(&(objectclass=posixGroup)(ownclouduuid={{.OpaqueId}}*))", // This filter will never work - Usage: "LDAP filter used when getting the groups of a user. The CS3 userid properties {{.OpaqueId}} and {{.Idp}} are available.", - EnvVars: []string{"REVA_LDAP_GROUPFILTER"}, - Destination: &cfg.Reva.LDAP.GroupFilter, - }, - &cli.StringFlag{ - Name: "ldap-bind-dn", - Value: "cn=reva,ou=sysusers,dc=example,dc=org", - Usage: "LDAP bind dn", - EnvVars: []string{"REVA_LDAP_BIND_DN"}, - Destination: &cfg.Reva.LDAP.BindDN, - }, - &cli.StringFlag{ - Name: "ldap-bind-password", - Value: "reva", - Usage: "LDAP bind password", - EnvVars: []string{"REVA_LDAP_BIND_PASSWORD"}, - Destination: &cfg.Reva.LDAP.BindPassword, - }, - &cli.StringFlag{ - Name: "ldap-idp", - Value: "https://localhost:9200", - Usage: "Identity provider to use for users", - EnvVars: []string{"REVA_LDAP_IDP"}, - Destination: &cfg.Reva.LDAP.IDP, - }, - // ldap dn is always the dn - &cli.StringFlag{ - Name: "ldap-schema-uid", - Value: "ownclouduuid", - Usage: "LDAP schema uid", - EnvVars: []string{"REVA_LDAP_SCHEMA_UID"}, - Destination: &cfg.Reva.LDAP.Schema.UID, - }, - &cli.StringFlag{ - Name: "ldap-schema-mail", - Value: "mail", - Usage: "LDAP schema mail", - EnvVars: []string{"REVA_LDAP_SCHEMA_MAIL"}, - Destination: &cfg.Reva.LDAP.Schema.Mail, - }, - &cli.StringFlag{ - Name: "ldap-schema-displayName", - Value: "displayname", - Usage: "LDAP schema displayName", - EnvVars: []string{"REVA_LDAP_SCHEMA_DISPLAYNAME"}, - Destination: &cfg.Reva.LDAP.Schema.DisplayName, - }, - &cli.StringFlag{ - Name: "ldap-schema-cn", - Value: "cn", - Usage: "LDAP schema cn", - EnvVars: []string{"REVA_LDAP_SCHEMA_CN"}, - Destination: &cfg.Reva.LDAP.Schema.CN, - }, - &cli.StringFlag{ - Name: "ldap-schema-uidnumber", - Value: "uidnumber", - Usage: "LDAP schema uidnumber", - EnvVars: []string{"REVA_LDAP_SCHEMA_UID_NUMBER"}, - Destination: &cfg.Reva.LDAP.Schema.UIDNumber, - }, - &cli.StringFlag{ - Name: "ldap-schema-gidnumber", - Value: "gidnumber", - Usage: "LDAP schema gidnumber", - EnvVars: []string{"REVA_LDAP_SCHEMA_GIDNUMBER"}, - Destination: &cfg.Reva.LDAP.Schema.GIDNumber, - }, &cli.StringFlag{ Name: "rest-client-id", Value: "", @@ -269,59 +144,12 @@ func UsersWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_REST_TARGET_API"}, Destination: &cfg.Reva.UserRest.TargetAPI, }, - - // Services - - // Users - - &cli.StringFlag{ - Name: "network", - Value: "tcp", - Usage: "Network to use for the reva service, can be 'tcp', 'udp' or 'unix'", - EnvVars: []string{"REVA_USERS_NETWORK"}, - Destination: &cfg.Reva.Users.Network, - }, - &cli.StringFlag{ - Name: "protocol", - Value: "grpc", - Usage: "protocol for reva service, can be 'http' or 'grpc'", - EnvVars: []string{"REVA_USERS_PROTOCOL"}, - Destination: &cfg.Reva.Users.Protocol, - }, - &cli.StringFlag{ - Name: "addr", - Value: "0.0.0.0:9144", - Usage: "Address to bind reva service", - EnvVars: []string{"REVA_USERS_ADDR"}, - Destination: &cfg.Reva.Users.Addr, - }, - &cli.StringFlag{ - Name: "url", - Value: "localhost:9144", - Usage: "URL to use for the reva service", - EnvVars: []string{"REVA_USERS_URL"}, - Destination: &cfg.Reva.Users.URL, - }, - &cli.StringSliceFlag{ - Name: "service", - Value: cli.NewStringSlice("userprovider"), // TODO preferences - Usage: "--service userprovider [--service otherservice]", - EnvVars: []string{"REVA_USERS_SERVICES"}, - }, - - &cli.StringFlag{ - Name: "driver", - Value: "ldap", - Usage: "user driver: 'demo', 'json', 'ldap', or 'rest'", - EnvVars: []string{"REVA_USERS_DRIVER"}, - Destination: &cfg.Reva.Users.Driver, - }, - &cli.StringFlag{ - Name: "json-config", - Value: "", - Usage: "Path to users.json file", - EnvVars: []string{"REVA_USERS_JSON"}, - Destination: &cfg.Reva.Users.JSON, - }, } + + flags = append(flags, TracingWithConfig(cfg)...) + flags = append(flags, DebugWithConfig(cfg)...) + flags = append(flags, SecretWithConfig(cfg)...) + flags = append(flags, LDAPWithConfig(cfg)...) + + return flags } From 1cd35ce609952dd8ebc671b7344b562fcc12b452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 1 Sep 2020 15:34:21 +0200 Subject: [PATCH 284/346] add ocis driver, arbitrary storage driver rules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- docs/configuration.md | 3 --- pkg/command/drivers.go | 41 +++++++++++++++++------------- pkg/command/gateway.go | 40 +++++++++++++---------------- pkg/config/config.go | 46 +++++++++++++++++++--------------- pkg/flagset/drivereos.go | 8 +++--- pkg/flagset/driverocis.go | 33 ++++++++++++++++++++++++ pkg/flagset/driverowncloud.go | 6 ++--- pkg/flagset/gateway.go | 31 +++++++++++------------ pkg/flagset/storageeos.go | 1 + pkg/flagset/storageeosdata.go | 1 + pkg/flagset/storagehome.go | 1 + pkg/flagset/storagehomedata.go | 1 + pkg/flagset/storageoc.go | 1 + pkg/flagset/storageocdata.go | 1 + pkg/flagset/storageroot.go | 1 + 15 files changed, 128 insertions(+), 87 deletions(-) create mode 100644 pkg/flagset/driverocis.go diff --git a/docs/configuration.md b/docs/configuration.md index f2523ec63f..636ab4c0a4 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -885,9 +885,6 @@ Usage: `ocis-reva gateway [command options] [arguments...]` --share-folder | $REVA_GATEWAY_SHARE_FOLDER : mount shares in this folder of the home storage provider. Default: `Shares`. ---link_grants_file | $REVA_GATEWAY_LINK_GRANTS_FILE -: when using a json manager, file to use as json serialized database. Default: `/var/tmp/reva/link_grants.json`. - --disable-home-creation-on-login | $REVA_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN : Disable creation of home folder on login. diff --git a/pkg/command/drivers.go b/pkg/command/drivers.go index 7140409b31..3e1a41abeb 100644 --- a/pkg/command/drivers.go +++ b/pkg/command/drivers.go @@ -7,10 +7,10 @@ import ( func drivers(cfg *config.Config) map[string]interface{} { return map[string]interface{}{ "eos": map[string]interface{}{ - "namespace": cfg.Reva.Storages.Common.Root, + "namespace": cfg.Reva.Storages.EOS.Root, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "uploads_namespace": cfg.Reva.Storages.EOS.UploadsNamespace, - "share_folder": cfg.Reva.Storages.Common.ShareFolder, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, "master_url": cfg.Reva.Storages.EOS.MasterURL, @@ -26,10 +26,10 @@ func drivers(cfg *config.Config) map[string]interface{} { "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "eoshome": map[string]interface{}{ - "namespace": cfg.Reva.Storages.Common.Root, + "namespace": cfg.Reva.Storages.EOS.Root, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, "uploads_namespace": cfg.Reva.Storages.EOS.UploadsNamespace, - "share_folder": cfg.Reva.Storages.Common.ShareFolder, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, "master_url": cfg.Reva.Storages.EOS.MasterURL, @@ -38,7 +38,7 @@ func drivers(cfg *config.Config) map[string]interface{} { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.Common.UserLayout, + "user_layout": cfg.Reva.Storages.EOS.UserLayout, "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, @@ -46,9 +46,9 @@ func drivers(cfg *config.Config) map[string]interface{} { "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "eosgrpc": map[string]interface{}{ - "namespace": cfg.Reva.Storages.Common.Root, + "namespace": cfg.Reva.Storages.EOS.Root, "shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace, - "share_folder": cfg.Reva.Storages.Common.ShareFolder, + "share_folder": cfg.Reva.Storages.EOS.ShareFolder, "eos_binary": cfg.Reva.Storages.EOS.EosBinary, "xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary, "master_url": cfg.Reva.Storages.EOS.MasterURL, @@ -58,38 +58,43 @@ func drivers(cfg *config.Config) map[string]interface{} { "sec_protocol": cfg.Reva.Storages.EOS.SecProtocol, "keytab": cfg.Reva.Storages.EOS.Keytab, "single_username": cfg.Reva.Storages.EOS.SingleUsername, - "user_layout": cfg.Reva.Storages.Common.UserLayout, + "user_layout": cfg.Reva.Storages.EOS.UserLayout, "enable_logging": cfg.Reva.Storages.EOS.EnableLogging, "show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles, "force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode, "use_keytab": cfg.Reva.Storages.EOS.UseKeytab, - "enable_home": cfg.Reva.Storages.Common.EnableHome, + "enable_home": cfg.Reva.Storages.EOS.EnableHome, "gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC, }, "local": map[string]interface{}{ - "root": cfg.Reva.Storages.Common.Root, - "share_folder": cfg.Reva.Storages.Common.ShareFolder, + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, }, "localhome": map[string]interface{}{ - "root": cfg.Reva.Storages.Common.Root, - "share_folder": cfg.Reva.Storages.Common.ShareFolder, - "user_layout": cfg.Reva.Storages.Common.UserLayout, + "root": cfg.Reva.Storages.Local.Root, + "share_folder": cfg.Reva.Storages.Local.ShareFolder, + "user_layout": cfg.Reva.Storages.Local.UserLayout, }, "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.Common.Root, + "datadirectory": cfg.Reva.Storages.OwnCloud.Root, "scan": cfg.Reva.Storages.OwnCloud.Scan, "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.Common.EnableHome, - "user_layout": cfg.Reva.Storages.Common.UserLayout, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.UserLayout, "userprovidersvc": cfg.Reva.Users.URL, }, + "ocis": map[string]interface{}{ + "root": cfg.Reva.Storages.Common.Root, + "enable_home": cfg.Reva.Storages.Common.EnableHome, + "user_layout": cfg.Reva.Storages.Common.UserLayout, + }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, "access_key": cfg.Reva.Storages.S3.AccessKey, "secret_key": cfg.Reva.Storages.S3.SecretKey, "endpoint": cfg.Reva.Storages.S3.Endpoint, "bucket": cfg.Reva.Storages.S3.Bucket, - "prefix": cfg.Reva.Storages.Common.Root, + "prefix": cfg.Reva.Storages.S3.Root, }, } } diff --git a/pkg/command/gateway.go b/pkg/command/gateway.go index f2f7644e9f..3eceec3408 100644 --- a/pkg/command/gateway.go +++ b/pkg/command/gateway.go @@ -5,6 +5,7 @@ import ( "os" "os/signal" "path" + "strings" "time" "github.com/cs3org/reva/cmd/revad/runtime" @@ -25,6 +26,7 @@ func Gateway(cfg *config.Config) *cli.Command { Flags: flagset.GatewayWithConfig(cfg), Before: func(c *cli.Context) error { cfg.Reva.Gateway.Services = c.StringSlice("service") + cfg.Reva.StorageRegistry.Rules = c.StringSlice("storage-registry-rule") return nil }, @@ -104,8 +106,6 @@ func Gateway(cfg *config.Config) *cli.Command { "commit_share_to_storage_grant": cfg.Reva.Gateway.CommitShareToStorageGrant, "commit_share_to_storage_ref": cfg.Reva.Gateway.CommitShareToStorageRef, "share_folder": cfg.Reva.Gateway.ShareFolder, // ShareFolder is the location where to create shares in the recipient's storage provider. - // public links - "link_grants_file": cfg.Reva.Gateway.LinkGrants, // other "disable_home_creation_on_login": cfg.Reva.Gateway.DisableHomeCreationOnLogin, "datagateway": urlWithScheme(cfg.Reva.DataGateway.URL), @@ -125,28 +125,11 @@ func Gateway(cfg *config.Config) *cli.Command { }, }, "storageregistry": map[string]interface{}{ - "driver": "static", + "driver": cfg.Reva.StorageRegistry.Driver, "drivers": map[string]interface{}{ "static": map[string]interface{}{ - "home_provider": cfg.Reva.Gateway.HomeProvider, - "rules": map[string]interface{}{ - cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL, - cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, - cfg.Reva.StorageHome.MountPath: cfg.Reva.StorageHome.URL, - cfg.Reva.StorageHome.MountID: cfg.Reva.StorageHome.URL, - cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL, - cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL, - cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL, - cfg.Reva.StorageOC.MountID: cfg.Reva.StorageOC.URL, - cfg.Reva.StorageS3.MountPath: cfg.Reva.StorageS3.URL, - cfg.Reva.StorageS3.MountID: cfg.Reva.StorageS3.URL, - cfg.Reva.StorageWND.MountPath: cfg.Reva.StorageWND.URL, - cfg.Reva.StorageWND.MountID: cfg.Reva.StorageWND.URL, - cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL, - cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL, - "/public/": "localhost:10054", - "e1a73ede-549b-4226-abdf-40e69ca8230d": "localhost:10054", - }, + "home_provider": cfg.Reva.StorageRegistry.HomeProvider, + "rules": rules(cfg), }, }, }, @@ -244,6 +227,17 @@ func Gateway(cfg *config.Config) *cli.Command { func rules(cfg *config.Config) map[string]interface{} { + // if a list of rules is given it overrides the generated rules from below + if len(cfg.Reva.StorageRegistry.Rules) > 0 { + rules := map[string]interface{}{} + for i := range cfg.Reva.StorageRegistry.Rules { + parts := strings.SplitN(cfg.Reva.StorageRegistry.Rules[i], "=", 2) + rules[parts[0]] = parts[1] + } + return rules + } + + // generate rules based on default config return map[string]interface{}{ cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL, cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL, @@ -260,6 +254,6 @@ func rules(cfg *config.Config) map[string]interface{} { cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL, cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL, cfg.Reva.StoragePublicLink.MountPath: cfg.Reva.StoragePublicLink.URL, - cfg.Reva.StoragePublicLink.MountID: cfg.Reva.StoragePublicLink.URL, + // public link storage returns the mount id of the actual storage } } diff --git a/pkg/config/config.go b/pkg/config/config.go index 71bcaf1130..e28e58bd77 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -23,9 +23,14 @@ type Gateway struct { ShareFolder string LinkGrants string DisableHomeCreationOnLogin bool - // include the home folder config for the storage registry +} + +// StorageRegistry defines the available storage registry configuration +type StorageRegistry struct { + Driver string // HomeProvider is the path in the global namespace that the static storage registry uses to determine the home storage HomeProvider string + Rules []string } // Sharing defines the available sharing configuration. @@ -100,15 +105,29 @@ type PublicStorage struct { // StorageConfig combines all available storage driver configuration parts. type StorageConfig struct { EOS DriverEOS - Local DriverLocal + Local DriverCommon OwnCloud DriverOwnCloud S3 DriverS3 Common DriverCommon // TODO checksums ... figure out what that is supposed to do } +// DriverCommon defines common driver configuration options. +type DriverCommon struct { + // Root is the absolute path to the location of the data + Root string + //ShareFolder defines the name of the folder jailing all shares + ShareFolder string + // UserLayout contains the template used to construct + // the internal path, eg: `{{substr 0 1 .Username}}/{{.Username}}` + UserLayout string + // EnableHome enables the creation of home directories. + EnableHome bool +} + // DriverEOS defines the available EOS driver configuration. type DriverEOS struct { + DriverCommon // ShadowNamespace for storing shadow data ShadowNamespace string @@ -167,32 +186,18 @@ type DriverEOS struct { GatewaySVC string } -// DriverLocal defines the available local storage driver configuration. -type DriverLocal struct { - Root string -} - -// DriverCommon defines common driver configuration options. -type DriverCommon struct { - // Root is the absolute path to the location of the data - Root string - //ShareFolder defines the name of the folder jailing all shares - ShareFolder string - // UserLayout contains the template used to construct - // the internal path, eg: `{{substr 0 1 .Username}}/{{.Username}}` - UserLayout string - // EnableHome enables the creation of home directories. - EnableHome bool -} - // DriverOwnCloud defines the available ownCloud storage driver configuration. type DriverOwnCloud struct { + DriverCommon + Redis string Scan bool } // DriverS3 defines the available S3 storage driver configuration. type DriverS3 struct { + DriverCommon + Region string AccessKey string SecretKey string @@ -270,6 +275,7 @@ type Reva struct { Frontend FrontendPort DataGateway Port Gateway Gateway + StorageRegistry StorageRegistry Users Users AuthProvider Users AuthBasic Port diff --git a/pkg/flagset/drivereos.go b/pkg/flagset/drivereos.go index 3ea27170a7..3c2955d632 100644 --- a/pkg/flagset/drivereos.go +++ b/pkg/flagset/drivereos.go @@ -16,7 +16,7 @@ func DriverEOSWithConfig(cfg *config.Config) []cli.Flag { Value: "/eos/dockertest/reva", Usage: "Namespace for metadata operations", EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"}, - Destination: &cfg.Reva.Storages.Common.Root, + Destination: &cfg.Reva.Storages.EOS.Root, }, &cli.StringFlag{ Name: "storage-eos-shadow-namespace", @@ -30,7 +30,7 @@ func DriverEOSWithConfig(cfg *config.Config) []cli.Flag { Value: "/Shares", Usage: "name of the share folder", EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"}, - Destination: &cfg.Reva.Storages.Common.ShareFolder, + Destination: &cfg.Reva.Storages.EOS.ShareFolder, }, &cli.StringFlag{ Name: "storage-eos-binary", @@ -95,7 +95,7 @@ func DriverEOSWithConfig(cfg *config.Config) []cli.Flag { Name: "storage-eos-enable-home", Usage: "enable the creation of home directories", EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.Common.EnableHome, + Destination: &cfg.Reva.Storages.EOS.EnableHome, }, &cli.StringFlag{ Name: "storage-eos-sec-protocol", @@ -120,7 +120,7 @@ func DriverEOSWithConfig(cfg *config.Config) []cli.Flag { Value: "{{substr 0 1 .Username}}/{{.Username}}", Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"}, - Destination: &cfg.Reva.Storages.Common.UserLayout, + Destination: &cfg.Reva.Storages.EOS.UserLayout, }, &cli.StringFlag{ Name: "storage-eos-gatewaysvc", diff --git a/pkg/flagset/driverocis.go b/pkg/flagset/driverocis.go new file mode 100644 index 0000000000..533b0f1504 --- /dev/null +++ b/pkg/flagset/driverocis.go @@ -0,0 +1,33 @@ +package flagset + +import ( + "github.com/micro/cli/v2" + "github.com/owncloud/ocis-reva/pkg/config" +) + +// DriverOCISWithConfig applies cfg to the root flagset +func DriverOCISWithConfig(cfg *config.Config) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: "storage-ocis-root", + Value: "/var/tmp/ocis/root", + Usage: "the path to the local storage root", + EnvVars: []string{"REVA_STORAGE_OCIS_ROOT"}, + Destination: &cfg.Reva.Storages.Common.Root, + }, + &cli.BoolFlag{ + Name: "storage-ocis-enable-home", + Value: true, + Usage: "enable the creation of home storages", + EnvVars: []string{"REVA_STORAGE_OCIS_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.Common.EnableHome, + }, + &cli.StringFlag{ + Name: "storage-ocis-layout", + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, + EnvVars: []string{"REVA_STORAGE_OCIS_LAYOUT"}, + Destination: &cfg.Reva.Storages.Common.UserLayout, + }, + } +} diff --git a/pkg/flagset/driverowncloud.go b/pkg/flagset/driverowncloud.go index a33e94d41e..7cbe163555 100644 --- a/pkg/flagset/driverowncloud.go +++ b/pkg/flagset/driverowncloud.go @@ -13,7 +13,7 @@ func DriverOwnCloudWithConfig(cfg *config.Config) []cli.Flag { Value: "/var/tmp/reva/data", Usage: "the path to the owncloud data directory", EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, - Destination: &cfg.Reva.Storages.Common.Root, + Destination: &cfg.Reva.Storages.OwnCloud.Root, }, &cli.BoolFlag{ Name: "storage-owncloud-scan", @@ -34,14 +34,14 @@ func DriverOwnCloudWithConfig(cfg *config.Config) []cli.Flag { Value: false, Usage: "enable the creation of home storages", EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, - Destination: &cfg.Reva.Storages.Common.EnableHome, + Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, }, &cli.StringFlag{ Name: "storage-owncloud-layout", Value: "{{.Id.OpaqueId}}", Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, - Destination: &cfg.Reva.Storages.Common.UserLayout, + Destination: &cfg.Reva.Storages.OwnCloud.UserLayout, }, } } diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index 0da9e9df05..f773b90c36 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -98,14 +98,6 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_GATEWAY_SHARE_FOLDER"}, Destination: &cfg.Reva.Gateway.ShareFolder, }, - // TODO(refs) temporary workaround needed for storing link grants. - &cli.StringFlag{ - Name: "link_grants_file", - Value: "/var/tmp/reva/link_grants.json", - Usage: "when using a json manager, file to use as json serialized database", - EnvVars: []string{"REVA_GATEWAY_LINK_GRANTS_FILE"}, - Destination: &cfg.Reva.Gateway.LinkGrants, - }, &cli.BoolFlag{ Name: "disable-home-creation-on-login", Usage: "Disable creation of home folder on login", @@ -117,12 +109,26 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { // storage registry + &cli.StringFlag{ + Name: "storage-registry-driver", + Value: "static", + Usage: "driver of the storage registry", + EnvVars: []string{"REVA_STORAGE_REGISTRY_DRIVER"}, + Destination: &cfg.Reva.StorageRegistry.Driver, + }, + &cli.StringSliceFlag{ + Name: "storage-registry-rule", + Value: cli.NewStringSlice(), + Usage: `Replaces the generated storage registry rules with this set: --storage-registry-rule "/eos=localhost:9158" [--storage-registry-rule "1284d238-aa92-42ce-bdc4-0b0000009162=localhost:9162"]`, + EnvVars: []string{"REVA_STORAGE_REGISTRY_RULES"}, + }, + &cli.StringFlag{ Name: "storage-home-provider", Value: "/home", Usage: "mount point of the storage provider for user homes in the global namespace", EnvVars: []string{"REVA_STORAGE_HOME_PROVIDER"}, - Destination: &cfg.Reva.Gateway.HomeProvider, + Destination: &cfg.Reva.StorageRegistry.HomeProvider, }, &cli.StringFlag{ @@ -168,13 +174,6 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.Sharing.URL, }, - &cli.StringSliceFlag{ - Name: "storage-registry-rule", - Value: cli.NewStringSlice(), - Usage: `Replace the generated storage registry rules with this set --storage-registry-rule "/eos=localhost:9158" [--storage-registry-rule "1284d238-aa92-42ce-bdc4-0b0000009162=localhost:9162"]`, - EnvVars: []string{"REVA_STORAGE_REGISTRY_RULES"}, - }, - &cli.StringFlag{ Name: "storage-root-url", Value: "localhost:9152", diff --git a/pkg/flagset/storageeos.go b/pkg/flagset/storageeos.go index 51c95f04e4..39c9124a74 100644 --- a/pkg/flagset/storageeos.go +++ b/pkg/flagset/storageeos.go @@ -105,6 +105,7 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { flags = append(flags, DriverEOSWithConfig(cfg)...) flags = append(flags, DriverLocalWithConfig(cfg)...) flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + flags = append(flags, DriverOCISWithConfig(cfg)...) return flags } diff --git a/pkg/flagset/storageeosdata.go b/pkg/flagset/storageeosdata.go index 1249d64214..227a078471 100644 --- a/pkg/flagset/storageeosdata.go +++ b/pkg/flagset/storageeosdata.go @@ -105,6 +105,7 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { flags = append(flags, DriverEOSWithConfig(cfg)...) flags = append(flags, DriverLocalWithConfig(cfg)...) flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + flags = append(flags, DriverOCISWithConfig(cfg)...) return flags } diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index c771ed2686..369b852c0f 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -121,6 +121,7 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { flags = append(flags, DriverEOSWithConfig(cfg)...) flags = append(flags, DriverLocalWithConfig(cfg)...) flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + flags = append(flags, DriverOCISWithConfig(cfg)...) return flags } diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 494a8c50d4..1d00b4ae5b 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -105,6 +105,7 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { flags = append(flags, DriverEOSWithConfig(cfg)...) flags = append(flags, DriverLocalWithConfig(cfg)...) flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + flags = append(flags, DriverOCISWithConfig(cfg)...) return flags } diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 30f3153a7a..8017b6daf2 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -117,6 +117,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { flags = append(flags, DriverEOSWithConfig(cfg)...) flags = append(flags, DriverLocalWithConfig(cfg)...) flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + flags = append(flags, DriverOCISWithConfig(cfg)...) return flags } diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index 3952bb595b..f984623a7d 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -105,6 +105,7 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { flags = append(flags, DriverEOSWithConfig(cfg)...) flags = append(flags, DriverLocalWithConfig(cfg)...) flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + flags = append(flags, DriverOCISWithConfig(cfg)...) return flags } diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 791f8fbd5f..57a05cd0a4 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -105,6 +105,7 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { flags = append(flags, DriverEOSWithConfig(cfg)...) flags = append(flags, DriverLocalWithConfig(cfg)...) flags = append(flags, DriverOwnCloudWithConfig(cfg)...) + flags = append(flags, DriverOCISWithConfig(cfg)...) return flags } From bb278ddaafdfa3ad411518d8dfc8a62b96588ec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 1 Sep 2020 16:10:56 +0200 Subject: [PATCH 285/346] reordering to align with reva, add missing owncloud options MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/command/drivers.go | 6 ++++-- pkg/config/config.go | 5 +++-- pkg/flagset/driverowncloud.go | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/pkg/command/drivers.go b/pkg/command/drivers.go index 3e1a41abeb..9a92b7996e 100644 --- a/pkg/command/drivers.go +++ b/pkg/command/drivers.go @@ -77,10 +77,12 @@ func drivers(cfg *config.Config) map[string]interface{} { }, "owncloud": map[string]interface{}{ "datadirectory": cfg.Reva.Storages.OwnCloud.Root, - "scan": cfg.Reva.Storages.OwnCloud.Scan, + "upload_info_dir": cfg.Reva.Storages.OwnCloud.UploadInfoDir, + "sharedirectory": cfg.Reva.Storages.OwnCloud.ShareFolder, + "user_layout": cfg.Reva.Storages.OwnCloud.UserLayout, "redis": cfg.Reva.Storages.OwnCloud.Redis, "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.UserLayout, + "scan": cfg.Reva.Storages.OwnCloud.Scan, "userprovidersvc": cfg.Reva.Users.URL, }, "ocis": map[string]interface{}{ diff --git a/pkg/config/config.go b/pkg/config/config.go index e28e58bd77..aa539ec478 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -190,8 +190,9 @@ type DriverEOS struct { type DriverOwnCloud struct { DriverCommon - Redis string - Scan bool + UploadInfoDir string + Redis string + Scan bool } // DriverS3 defines the available S3 storage driver configuration. diff --git a/pkg/flagset/driverowncloud.go b/pkg/flagset/driverowncloud.go index 7cbe163555..5e287df40a 100644 --- a/pkg/flagset/driverowncloud.go +++ b/pkg/flagset/driverowncloud.go @@ -15,6 +15,20 @@ func DriverOwnCloudWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"}, Destination: &cfg.Reva.Storages.OwnCloud.Root, }, + &cli.StringFlag{ + Name: "storage-owncloud-uploadinfo-dir", + Value: "/var/tmp/reva/uploadinfo", + Usage: "the path to the tus upload info directory", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_UPLOADINFO_DIR"}, + Destination: &cfg.Reva.Storages.OwnCloud.UploadInfoDir, + }, + &cli.StringFlag{ + Name: "storage-owncloud-uploadinfo-dir", + Value: "/Shares", + Usage: "name of the shares folder", + EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SHARE_FOLDER"}, + Destination: &cfg.Reva.Storages.OwnCloud.ShareFolder, + }, &cli.BoolFlag{ Name: "storage-owncloud-scan", Value: true, From 5156ac5c2315f03ba8b9b032f9b87458794740aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 1 Sep 2020 16:17:10 +0200 Subject: [PATCH 286/346] fix flag name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/flagset/driverowncloud.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/flagset/driverowncloud.go b/pkg/flagset/driverowncloud.go index 5e287df40a..8d5f0b5ab5 100644 --- a/pkg/flagset/driverowncloud.go +++ b/pkg/flagset/driverowncloud.go @@ -23,7 +23,7 @@ func DriverOwnCloudWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.Storages.OwnCloud.UploadInfoDir, }, &cli.StringFlag{ - Name: "storage-owncloud-uploadinfo-dir", + Name: "storage-owncloud-share-folder", Value: "/Shares", Usage: "name of the shares folder", EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SHARE_FOLDER"}, From 6054650988e9c3a0d7b6d38f1ca4083520475995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Mon, 7 Sep 2020 10:45:23 +0200 Subject: [PATCH 287/346] default oc driver to enable home MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/flagset/driverowncloud.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/flagset/driverowncloud.go b/pkg/flagset/driverowncloud.go index 8d5f0b5ab5..a9f0274239 100644 --- a/pkg/flagset/driverowncloud.go +++ b/pkg/flagset/driverowncloud.go @@ -45,7 +45,7 @@ func DriverOwnCloudWithConfig(cfg *config.Config) []cli.Flag { }, &cli.BoolFlag{ Name: "storage-owncloud-enable-home", - Value: false, + Value: true, Usage: "enable the creation of home storages", EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, From 259e5640925eaa9e766ad4c6a6f7b6aee1508c87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 8 Sep 2020 13:11:02 +0200 Subject: [PATCH 288/346] home creation is a config option for storage drivers, not for storage providers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/command/storageeos.go | 3 +-- pkg/command/storagehome.go | 3 +-- pkg/command/storageoc.go | 3 +-- pkg/command/storageroot.go | 13 ++++++------- pkg/config/config.go | 11 +++++------ pkg/flagset/storageeos.go | 7 ------- pkg/flagset/storagehome.go | 17 +++++------------ pkg/flagset/storageoc.go | 7 ------- pkg/flagset/storageroot.go | 6 ------ 9 files changed, 19 insertions(+), 51 deletions(-) diff --git a/pkg/command/storageeos.go b/pkg/command/storageeos.go index 6fab0e7636..67300247a1 100644 --- a/pkg/command/storageeos.go +++ b/pkg/command/storageeos.go @@ -93,8 +93,7 @@ func StorageEOS(cfg *config.Config) *cli.Command { "mount_id": cfg.Reva.StorageEOS.MountID, "expose_data_server": cfg.Reva.StorageEOS.ExposeDataServer, // TODO use cfg.Reva.SStorageEOSData.URL, ? - "data_server_url": cfg.Reva.StorageEOS.DataServerURL, - "enable_home_creation": cfg.Reva.StorageEOS.EnableHomeCreation, + "data_server_url": cfg.Reva.StorageEOS.DataServerURL, }, }, }, diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index c528ff8a81..731fc81a60 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -93,8 +93,7 @@ func StorageHome(cfg *config.Config) *cli.Command { "mount_id": cfg.Reva.StorageHome.MountID, "expose_data_server": cfg.Reva.StorageHome.ExposeDataServer, // TODO use cfg.Reva.StorageHomeData.URL, ? - "data_server_url": cfg.Reva.StorageHome.DataServerURL, - "enable_home_creation": cfg.Reva.StorageHome.EnableHomeCreation, + "data_server_url": cfg.Reva.StorageHome.DataServerURL, }, }, }, diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index dfe39702b4..2ca35b67f6 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -93,8 +93,7 @@ func StorageOC(cfg *config.Config) *cli.Command { "mount_id": cfg.Reva.StorageOC.MountID, "expose_data_server": cfg.Reva.StorageOC.ExposeDataServer, // TODO use cfg.Reva.SStorageOCData.URL, ? - "data_server_url": cfg.Reva.StorageOC.DataServerURL, - "enable_home_creation": cfg.Reva.StorageOC.EnableHomeCreation, + "data_server_url": cfg.Reva.StorageOC.DataServerURL, }, }, }, diff --git a/pkg/command/storageroot.go b/pkg/command/storageroot.go index ed9968018e..b35c779dd9 100644 --- a/pkg/command/storageroot.go +++ b/pkg/command/storageroot.go @@ -87,13 +87,12 @@ func StorageRoot(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "storageprovider": map[string]interface{}{ - "driver": cfg.Reva.StorageRoot.Driver, - "drivers": drivers(cfg), - "mount_path": cfg.Reva.StorageRoot.MountPath, - "mount_id": cfg.Reva.StorageRoot.MountID, - "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, - "data_server_url": cfg.Reva.StorageRoot.DataServerURL, - "enable_home_creation": cfg.Reva.StorageRoot.EnableHomeCreation, + "driver": cfg.Reva.StorageRoot.Driver, + "drivers": drivers(cfg), + "mount_path": cfg.Reva.StorageRoot.MountPath, + "mount_id": cfg.Reva.StorageRoot.MountID, + "expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer, + "data_server_url": cfg.Reva.StorageRoot.DataServerURL, }, }, }, diff --git a/pkg/config/config.go b/pkg/config/config.go index aa539ec478..a06da1be23 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -82,12 +82,11 @@ type FrontendPort struct { // StoragePort defines the available storage configuration. type StoragePort struct { Port - Driver string - MountPath string - MountID string - ExposeDataServer bool - DataServerURL string - EnableHomeCreation bool + Driver string + MountPath string + MountID string + ExposeDataServer bool + DataServerURL string // for HTTP ports with only one http service Prefix string diff --git a/pkg/flagset/storageeos.go b/pkg/flagset/storageeos.go index 39c9124a74..c52b71d32b 100644 --- a/pkg/flagset/storageeos.go +++ b/pkg/flagset/storageeos.go @@ -90,13 +90,6 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_EOS_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageEOS.DataServerURL, }, - &cli.BoolFlag{ - Name: "enable-home-creation", - Value: false, - Usage: "if enabled home dirs will be automatically created", - EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME_CREATION"}, - Destination: &cfg.Reva.StorageEOS.EnableHomeCreation, - }, } flags = append(flags, TracingWithConfig(cfg)...) diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index 369b852c0f..c70aeeaad7 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -73,11 +73,11 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "mount-id", - // This is tho mount id of the /oc storage - // set it to 1284d238-aa92-42ce-bdc4-0b0000009158 for /eos - // Value: "1284d238-aa92-42ce-bdc4-0b0000009162", /os - - Value: "1284d238-aa92-42ce-bdc4-0b0000009154", // /home + // This is the mount id of the storage provider using the same storage driver + // as /home but withoud home enabled. Set it to + // 1284d238-aa92-42ce-bdc4-0b0000009158 for /eos + // 1284d238-aa92-42ce-bdc4-0b0000009162 for /oc + Value: "1284d238-aa92-42ce-bdc4-0b0000009162", // /oc Usage: "mount id", EnvVars: []string{"REVA_STORAGE_HOME_MOUNT_ID"}, Destination: &cfg.Reva.StorageHome.MountID, @@ -96,13 +96,6 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageHome.DataServerURL, }, - &cli.BoolFlag{ - Name: "enable-home-creation", - Value: true, - Usage: "if enabled home dirs will be automatically created", - EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"}, - Destination: &cfg.Reva.StorageHome.EnableHomeCreation, - }, // User provider diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 8017b6daf2..0b6d7f8b9e 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -92,13 +92,6 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_OC_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageOC.DataServerURL, }, - &cli.BoolFlag{ - Name: "enable-home-creation", - Value: false, - Usage: "if enabled home dirs will be automatically created", - EnvVars: []string{"REVA_STORAGE_OC_ENABLE_HOME_CREATION"}, - Destination: &cfg.Reva.StorageOC.EnableHomeCreation, - }, // User provider diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 57a05cd0a4..b02602f2f9 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -91,12 +91,6 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_ROOT_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageRoot.DataServerURL, }, - &cli.BoolFlag{ - Name: "enable-home-creation", - Usage: "if enabled home dirs will be automatically created", - EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"}, - Destination: &cfg.Reva.StorageHome.EnableHomeCreation, - }, } flags = append(flags, TracingWithConfig(cfg)...) From 6d4935c1f39a1ac0afa9f23596fa120b688d1d6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 8 Sep 2020 13:37:20 +0200 Subject: [PATCH 289/346] make only home storage default to enable home MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/command/storagehome.go | 8 ++++++++ pkg/config/config.go | 1 + pkg/flagset/driverocis.go | 2 +- pkg/flagset/driverowncloud.go | 2 +- pkg/flagset/storagehome.go | 7 +++++++ 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 731fc81a60..e63b708d02 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -70,6 +70,14 @@ func StorageHome(cfg *config.Config) *cli.Command { uuid := uuid.Must(uuid.NewV4()) pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + // override driver enable home option with home config + if cfg.Reva.Storages.Home.EnableHome { + cfg.Reva.Storages.Common.EnableHome = true + cfg.Reva.Storages.EOS.EnableHome = true + cfg.Reva.Storages.Local.EnableHome = true + cfg.Reva.Storages.OwnCloud.EnableHome = true + cfg.Reva.Storages.S3.EnableHome = true + } rcfg := map[string]interface{}{ "core": map[string]interface{}{ "max_cpus": cfg.Reva.Users.MaxCPUs, diff --git a/pkg/config/config.go b/pkg/config/config.go index a06da1be23..aac373ac62 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -103,6 +103,7 @@ type PublicStorage struct { // StorageConfig combines all available storage driver configuration parts. type StorageConfig struct { + Home DriverCommon EOS DriverEOS Local DriverCommon OwnCloud DriverOwnCloud diff --git a/pkg/flagset/driverocis.go b/pkg/flagset/driverocis.go index 533b0f1504..6338bf0811 100644 --- a/pkg/flagset/driverocis.go +++ b/pkg/flagset/driverocis.go @@ -17,7 +17,7 @@ func DriverOCISWithConfig(cfg *config.Config) []cli.Flag { }, &cli.BoolFlag{ Name: "storage-ocis-enable-home", - Value: true, + Value: false, Usage: "enable the creation of home storages", EnvVars: []string{"REVA_STORAGE_OCIS_ENABLE_HOME"}, Destination: &cfg.Reva.Storages.Common.EnableHome, diff --git a/pkg/flagset/driverowncloud.go b/pkg/flagset/driverowncloud.go index a9f0274239..8d5f0b5ab5 100644 --- a/pkg/flagset/driverowncloud.go +++ b/pkg/flagset/driverowncloud.go @@ -45,7 +45,7 @@ func DriverOwnCloudWithConfig(cfg *config.Config) []cli.Flag { }, &cli.BoolFlag{ Name: "storage-owncloud-enable-home", - Value: true, + Value: false, Usage: "enable the creation of home storages", EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"}, Destination: &cfg.Reva.Storages.OwnCloud.EnableHome, diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index c70aeeaad7..467417f34b 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -96,6 +96,13 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DATA_SERVER_URL"}, Destination: &cfg.Reva.StorageHome.DataServerURL, }, + &cli.BoolFlag{ + Name: "enable-home", + Value: true, + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.Home.EnableHome, + }, // User provider From e3c081ba1a8b67f9642b81c8caa3810c2ce23b8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 8 Sep 2020 14:12:53 +0200 Subject: [PATCH 290/346] make home data use same enable home override config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- pkg/command/storagehomedata.go | 8 ++++++++ pkg/flagset/storagehomedata.go | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 6f909bd2d9..3128fe0348 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -70,6 +70,14 @@ func StorageHomeData(cfg *config.Config) *cli.Command { uuid := uuid.Must(uuid.NewV4()) pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid") + // override driver enable home option with home config + if cfg.Reva.Storages.Home.EnableHome { + cfg.Reva.Storages.Common.EnableHome = true + cfg.Reva.Storages.EOS.EnableHome = true + cfg.Reva.Storages.Local.EnableHome = true + cfg.Reva.Storages.OwnCloud.EnableHome = true + cfg.Reva.Storages.S3.EnableHome = true + } rcfg := map[string]interface{}{ "core": map[string]interface{}{ "max_cpus": cfg.Reva.Users.MaxCPUs, diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 1d00b4ae5b..4dc9ccf04a 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -77,6 +77,13 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_STORAGE_HOME_DATA_TEMP_FOLDER"}, Destination: &cfg.Reva.StorageHomeData.TempFolder, }, + &cli.BoolFlag{ + Name: "enable-home", + Value: true, + Usage: "enable the creation of home directories", + EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME"}, + Destination: &cfg.Reva.Storages.Home.EnableHome, + }, // Gateway From 01592572f37770d476f6be7a194bf4920e24621b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 8 Sep 2020 14:29:35 +0200 Subject: [PATCH 291/346] add changelog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- changelog/unreleased/config-cleanup.md | 8 ++++++++ changelog/unreleased/storage-registry-rules.md | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 changelog/unreleased/config-cleanup.md create mode 100644 changelog/unreleased/storage-registry-rules.md diff --git a/changelog/unreleased/config-cleanup.md b/changelog/unreleased/config-cleanup.md new file mode 100644 index 0000000000..f969a94278 --- /dev/null +++ b/changelog/unreleased/config-cleanup.md @@ -0,0 +1,8 @@ +Bugfix: Fix default configuration for accessing shares + +The storage provider mounted at `/home` should always have EnableHome set to `true`. The other storage providers should have it set to `false`. + +https://github.com/owncloud/product/issues/205 +https://github.com/owncloud/ocis-reva/pull/461 + + diff --git a/changelog/unreleased/storage-registry-rules.md b/changelog/unreleased/storage-registry-rules.md new file mode 100644 index 0000000000..31260b8a51 --- /dev/null +++ b/changelog/unreleased/storage-registry-rules.md @@ -0,0 +1,8 @@ +Enhancement: Allow configuring arbitrary storage registry rules + +We added a new config flag `storage-registry-rule` that can be given multiple times for the gateway to specify arbitrary storage registry rules. You can also use a comma separated list of rules in the `REVA_STORAGE_REGISTRY_RULES` environment variable. + +https://github.com/owncloud/product/issues/193 +https://github.com/owncloud/ocis-reva/pull/461 + + From 87b9469235ba162f224c96d97799af42bceff10a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 8 Sep 2020 14:36:50 +0200 Subject: [PATCH 292/346] fix public sharing port, update generated docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- docs/configuration.md | 1392 ++++++++-------------------------------- pkg/flagset/gateway.go | 2 +- 2 files changed, 256 insertions(+), 1138 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index 636ab4c0a4..b57b1ab3e7 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,6 +1,6 @@ --- title: "Configuration" -date: "2020-06-24T22:26:40+0200" +date: "2020-09-08T14:35:15+0200" weight: 20 geekdocRepo: https://github.com/owncloud/ocis-reva geekdocEditPath: edit/master/docs @@ -57,411 +57,15 @@ Usage: `ocis-reva [global options] command [command options] [arguments...]` ## Sub Commands -### ocis-reva users - -Start reva users service - -Usage: `ocis-reva users [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_SHARING_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9145`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---ldap-hostname | $REVA_LDAP_HOSTNAME -: LDAP hostname. Default: `localhost`. - ---ldap-base-dn | $REVA_LDAP_BASE_DN -: LDAP basedn. Default: `dc=example,dc=org`. - ---ldap-userfilter | $REVA_LDAP_USERFILTER -: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s*))`. - ---ldap-groupfilter | $REVA_LDAP_GROUPFILTER -: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s*))`. - ---ldap-bind-dn | $REVA_LDAP_BIND_DN -: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. - ---ldap-bind-password | $REVA_LDAP_BIND_PASSWORD -: LDAP bind password. Default: `reva`. - ---ldap-idp | $REVA_LDAP_IDP -: Identity provider to use for users. Default: `https://localhost:9200`. - ---ldap-schema-uid | $REVA_LDAP_SCHEMA_UID -: LDAP schema uid. Default: `uid`. - ---ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL -: LDAP schema mail. Default: `mail`. - ---ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME -: LDAP schema displayName. Default: `sn`. - ---ldap-schema-cn | $REVA_LDAP_SCHEMA_CN -: LDAP schema cn. Default: `cn`. - ---network | $REVA_USERS_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_USERS_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_USERS_ADDR -: Address to bind reva service. Default: `0.0.0.0:9144`. - ---url | $REVA_USERS_URL -: URL to use for the reva service. Default: `localhost:9144`. - ---driver | $REVA_USERS_DRIVER -: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. - ---json-config | $REVA_USERS_JSON -: Path to users.json file. - -### ocis-reva auth-basic - -Start reva authprovider for basic auth - -Usage: `ocis-reva auth-basic [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_AUTH_BASIC_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9147`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---users-driver | $REVA_USERS_DRIVER -: user driver: 'demo', 'json' or 'ldap'. Default: `ldap`. - ---users-json | $REVA_USERS_JSON -: Path to users.json file. - ---ldap-hostname | $REVA_LDAP_HOSTNAME -: LDAP hostname. Default: `localhost`. - ---ldap-base-dn | $REVA_LDAP_BASE_DN -: LDAP basedn. Default: `dc=example,dc=org`. - ---ldap-userfilter | $REVA_LDAP_USERFILTER -: LDAP userfilter. Default: `(&(objectclass=posixAccount)(cn=%s))`. - ---ldap-groupfilter | $REVA_LDAP_GROUPFILTER -: LDAP groupfilter. Default: `(&(objectclass=posixGroup)(cn=%s))`. - ---ldap-bind-dn | $REVA_LDAP_BIND_DN -: LDAP bind dn. Default: `cn=reva,ou=sysusers,dc=example,dc=org`. - ---ldap-bind-password | $REVA_LDAP_BIND_PASSWORD -: LDAP bind password. Default: `reva`. - ---ldap-idp | $REVA_LDAP_IDP -: Identity provider to use for users. Default: `https://localhost:9200`. - ---ldap-schema-uid | $REVA_LDAP_SCHEMA_UID -: LDAP schema uid. Default: `uid`. - ---ldap-schema-mail | $REVA_LDAP_SCHEMA_MAIL -: LDAP schema mail. Default: `mail`. - ---ldap-schema-displayName | $REVA_LDAP_SCHEMA_DISPLAYNAME -: LDAP schema displayName. Default: `sn`. - ---ldap-schema-cn | $REVA_LDAP_SCHEMA_CN -: LDAP schema cn. Default: `cn`. - ---network | $REVA_AUTH_BASIC_NETWORK -: Network to use for the reva auth-basic service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_AUTH_BASIC_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_AUTH_BASIC_ADDR -: Address to bind reva service. Default: `0.0.0.0:9146`. - ---url | $REVA_AUTH_BASIC_URL -: URL to use for the reva service. Default: `localhost:9146`. - -### ocis-reva storage-oc-data - -Start reva storage-oc-data service - -Usage: `ocis-reva storage-oc-data [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9165`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---network | $REVA_STORAGE_OC_DATA_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_STORAGE_OC_DATA_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. - ---addr | $REVA_STORAGE_OC_DATA_ADDR -: Address to bind reva service. Default: `0.0.0.0:9164`. - ---url | $REVA_STORAGE_OC_DATA_URL -: URL to use for the reva service. Default: `localhost:9164`. - ---driver | $REVA_STORAGE_OC_DATA_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. - ---prefix | $REVA_STORAGE_OC_DATA_PREFIX -: prefix for the http endpoint, without leading slash. Default: `data`. - ---temp-folder | $REVA_STORAGE_OC_DATA_TEMP_FOLDER -: temp folder. Default: `/var/tmp/`. - ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. - ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. - ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. - ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. - ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. - ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-example.org`. - ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-example.org`. - ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. - ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. - ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. - ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. - ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. - ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. - ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. - ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. - ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. - ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. - ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. - ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. - ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. - ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. - ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `false`. - ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. - ---gateway-url | $REVA_GATEWAY_URL -: URL to use for the reva gateway service. Default: `localhost:9142`. - -### ocis-reva frontend - -Start reva frontend service - -Usage: `ocis-reva frontend [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_FRONTEND_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9141`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---transfer-secret | $REVA_TRANSFER_SECRET -: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. - ---webdav-namespace | $WEBDAV_NAMESPACE -: Namespace prefix for the /webdav endpoint. Default: `/home/`. - ---dav-files-namespace | $DAV_FILES_NAMESPACE -: Namespace prefix for the webdav /dav/files endpoint. Default: `/oc/`. - ---network | $REVA_FRONTEND_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_FRONTEND_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. - ---addr | $REVA_FRONTEND_ADDR -: Address to bind reva service. Default: `0.0.0.0:9140`. - ---url | $REVA_FRONTEND_URL -: URL to use for the reva service. Default: `https://localhost:9200`. - ---gateway-url | $REVA_GATEWAY_URL -: URL to use for the reva gateway service. Default: `localhost:9142`. - ---upload-disable-tus | $REVA_FRONTEND_UPLOAD_DISABLE_TUS -: Disables TUS upload mechanism. Default: `false`. - ---upload-http-method-override | $REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE -: Specify an HTTP method (ex: POST) that clients should to use when uploading instead of PATCH. - ### ocis-reva storage-root Start reva storage-root service Usage: `ocis-reva storage-root [command options] [arguments...]` ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - --debug-addr | $REVA_STORAGE_ROOT_DEBUG_ADDR : Address to bind debug server. Default: `0.0.0.0:9153`. ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - --network | $REVA_STORAGE_ROOT_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. @@ -489,192 +93,15 @@ Usage: `ocis-reva storage-root [command options] [arguments...]` --data-server-url | $REVA_STORAGE_ROOT_DATA_SERVER_URL : data server url. ---enable-home-creation | $REVA_STORAGE_HOME_ENABLE_HOME_CREATION -: if enabled home dirs will be automatically created. - ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. - ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. - ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. - ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-example.org`. - ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-example.org`. - ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. - ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. - ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. - ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. - ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. - ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. - ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. - ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. - ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. - ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. - ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. - ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. - ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. - ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. - ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `false`. - ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. - -### ocis-reva reva-storage-public-link - -Start reva storage-public-link service - -Usage: `ocis-reva reva-storage-public-link [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_STORAGE_PUBLIC_LINK_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:10053`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---network | $REVA_STORAGE_PUBLIC_LINK_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_STORAGE_PUBLIC_LINK_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_STORAGE_PUBLIC_LINK_ADDR -: Address to bind reva service. Default: `localhost:10054`. - ---public_share_provider_addr | $REVA_STORAGE_PUBLICLINK_PUBLIC_SHARE_PROVIDER_ADDR -: public share provider service address. Default: `localhost:9150`. - ---user_provider_addr | $REVA_STORAGE_PUBLICLINK_USER_PROVIDER_ADDR -: user provider service address. Default: `localhost:9144`. - ---storage_provider_addr | $REVA_STORAGE_PUBLICLINK_STORAGE_PROVIDER_ADDR -: storage provider service address. Default: `localhost:9154`. - ---driver | $REVA_STORAGE_PUBLIC_LINK_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. - ---mount-id | $REVA_STORAGE_PUBLIC_LINK_MOUNT_ID -: mount id. Default: `e1a73ede-549b-4226-abdf-40e69ca8230d`. - ---expose-data-server | $REVA_STORAGE_PUBLIC_LINK_EXPOSE_DATA_SERVER -: exposes a dedicated data server. Default: `true`. - ---data-server-url | $REVA_STORAGE_PUBLIC_LINK_DATA_SERVER_URL -: data server url. Default: `http://localhost:9156/data`. - ---enable-home-creation | $REVA_STORAGE_PUBLIC_LINK_ENABLE_HOME_CREATION -: if enabled home dirs will be automatically created. Default: `true`. - ---mount-path | $REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH -: mount path. Default: `/public/`. - ---gateway-url | $REVA_GATEWAY_URL -: URL to use for the reva gateway service. Default: `localhost:9142`. - -### ocis-reva health - -Check health status - -Usage: `ocis-reva health [command options] [arguments...]` - ---debug-addr | $REVA_DEBUG_ADDR -: Address to debug endpoint. Default: `0.0.0.0:9109`. - ### ocis-reva auth-bearer Start reva authprovider for bearer auth Usage: `ocis-reva auth-bearer [command options] [arguments...]` ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - --debug-addr | $REVA_AUTH_BEARER_DEBUG_ADDR : Address to bind debug server. Default: `0.0.0.0:9149`. ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - --oidc-issuer | $REVA_OIDC_ISSUER : OIDC issuer. Default: `https://localhost:9200`. @@ -684,6 +111,12 @@ Usage: `ocis-reva auth-bearer [command options] [arguments...]` --oidc-id-claim | $REVA_OIDC_ID_CLAIM : OIDC id claim. Default: `preferred_username`. +--oidc-uid-claim | $REVA_OIDC_UID_CLAIM +: OIDC uid claim. + +--oidc-gid-claim | $REVA_OIDC_GID_CLAIM +: OIDC gid claim. + --network | $REVA_AUTH_BEARER_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. @@ -696,171 +129,15 @@ Usage: `ocis-reva auth-bearer [command options] [arguments...]` --url | $REVA_AUTH_BEARER_URL : URL to use for the reva service. Default: `localhost:9148`. -### ocis-reva storage-home-data - -Start reva storage-home-data service - -Usage: `ocis-reva storage-home-data [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_STORAGE_HOME_DATA_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9157`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---network | $REVA_STORAGE_HOME_DATA_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_STORAGE_HOME_DATA_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. - ---addr | $REVA_STORAGE_HOME_DATA_ADDR -: Address to bind reva service. Default: `0.0.0.0:9156`. - ---url | $REVA_STORAGE_HOME_DATA_URL -: URL to use for the reva service. Default: `localhost:9156`. - ---driver | $REVA_STORAGE_HOME_DATA_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. - ---prefix | $REVA_STORAGE_HOME_DATA_PREFIX -: prefix for the http endpoint, without leading slash. Default: `data`. - ---temp-folder | $REVA_STORAGE_HOME_DATA_TEMP_FOLDER -: temp folder. Default: `/var/tmp/`. - ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. Default: `/eos/dockertest/reva/users`. - ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. - ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. Default: `/Shares`. - ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. - ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. - ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. - ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. - ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. - ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. - ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. - ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. Default: `true`. - ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. - ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. - ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. - ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. - ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. - ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. - ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. - ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. - ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `true`. - ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. - ---gateway-url | $REVA_GATEWAY_URL -: URL to use for the reva gateway service. Default: `localhost:9142`. - ### ocis-reva gateway Start reva gateway Usage: `ocis-reva gateway [command options] [arguments...]` ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - --debug-addr | $REVA_GATEWAY_DEBUG_ADDR : Address to bind debug server. Default: `0.0.0.0:9143`. ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - --transfer-secret | $REVA_TRANSFER_SECRET : Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. @@ -888,6 +165,9 @@ Usage: `ocis-reva gateway [command options] [arguments...]` --disable-home-creation-on-login | $REVA_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN : Disable creation of home folder on login. +--storage-registry-driver | $REVA_STORAGE_REGISTRY_DRIVER +: driver of the storage registry. Default: `static`. + --storage-home-provider | $REVA_STORAGE_HOME_PROVIDER : mount point of the storage provider for user homes in the global namespace. Default: `/home`. @@ -924,6 +204,9 @@ Usage: `ocis-reva gateway [command options] [arguments...]` --storage-home-mount-path | $REVA_STORAGE_HOME_MOUNT_PATH : mount path. Default: `/home`. +--storage-home-mount-id | $REVA_STORAGE_HOME_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009154`. + --storage-eos-url | $REVA_STORAGE_EOS_URL : URL to use for the reva service. Default: `localhost:9158`. @@ -942,8 +225,47 @@ Usage: `ocis-reva gateway [command options] [arguments...]` --storage-oc-mount-id | $REVA_STORAGE_OC_MOUNT_ID : mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. ---public-links-url | $REVA_STORAGE_PUBLIC_LINK_URL -: URL to use for the public links service. Default: `localhost:10054`. +--public-link-url | $REVA_STORAGE_PUBLIC_LINK_URL +: URL to use for the public links service. Default: `localhost:9178`. + +--storage-public-link-mount-path | $REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH +: mount path. Default: `/public/`. + +### ocis-reva storage-eos-data + +Start reva storage-eos-data service + +Usage: `ocis-reva storage-eos-data [command options] [arguments...]` + +--debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9161`. + +--network | $REVA_STORAGE_EOS_DATA_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_EOS_DATA_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. + +--addr | $REVA_STORAGE_EOS_DATA_ADDR +: Address to bind reva service. Default: `0.0.0.0:9160`. + +--url | $REVA_STORAGE_EOS_DATA_URL +: URL to use for the reva service. Default: `localhost:9160`. + +--driver | $REVA_STORAGE_EOS_DATA_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. + +--prefix | $REVA_STORAGE_EOS_DATA_PREFIX +: prefix for the http endpoint, without leading slash. Default: `data`. + +--temp-folder | $REVA_STORAGE_EOS_DATA_TEMP_FOLDER +: temp folder. Default: `/var/tmp/`. + +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. + +--users-url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. ### ocis-reva storage-home @@ -951,36 +273,9 @@ Start reva storage-home service Usage: `ocis-reva storage-home [command options] [arguments...]` ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - --debug-addr | $REVA_STORAGE_HOME_DEBUG_ADDR : Address to bind debug server. Default: `0.0.0.0:9155`. ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - --network | $REVA_STORAGE_HOME_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. @@ -1008,263 +303,113 @@ Usage: `ocis-reva storage-home [command options] [arguments...]` --data-server-url | $REVA_STORAGE_HOME_DATA_SERVER_URL : data server url. Default: `http://localhost:9156/data`. ---enable-home-creation | $REVA_STORAGE_HOME_ENABLE_HOME_CREATION -: if enabled home dirs will be automatically created. Default: `true`. - ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. Default: `/eos/dockertest/reva/users`. - ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. - ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. Default: `/Shares`. - ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. - ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. - ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. - ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. - ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. - ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. - ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. - ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME +--enable-home | $REVA_STORAGE_HOME_ENABLE_HOME : enable the creation of home directories. Default: `true`. ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. +--users-url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. +### ocis-reva reva-storage-public-link ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. +Start reva storage-public-link service ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "E/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. +Usage: `ocis-reva reva-storage-public-link [command options] [arguments...]` ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. +--debug-addr | $REVA_STORAGE_PUBLIC_LINK_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9179`. ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. - ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. - ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. - ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `true`. - ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. - -### ocis-reva storage-eos-data - -Start reva storage-eos-data service - -Usage: `ocis-reva storage-eos-data [command options] [arguments...]` - ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9161`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---network | $REVA_STORAGE_EOS_DATA_NETWORK +--network | $REVA_STORAGE_PUBLIC_LINK_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---protocol | $REVA_STORAGE_EOS_DATA_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. +--protocol | $REVA_STORAGE_PUBLIC_LINK_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. ---addr | $REVA_STORAGE_EOS_DATA_ADDR -: Address to bind reva service. Default: `0.0.0.0:9160`. +--addr | $REVA_STORAGE_PUBLIC_LINK_ADDR +: Address to bind reva service. Default: `0.0.0.0:9178`. ---url | $REVA_STORAGE_EOS_DATA_URL -: URL to use for the reva service. Default: `localhost:9160`. +--url | $REVA_STORAGE_PUBLIC_LINK_URL +: Address to bind reva service. Default: `localhost:9178`. ---driver | $REVA_STORAGE_EOS_DATA_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. - ---prefix | $REVA_STORAGE_EOS_DATA_PREFIX -: prefix for the http endpoint, without leading slash. Default: `data`. - ---temp-folder | $REVA_STORAGE_EOS_DATA_TEMP_FOLDER -: temp folder. Default: `/var/tmp/`. - ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. Default: `/eos/dockertest/reva`. - ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. - ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. Default: `/Shares`. - ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. - ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. - ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. - ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. - ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. - ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. - ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. - ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. - ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. - ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. - ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. - ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. - ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. - ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. - ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. - ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. - ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. - ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `false`. - ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. +--mount-path | $REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH +: mount path. Default: `/public/`. --gateway-url | $REVA_GATEWAY_URL : URL to use for the reva gateway service. Default: `localhost:9142`. -### ocis-reva sharing +### ocis-reva auth-basic -Start reva sharing service +Start reva authprovider for basic auth -Usage: `ocis-reva sharing [command options] [arguments...]` +Usage: `ocis-reva auth-basic [command options] [arguments...]` ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. +--debug-addr | $REVA_AUTH_BASIC_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9147`. ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. +--auth-driver | $REVA_AUTH_DRIVER +: auth driver: 'demo', 'json' or 'ldap'. Default: `ldap`. ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. +--auth-json | $REVA_AUTH_JSON +: Path to users.json file. ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. +--network | $REVA_AUTH_BASIC_NETWORK +: Network to use for the reva auth-basic service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - ---debug-addr | $REVA_SHARING_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9151`. - ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - ---network | $REVA_SHARING_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_SHARING_PROTOCOL +--protocol | $REVA_AUTH_BASIC_PROTOCOL : protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. ---addr | $REVA_SHARING_ADDR -: Address to bind reva service. Default: `0.0.0.0:9150`. +--addr | $REVA_AUTH_BASIC_ADDR +: Address to bind reva service. Default: `0.0.0.0:9146`. ---url | $REVA_SHARING_URL -: URL to use for the reva service. Default: `localhost:9150`. +--url | $REVA_AUTH_BASIC_URL +: URL to use for the reva service. Default: `localhost:9146`. ---user-driver | $REVA_SHARING_USER_DRIVER -: driver to use for the UserShareProvider. Default: `json`. +### ocis-reva frontend ---user-json-file | $REVA_SHARING_USER_JSON_FILE -: file used to persist shares for the UserShareProvider. Default: `/var/tmp/reva/shares.json`. +Start reva frontend service ---public-driver | $REVA_SHARING_PUBLIC_DRIVER -: driver to use for the PublicShareProvider. Default: `json`. +Usage: `ocis-reva frontend [command options] [arguments...]` + +--debug-addr | $REVA_FRONTEND_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9141`. + +--transfer-secret | $REVA_TRANSFER_SECRET +: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. + +--webdav-namespace | $WEBDAV_NAMESPACE +: Namespace prefix for the /webdav endpoint. Default: `/home/`. + +--dav-files-namespace | $DAV_FILES_NAMESPACE +: Namespace prefix for the webdav /dav/files endpoint. Default: `/oc/`. + +--network | $REVA_FRONTEND_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_FRONTEND_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. + +--addr | $REVA_FRONTEND_ADDR +: Address to bind reva service. Default: `0.0.0.0:9140`. + +--url | $REVA_FRONTEND_URL +: URL to use for the reva service. Default: `https://localhost:9200`. + +--datagateway-prefix | $REVA_FRONTEND_DATAGATEWAY_PREFIX +: datagateway prefix. Default: `data`. + +--ocdav-prefix | $REVA_FRONTEND_OCDAV_PREFIX +: owncloud webdav endpoint prefix. + +--ocs-prefix | $REVA_FRONTEND_OCS_PREFIX +: open collaboration services endpoint prefix. Default: `ocs`. + +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. + +--upload-disable-tus | $REVA_FRONTEND_UPLOAD_DISABLE_TUS +: Disables TUS upload mechanism. Default: `false`. + +--upload-http-method-override | $REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE +: Specify an HTTP method (ex: POST) that clients should to use when uploading instead of PATCH. ### ocis-reva storage-eos @@ -1272,36 +417,9 @@ Start reva storage-eos service Usage: `ocis-reva storage-eos [command options] [arguments...]` ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - --debug-addr | $REVA_STORAGE_EOS_DEBUG_ADDR : Address to bind debug server. Default: `0.0.0.0:9159`. ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - --network | $REVA_STORAGE_EOS_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. @@ -1329,77 +447,89 @@ Usage: `ocis-reva storage-eos [command options] [arguments...]` --data-server-url | $REVA_STORAGE_EOS_DATA_SERVER_URL : data server url. Default: `http://localhost:9160/data`. ---enable-home-creation | $REVA_STORAGE_EOS_ENABLE_HOME_CREATION -: if enabled home dirs will be automatically created. Default: `false`. +### ocis-reva storage-oc-data ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. Default: `/eos/dockertest/reva`. +Start reva storage-oc-data service ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. +Usage: `ocis-reva storage-oc-data [command options] [arguments...]` ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. Default: `/Shares`. +--debug-addr | $REVA_STORAGE_OC_DATA_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9165`. ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. +--network | $REVA_STORAGE_OC_DATA_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. +--protocol | $REVA_STORAGE_OC_DATA_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. +--addr | $REVA_STORAGE_OC_DATA_ADDR +: Address to bind reva service. Default: `0.0.0.0:9164`. ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-mgm1.eoscluster.cern.ch:1094`. +--url | $REVA_STORAGE_OC_DATA_URL +: URL to use for the reva service. Default: `localhost:9164`. ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. +--driver | $REVA_STORAGE_OC_DATA_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. +--prefix | $REVA_STORAGE_OC_DATA_PREFIX +: prefix for the http endpoint, without leading slash. Default: `data`. ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. +--temp-folder | $REVA_STORAGE_OC_DATA_TEMP_FOLDER +: temp folder. Default: `/var/tmp/`. ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. +--users-url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. +### ocis-reva health ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. +Check health status ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. +Usage: `ocis-reva health [command options] [arguments...]` ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. +--debug-addr | $REVA_DEBUG_ADDR +: Address to debug endpoint. Default: `0.0.0.0:9109`. ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. +### ocis-reva storage-home-data ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. +Start reva storage-home-data service ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. +Usage: `ocis-reva storage-home-data [command options] [arguments...]` ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. +--debug-addr | $REVA_STORAGE_HOME_DATA_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9157`. ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. +--network | $REVA_STORAGE_HOME_DATA_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `false`. +--protocol | $REVA_STORAGE_HOME_DATA_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. +--addr | $REVA_STORAGE_HOME_DATA_ADDR +: Address to bind reva service. Default: `0.0.0.0:9156`. + +--url | $REVA_STORAGE_HOME_DATA_URL +: URL to use for the reva service. Default: `localhost:9156`. + +--driver | $REVA_STORAGE_HOME_DATA_DRIVER +: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. + +--prefix | $REVA_STORAGE_HOME_DATA_PREFIX +: prefix for the http endpoint, without leading slash. Default: `data`. + +--temp-folder | $REVA_STORAGE_HOME_DATA_TEMP_FOLDER +: temp folder. Default: `/var/tmp/`. + +--enable-home | $REVA_STORAGE_HOME_ENABLE_HOME +: enable the creation of home directories. Default: `true`. + +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. + +--users-url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. ### ocis-reva storage-oc @@ -1407,36 +537,9 @@ Start reva storage-oc service Usage: `ocis-reva storage-oc [command options] [arguments...]` ---tracing-enabled | $REVA_TRACING_ENABLED -: Enable sending traces. - ---tracing-type | $REVA_TRACING_TYPE -: Tracing backend type. Default: `jaeger`. - ---tracing-endpoint | $REVA_TRACING_ENDPOINT -: Endpoint for the agent. - ---tracing-collector | $REVA_TRACING_COLLECTOR -: Endpoint for the collector. - ---tracing-service | $REVA_TRACING_SERVICE -: Service name for tracing. Default: `reva`. - --debug-addr | $REVA_STORAGE_OC_DEBUG_ADDR : Address to bind debug server. Default: `0.0.0.0:9163`. ---debug-token | $REVA_DEBUG_TOKEN -: Token to grant metrics access. - ---debug-pprof | $REVA_DEBUG_PPROF -: Enable pprof debugging. - ---debug-zpages | $REVA_DEBUG_ZPAGES -: Enable zpages debugging. - ---jwt-secret | $REVA_JWT_SECRET -: Shared jwt secret for reva service communication. Default: `Pive-Fumkiu4`. - --network | $REVA_STORAGE_OC_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. @@ -1464,75 +567,90 @@ Usage: `ocis-reva storage-oc [command options] [arguments...]` --data-server-url | $REVA_STORAGE_OC_DATA_SERVER_URL : data server url. Default: `http://localhost:9164/data`. ---enable-home-creation | $REVA_STORAGE_OC_ENABLE_HOME_CREATION -: if enabled home dirs will be automatically created. Default: `false`. +--users-url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. ---storage-eos-namespace | $REVA_STORAGE_EOS_NAMESPACE -: Namespace for metadata operations. +### ocis-reva users ---storage-eos-shadow-namespace | $REVA_STORAGE_EOS_SHADOW_NAMESPACE -: Shadow namespace where share references are stored. +Start reva users service ---storage-eos-share-folder | $REVA_STORAGE_EOS_SHARE_FOLDER -: name of the share folder. +Usage: `ocis-reva users [command options] [arguments...]` ---storage-eos-binary | $REVA_STORAGE_EOS_BINARY -: Location of the eos binary. Default: `/usr/bin/eos`. +--debug-addr | $REVA_SHARING_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9145`. ---storage-eos-xrdcopy-binary | $REVA_STORAGE_EOS_XRDCOPY_BINARY -: Location of the xrdcopy binary. Default: `/usr/bin/xrdcopy`. +--network | $REVA_USERS_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---storage-eos-master-url | $REVA_STORAGE_EOS_MASTER_URL -: URL of the Master EOS MGM. Default: `root://eos-example.org`. +--protocol | $REVA_USERS_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. ---storage-eos-slave-url | $REVA_STORAGE_EOS_SLAVE_URL -: URL of the Slave EOS MGM. Default: `root://eos-example.org`. +--addr | $REVA_USERS_ADDR +: Address to bind reva service. Default: `0.0.0.0:9144`. ---storage-eos-cache-directory | $REVA_STORAGE_EOS_CACHE_DIRECTORY -: Location on the local fs where to store reads. Default: `os.TempDir()`. +--url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. ---storage-eos-enable-logging | $REVA_STORAGE_EOS_ENABLE_LOGGING -: Enables logging of the commands executed. +--driver | $REVA_USERS_DRIVER +: user driver: 'demo', 'json', 'ldap', or 'rest'. Default: `ldap`. ---storage-eos-show-hidden-sysfiles | $REVA_STORAGE_EOS_SHOW_HIDDEN_SYSFILES -: show internal EOS files like .sys.v# and .sys.a# files.. +--json-config | $REVA_USERS_JSON +: Path to users.json file. ---storage-eos-force-singleuser-mode | $REVA_STORAGE_EOS_FORCE_SINGLEUSER_MODE -: force connections to EOS to use SingleUsername. +--rest-client-id | $REVA_REST_CLIENT_ID +: User rest driver Client ID. ---storage-eos-use-keytab | $REVA_STORAGE_EOS_USE_KEYTAB -: authenticate requests by using an EOS keytab. +--rest-client-secret | $REVA_REST_CLIENT_SECRET +: User rest driver Client Secret. ---storage-eos-enable-home | $REVA_STORAGE_EOS_ENABLE_HOME -: enable the creation of home directories. +--rest-redis-address | $REVA_REST_REDIS_ADDRESS +: Address for redis server. Default: `localhost:6379`. ---storage-eos-sec-protocol | $REVA_STORAGE_EOS_SEC_PROTOCOL -: the xrootd security protocol to use between the server and EOS. +--rest-redis-username | $REVA_REST_REDIS_USERNAME +: Username for redis server. ---storage-eos-keytab | $REVA_STORAGE_EOS_KEYTAB -: the location of the keytab to use to authenticate to EOS. +--rest-redis-password | $REVA_REST_REDIS_PASSWORD +: Password for redis server. ---storage-eos-single-username | $REVA_STORAGE_EOS_SINGLE_USERNAME -: the username to use when SingleUserMode is enabled. +--rest-id-provider | $REVA_REST_ID_PROVIDER +: The OIDC Provider. ---storage-eos-layout | $REVA_STORAGE_EOS_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{substr 0 1 .Username}}/{{.Username}}`. +--rest-api-base-url | $REVA_REST_API_BASE_URL +: Base API Endpoint. ---storage-local-root | $REVA_STORAGE_LOCAL_ROOT -: the path to the local storage root. Default: `/var/tmp/reva/root`. +--rest-oidc-token-endpoint | $REVA_REST_OIDC_TOKEN_ENDPOINT +: Endpoint to generate token to access the API. ---storage-owncloud-datadir | $REVA_STORAGE_OWNCLOUD_DATADIR -: the path to the owncloud data directory. Default: `/var/tmp/reva/data`. +--rest-target-api | $REVA_REST_TARGET_API +: The target application. ---storage-owncloud-scan | $REVA_STORAGE_OWNCLOUD_SCAN -: scan files on startup to add fileids. Default: `true`. +### ocis-reva sharing ---storage-owncloud-redis | $REVA_STORAGE_OWNCLOUD_REDIS_ADDR -: the address of the redis server. Default: `:6379`. +Start reva sharing service ---storage-owncloud-enable-home | $REVA_STORAGE_OWNCLOUD_ENABLE_HOME -: enable the creation of home storages. Default: `false`. +Usage: `ocis-reva sharing [command options] [arguments...]` ---storage-owncloud-layout | $REVA_STORAGE_OWNCLOUD_LAYOUT -: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `. Default: `{{.Username}}`. +--debug-addr | $REVA_SHARING_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9151`. + +--network | $REVA_SHARING_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_SHARING_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_SHARING_ADDR +: Address to bind reva service. Default: `0.0.0.0:9150`. + +--url | $REVA_SHARING_URL +: URL to use for the reva service. Default: `localhost:9150`. + +--user-driver | $REVA_SHARING_USER_DRIVER +: driver to use for the UserShareProvider. Default: `json`. + +--user-json-file | $REVA_SHARING_USER_JSON_FILE +: file used to persist shares for the UserShareProvider. Default: `/var/tmp/reva/shares.json`. + +--public-driver | $REVA_SHARING_PUBLIC_DRIVER +: driver to use for the PublicShareProvider. Default: `json`. diff --git a/pkg/flagset/gateway.go b/pkg/flagset/gateway.go index f773b90c36..a579b615b0 100644 --- a/pkg/flagset/gateway.go +++ b/pkg/flagset/gateway.go @@ -264,7 +264,7 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "public-link-url", - Value: "localhost:10054", + Value: "localhost:9178", Usage: "URL to use for the public links service", EnvVars: []string{"REVA_STORAGE_PUBLIC_LINK_URL"}, Destination: &cfg.Reva.StoragePublicLink.URL, From d462e3212c3401452112ebb1a4d208ad5cb1a0ea Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 9 Sep 2020 12:37:32 +0200 Subject: [PATCH 293/346] Add ocis to driver list in help Also added slight hint about them being mounts with specific drivers. --- docs/configuration.md | 542 ++++++++++++++++----------------- pkg/flagset/storageeos.go | 2 +- pkg/flagset/storageeosdata.go | 2 +- pkg/flagset/storagehome.go | 2 +- pkg/flagset/storagehomedata.go | 2 +- pkg/flagset/storageoc.go | 2 +- pkg/flagset/storageocdata.go | 2 +- pkg/flagset/storageroot.go | 2 +- 8 files changed, 278 insertions(+), 278 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index b57b1ab3e7..792b5a5304 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,6 +1,6 @@ --- title: "Configuration" -date: "2020-09-08T14:35:15+0200" +date: "2020-09-09T12:38:00+0200" weight: 20 geekdocRepo: https://github.com/owncloud/ocis-reva geekdocEditPath: edit/master/docs @@ -57,77 +57,167 @@ Usage: `ocis-reva [global options] command [command options] [arguments...]` ## Sub Commands -### ocis-reva storage-root +### ocis-reva frontend -Start reva storage-root service +Start reva frontend service -Usage: `ocis-reva storage-root [command options] [arguments...]` +Usage: `ocis-reva frontend [command options] [arguments...]` ---debug-addr | $REVA_STORAGE_ROOT_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9153`. +--debug-addr | $REVA_FRONTEND_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9141`. ---network | $REVA_STORAGE_ROOT_NETWORK +--transfer-secret | $REVA_TRANSFER_SECRET +: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. + +--webdav-namespace | $WEBDAV_NAMESPACE +: Namespace prefix for the /webdav endpoint. Default: `/home/`. + +--dav-files-namespace | $DAV_FILES_NAMESPACE +: Namespace prefix for the webdav /dav/files endpoint. Default: `/oc/`. + +--network | $REVA_FRONTEND_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---protocol | $REVA_STORAGE_ROOT_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. +--protocol | $REVA_FRONTEND_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. ---addr | $REVA_STORAGE_ROOT_ADDR -: Address to bind reva service. Default: `0.0.0.0:9152`. +--addr | $REVA_FRONTEND_ADDR +: Address to bind reva service. Default: `0.0.0.0:9140`. ---url | $REVA_STORAGE_ROOT_URL -: URL to use for the reva service. Default: `localhost:9152`. +--url | $REVA_FRONTEND_URL +: URL to use for the reva service. Default: `https://localhost:9200`. ---driver | $REVA_STORAGE_ROOT_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `local`. +--datagateway-prefix | $REVA_FRONTEND_DATAGATEWAY_PREFIX +: datagateway prefix. Default: `data`. ---mount-path | $REVA_STORAGE_ROOT_MOUNT_PATH -: mount path. Default: `/`. +--ocdav-prefix | $REVA_FRONTEND_OCDAV_PREFIX +: owncloud webdav endpoint prefix. ---mount-id | $REVA_STORAGE_ROOT_MOUNT_ID -: mount id. Default: `123e4567-e89b-12d3-a456-426655440001`. +--ocs-prefix | $REVA_FRONTEND_OCS_PREFIX +: open collaboration services endpoint prefix. Default: `ocs`. ---expose-data-server | $REVA_STORAGE_ROOT_EXPOSE_DATA_SERVER -: exposes a dedicated data server. +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. ---data-server-url | $REVA_STORAGE_ROOT_DATA_SERVER_URL -: data server url. +--upload-disable-tus | $REVA_FRONTEND_UPLOAD_DISABLE_TUS +: Disables TUS upload mechanism. Default: `false`. -### ocis-reva auth-bearer +--upload-http-method-override | $REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE +: Specify an HTTP method (ex: POST) that clients should to use when uploading instead of PATCH. -Start reva authprovider for bearer auth +### ocis-reva health -Usage: `ocis-reva auth-bearer [command options] [arguments...]` +Check health status ---debug-addr | $REVA_AUTH_BEARER_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9149`. +Usage: `ocis-reva health [command options] [arguments...]` ---oidc-issuer | $REVA_OIDC_ISSUER -: OIDC issuer. Default: `https://localhost:9200`. +--debug-addr | $REVA_DEBUG_ADDR +: Address to debug endpoint. Default: `0.0.0.0:9109`. ---oidc-insecure | $REVA_OIDC_INSECURE -: OIDC allow insecure communication. Default: `true`. +### ocis-reva storage-home-data ---oidc-id-claim | $REVA_OIDC_ID_CLAIM -: OIDC id claim. Default: `preferred_username`. +Start reva storage-home-data service ---oidc-uid-claim | $REVA_OIDC_UID_CLAIM -: OIDC uid claim. +Usage: `ocis-reva storage-home-data [command options] [arguments...]` ---oidc-gid-claim | $REVA_OIDC_GID_CLAIM -: OIDC gid claim. +--debug-addr | $REVA_STORAGE_HOME_DATA_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9157`. ---network | $REVA_AUTH_BEARER_NETWORK +--network | $REVA_STORAGE_HOME_DATA_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---protocol | $REVA_AUTH_BEARER_PROTOCOL +--protocol | $REVA_STORAGE_HOME_DATA_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. + +--addr | $REVA_STORAGE_HOME_DATA_ADDR +: Address to bind reva service. Default: `0.0.0.0:9156`. + +--url | $REVA_STORAGE_HOME_DATA_URL +: URL to use for the reva service. Default: `localhost:9156`. + +--driver | $REVA_STORAGE_HOME_DATA_DRIVER +: storage driver for home data mount: eg. local, eos, owncloud, ocis or s3. Default: `owncloud`. + +--prefix | $REVA_STORAGE_HOME_DATA_PREFIX +: prefix for the http endpoint, without leading slash. Default: `data`. + +--temp-folder | $REVA_STORAGE_HOME_DATA_TEMP_FOLDER +: temp folder. Default: `/var/tmp/`. + +--enable-home | $REVA_STORAGE_HOME_ENABLE_HOME +: enable the creation of home directories. Default: `true`. + +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. + +--users-url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. + +### ocis-reva storage-oc + +Start reva storage-oc service + +Usage: `ocis-reva storage-oc [command options] [arguments...]` + +--debug-addr | $REVA_STORAGE_OC_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9163`. + +--network | $REVA_STORAGE_OC_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_OC_PROTOCOL : protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. ---addr | $REVA_AUTH_BEARER_ADDR -: Address to bind reva service. Default: `0.0.0.0:9148`. +--addr | $REVA_STORAGE_OC_ADDR +: Address to bind reva service. Default: `0.0.0.0:9162`. ---url | $REVA_AUTH_BEARER_URL -: URL to use for the reva service. Default: `localhost:9148`. +--url | $REVA_STORAGE_OC_URL +: URL to use for the reva service. Default: `localhost:9162`. + +--driver | $REVA_STORAGE_OC_DRIVER +: storage driver for oc mount: eg. local, eos, owncloud, ocis or s3. Default: `owncloud`. + +--mount-path | $REVA_STORAGE_OC_MOUNT_PATH +: mount path. Default: `/oc`. + +--mount-id | $REVA_STORAGE_OC_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. + +--expose-data-server | $REVA_STORAGE_OC_EXPOSE_DATA_SERVER +: exposes a dedicated data server. Default: `false`. + +--data-server-url | $REVA_STORAGE_OC_DATA_SERVER_URL +: data server url. Default: `http://localhost:9164/data`. + +--users-url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. + +### ocis-reva auth-basic + +Start reva authprovider for basic auth + +Usage: `ocis-reva auth-basic [command options] [arguments...]` + +--debug-addr | $REVA_AUTH_BASIC_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9147`. + +--auth-driver | $REVA_AUTH_DRIVER +: auth driver: 'demo', 'json' or 'ldap'. Default: `ldap`. + +--auth-json | $REVA_AUTH_JSON +: Path to users.json file. + +--network | $REVA_AUTH_BASIC_NETWORK +: Network to use for the reva auth-basic service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_AUTH_BASIC_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_AUTH_BASIC_ADDR +: Address to bind reva service. Default: `0.0.0.0:9146`. + +--url | $REVA_AUTH_BASIC_URL +: URL to use for the reva service. Default: `localhost:9146`. ### ocis-reva gateway @@ -231,6 +321,36 @@ Usage: `ocis-reva gateway [command options] [arguments...]` --storage-public-link-mount-path | $REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH : mount path. Default: `/public/`. +### ocis-reva sharing + +Start reva sharing service + +Usage: `ocis-reva sharing [command options] [arguments...]` + +--debug-addr | $REVA_SHARING_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9151`. + +--network | $REVA_SHARING_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_SHARING_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_SHARING_ADDR +: Address to bind reva service. Default: `0.0.0.0:9150`. + +--url | $REVA_SHARING_URL +: URL to use for the reva service. Default: `localhost:9150`. + +--user-driver | $REVA_SHARING_USER_DRIVER +: driver to use for the UserShareProvider. Default: `json`. + +--user-json-file | $REVA_SHARING_USER_JSON_FILE +: file used to persist shares for the UserShareProvider. Default: `/var/tmp/reva/shares.json`. + +--public-driver | $REVA_SHARING_PUBLIC_DRIVER +: driver to use for the PublicShareProvider. Default: `json`. + ### ocis-reva storage-eos-data Start reva storage-eos-data service @@ -253,7 +373,7 @@ Usage: `ocis-reva storage-eos-data [command options] [arguments...]` : URL to use for the reva service. Default: `localhost:9160`. --driver | $REVA_STORAGE_EOS_DATA_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. +: storage driver for eos data mount: eg. local, eos, owncloud, ocis or s3. Default: `eos`. --prefix | $REVA_STORAGE_EOS_DATA_PREFIX : prefix for the http endpoint, without leading slash. Default: `data`. @@ -267,149 +387,41 @@ Usage: `ocis-reva storage-eos-data [command options] [arguments...]` --users-url | $REVA_USERS_URL : URL to use for the reva service. Default: `localhost:9144`. -### ocis-reva storage-home +### ocis-reva auth-bearer -Start reva storage-home service +Start reva authprovider for bearer auth -Usage: `ocis-reva storage-home [command options] [arguments...]` +Usage: `ocis-reva auth-bearer [command options] [arguments...]` ---debug-addr | $REVA_STORAGE_HOME_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9155`. +--debug-addr | $REVA_AUTH_BEARER_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9149`. ---network | $REVA_STORAGE_HOME_NETWORK +--oidc-issuer | $REVA_OIDC_ISSUER +: OIDC issuer. Default: `https://localhost:9200`. + +--oidc-insecure | $REVA_OIDC_INSECURE +: OIDC allow insecure communication. Default: `true`. + +--oidc-id-claim | $REVA_OIDC_ID_CLAIM +: OIDC id claim. Default: `preferred_username`. + +--oidc-uid-claim | $REVA_OIDC_UID_CLAIM +: OIDC uid claim. + +--oidc-gid-claim | $REVA_OIDC_GID_CLAIM +: OIDC gid claim. + +--network | $REVA_AUTH_BEARER_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---protocol | $REVA_STORAGE_HOME_PROTOCOL +--protocol | $REVA_AUTH_BEARER_PROTOCOL : protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. ---addr | $REVA_STORAGE_HOME_ADDR -: Address to bind reva service. Default: `0.0.0.0:9154`. +--addr | $REVA_AUTH_BEARER_ADDR +: Address to bind reva service. Default: `0.0.0.0:9148`. ---url | $REVA_STORAGE_HOME_URL -: URL to use for the reva service. Default: `localhost:9154`. - ---driver | $REVA_STORAGE_HOME_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. - ---mount-path | $REVA_STORAGE_HOME_MOUNT_PATH -: mount path. Default: `/home`. - ---mount-id | $REVA_STORAGE_HOME_MOUNT_ID -: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. - ---expose-data-server | $REVA_STORAGE_HOME_EXPOSE_DATA_SERVER -: exposes a dedicated data server. Default: `false`. - ---data-server-url | $REVA_STORAGE_HOME_DATA_SERVER_URL -: data server url. Default: `http://localhost:9156/data`. - ---enable-home | $REVA_STORAGE_HOME_ENABLE_HOME -: enable the creation of home directories. Default: `true`. - ---users-url | $REVA_USERS_URL -: URL to use for the reva service. Default: `localhost:9144`. - -### ocis-reva reva-storage-public-link - -Start reva storage-public-link service - -Usage: `ocis-reva reva-storage-public-link [command options] [arguments...]` - ---debug-addr | $REVA_STORAGE_PUBLIC_LINK_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9179`. - ---network | $REVA_STORAGE_PUBLIC_LINK_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_STORAGE_PUBLIC_LINK_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_STORAGE_PUBLIC_LINK_ADDR -: Address to bind reva service. Default: `0.0.0.0:9178`. - ---url | $REVA_STORAGE_PUBLIC_LINK_URL -: Address to bind reva service. Default: `localhost:9178`. - ---mount-path | $REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH -: mount path. Default: `/public/`. - ---gateway-url | $REVA_GATEWAY_URL -: URL to use for the reva gateway service. Default: `localhost:9142`. - -### ocis-reva auth-basic - -Start reva authprovider for basic auth - -Usage: `ocis-reva auth-basic [command options] [arguments...]` - ---debug-addr | $REVA_AUTH_BASIC_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9147`. - ---auth-driver | $REVA_AUTH_DRIVER -: auth driver: 'demo', 'json' or 'ldap'. Default: `ldap`. - ---auth-json | $REVA_AUTH_JSON -: Path to users.json file. - ---network | $REVA_AUTH_BASIC_NETWORK -: Network to use for the reva auth-basic service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_AUTH_BASIC_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. - ---addr | $REVA_AUTH_BASIC_ADDR -: Address to bind reva service. Default: `0.0.0.0:9146`. - ---url | $REVA_AUTH_BASIC_URL -: URL to use for the reva service. Default: `localhost:9146`. - -### ocis-reva frontend - -Start reva frontend service - -Usage: `ocis-reva frontend [command options] [arguments...]` - ---debug-addr | $REVA_FRONTEND_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9141`. - ---transfer-secret | $REVA_TRANSFER_SECRET -: Transfer secret for datagateway. Default: `replace-me-with-a-transfer-secret`. - ---webdav-namespace | $WEBDAV_NAMESPACE -: Namespace prefix for the /webdav endpoint. Default: `/home/`. - ---dav-files-namespace | $DAV_FILES_NAMESPACE -: Namespace prefix for the webdav /dav/files endpoint. Default: `/oc/`. - ---network | $REVA_FRONTEND_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_FRONTEND_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. - ---addr | $REVA_FRONTEND_ADDR -: Address to bind reva service. Default: `0.0.0.0:9140`. - ---url | $REVA_FRONTEND_URL -: URL to use for the reva service. Default: `https://localhost:9200`. - ---datagateway-prefix | $REVA_FRONTEND_DATAGATEWAY_PREFIX -: datagateway prefix. Default: `data`. - ---ocdav-prefix | $REVA_FRONTEND_OCDAV_PREFIX -: owncloud webdav endpoint prefix. - ---ocs-prefix | $REVA_FRONTEND_OCS_PREFIX -: open collaboration services endpoint prefix. Default: `ocs`. - ---gateway-url | $REVA_GATEWAY_URL -: URL to use for the reva gateway service. Default: `localhost:9142`. - ---upload-disable-tus | $REVA_FRONTEND_UPLOAD_DISABLE_TUS -: Disables TUS upload mechanism. Default: `false`. - ---upload-http-method-override | $REVA_FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE -: Specify an HTTP method (ex: POST) that clients should to use when uploading instead of PATCH. +--url | $REVA_AUTH_BEARER_URL +: URL to use for the reva service. Default: `localhost:9148`. ### ocis-reva storage-eos @@ -433,7 +445,7 @@ Usage: `ocis-reva storage-eos [command options] [arguments...]` : URL to use for the reva service. Default: `localhost:9158`. --driver | $REVA_STORAGE_EOS_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `eos`. +: storage driver for eos mount: eg. local, eos, owncloud, ocis or s3. Default: `eos`. --mount-path | $REVA_STORAGE_EOS_MOUNT_PATH : mount path. Default: `/eos`. @@ -447,6 +459,48 @@ Usage: `ocis-reva storage-eos [command options] [arguments...]` --data-server-url | $REVA_STORAGE_EOS_DATA_SERVER_URL : data server url. Default: `http://localhost:9160/data`. +### ocis-reva storage-home + +Start reva storage-home service + +Usage: `ocis-reva storage-home [command options] [arguments...]` + +--debug-addr | $REVA_STORAGE_HOME_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9155`. + +--network | $REVA_STORAGE_HOME_NETWORK +: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. + +--protocol | $REVA_STORAGE_HOME_PROTOCOL +: protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. + +--addr | $REVA_STORAGE_HOME_ADDR +: Address to bind reva service. Default: `0.0.0.0:9154`. + +--url | $REVA_STORAGE_HOME_URL +: URL to use for the reva service. Default: `localhost:9154`. + +--driver | $REVA_STORAGE_HOME_DRIVER +: storage driver for home mount: eg. local, eos, owncloud, ocis or s3. Default: `owncloud`. + +--mount-path | $REVA_STORAGE_HOME_MOUNT_PATH +: mount path. Default: `/home`. + +--mount-id | $REVA_STORAGE_HOME_MOUNT_ID +: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. + +--expose-data-server | $REVA_STORAGE_HOME_EXPOSE_DATA_SERVER +: exposes a dedicated data server. Default: `false`. + +--data-server-url | $REVA_STORAGE_HOME_DATA_SERVER_URL +: data server url. Default: `http://localhost:9156/data`. + +--enable-home | $REVA_STORAGE_HOME_ENABLE_HOME +: enable the creation of home directories. Default: `true`. + +--users-url | $REVA_USERS_URL +: URL to use for the reva service. Default: `localhost:9144`. + ### ocis-reva storage-oc-data Start reva storage-oc-data service @@ -469,7 +523,7 @@ Usage: `ocis-reva storage-oc-data [command options] [arguments...]` : URL to use for the reva service. Default: `localhost:9164`. --driver | $REVA_STORAGE_OC_DATA_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. +: storage driver for oc data mount: eg. local, eos, owncloud, ocis or s3. Default: `owncloud`. --prefix | $REVA_STORAGE_OC_DATA_PREFIX : prefix for the http endpoint, without leading slash. Default: `data`. @@ -483,92 +537,41 @@ Usage: `ocis-reva storage-oc-data [command options] [arguments...]` --users-url | $REVA_USERS_URL : URL to use for the reva service. Default: `localhost:9144`. -### ocis-reva health +### ocis-reva storage-root -Check health status +Start reva storage-root service -Usage: `ocis-reva health [command options] [arguments...]` +Usage: `ocis-reva storage-root [command options] [arguments...]` ---debug-addr | $REVA_DEBUG_ADDR -: Address to debug endpoint. Default: `0.0.0.0:9109`. +--debug-addr | $REVA_STORAGE_ROOT_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9153`. -### ocis-reva storage-home-data - -Start reva storage-home-data service - -Usage: `ocis-reva storage-home-data [command options] [arguments...]` - ---debug-addr | $REVA_STORAGE_HOME_DATA_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9157`. - ---network | $REVA_STORAGE_HOME_DATA_NETWORK +--network | $REVA_STORAGE_ROOT_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---protocol | $REVA_STORAGE_HOME_DATA_PROTOCOL -: protocol for reva service, can be 'http' or 'grpc'. Default: `http`. - ---addr | $REVA_STORAGE_HOME_DATA_ADDR -: Address to bind reva service. Default: `0.0.0.0:9156`. - ---url | $REVA_STORAGE_HOME_DATA_URL -: URL to use for the reva service. Default: `localhost:9156`. - ---driver | $REVA_STORAGE_HOME_DATA_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. - ---prefix | $REVA_STORAGE_HOME_DATA_PREFIX -: prefix for the http endpoint, without leading slash. Default: `data`. - ---temp-folder | $REVA_STORAGE_HOME_DATA_TEMP_FOLDER -: temp folder. Default: `/var/tmp/`. - ---enable-home | $REVA_STORAGE_HOME_ENABLE_HOME -: enable the creation of home directories. Default: `true`. - ---gateway-url | $REVA_GATEWAY_URL -: URL to use for the reva gateway service. Default: `localhost:9142`. - ---users-url | $REVA_USERS_URL -: URL to use for the reva service. Default: `localhost:9144`. - -### ocis-reva storage-oc - -Start reva storage-oc service - -Usage: `ocis-reva storage-oc [command options] [arguments...]` - ---debug-addr | $REVA_STORAGE_OC_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9163`. - ---network | $REVA_STORAGE_OC_NETWORK -: Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. - ---protocol | $REVA_STORAGE_OC_PROTOCOL +--protocol | $REVA_STORAGE_ROOT_PROTOCOL : protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. ---addr | $REVA_STORAGE_OC_ADDR -: Address to bind reva service. Default: `0.0.0.0:9162`. +--addr | $REVA_STORAGE_ROOT_ADDR +: Address to bind reva service. Default: `0.0.0.0:9152`. ---url | $REVA_STORAGE_OC_URL -: URL to use for the reva service. Default: `localhost:9162`. +--url | $REVA_STORAGE_ROOT_URL +: URL to use for the reva service. Default: `localhost:9152`. ---driver | $REVA_STORAGE_OC_DRIVER -: storage driver, eg. local, eos, owncloud or s3. Default: `owncloud`. +--driver | $REVA_STORAGE_ROOT_DRIVER +: storage driver for root mount: eg. local, eos, owncloud, ocis or s3. Default: `local`. ---mount-path | $REVA_STORAGE_OC_MOUNT_PATH -: mount path. Default: `/oc`. +--mount-path | $REVA_STORAGE_ROOT_MOUNT_PATH +: mount path. Default: `/`. ---mount-id | $REVA_STORAGE_OC_MOUNT_ID -: mount id. Default: `1284d238-aa92-42ce-bdc4-0b0000009162`. +--mount-id | $REVA_STORAGE_ROOT_MOUNT_ID +: mount id. Default: `123e4567-e89b-12d3-a456-426655440001`. ---expose-data-server | $REVA_STORAGE_OC_EXPOSE_DATA_SERVER -: exposes a dedicated data server. Default: `false`. +--expose-data-server | $REVA_STORAGE_ROOT_EXPOSE_DATA_SERVER +: exposes a dedicated data server. ---data-server-url | $REVA_STORAGE_OC_DATA_SERVER_URL -: data server url. Default: `http://localhost:9164/data`. - ---users-url | $REVA_USERS_URL -: URL to use for the reva service. Default: `localhost:9144`. +--data-server-url | $REVA_STORAGE_ROOT_DATA_SERVER_URL +: data server url. ### ocis-reva users @@ -624,33 +627,30 @@ Usage: `ocis-reva users [command options] [arguments...]` --rest-target-api | $REVA_REST_TARGET_API : The target application. -### ocis-reva sharing +### ocis-reva reva-storage-public-link -Start reva sharing service +Start reva storage-public-link service -Usage: `ocis-reva sharing [command options] [arguments...]` +Usage: `ocis-reva reva-storage-public-link [command options] [arguments...]` ---debug-addr | $REVA_SHARING_DEBUG_ADDR -: Address to bind debug server. Default: `0.0.0.0:9151`. +--debug-addr | $REVA_STORAGE_PUBLIC_LINK_DEBUG_ADDR +: Address to bind debug server. Default: `0.0.0.0:9179`. ---network | $REVA_SHARING_NETWORK +--network | $REVA_STORAGE_PUBLIC_LINK_NETWORK : Network to use for the reva service, can be 'tcp', 'udp' or 'unix'. Default: `tcp`. ---protocol | $REVA_SHARING_PROTOCOL +--protocol | $REVA_STORAGE_PUBLIC_LINK_PROTOCOL : protocol for reva service, can be 'http' or 'grpc'. Default: `grpc`. ---addr | $REVA_SHARING_ADDR -: Address to bind reva service. Default: `0.0.0.0:9150`. +--addr | $REVA_STORAGE_PUBLIC_LINK_ADDR +: Address to bind reva service. Default: `0.0.0.0:9178`. ---url | $REVA_SHARING_URL -: URL to use for the reva service. Default: `localhost:9150`. +--url | $REVA_STORAGE_PUBLIC_LINK_URL +: Address to bind reva service. Default: `localhost:9178`. ---user-driver | $REVA_SHARING_USER_DRIVER -: driver to use for the UserShareProvider. Default: `json`. +--mount-path | $REVA_STORAGE_PUBLIC_LINK_MOUNT_PATH +: mount path. Default: `/public/`. ---user-json-file | $REVA_SHARING_USER_JSON_FILE -: file used to persist shares for the UserShareProvider. Default: `/var/tmp/reva/shares.json`. - ---public-driver | $REVA_SHARING_PUBLIC_DRIVER -: driver to use for the PublicShareProvider. Default: `json`. +--gateway-url | $REVA_GATEWAY_URL +: URL to use for the reva gateway service. Default: `localhost:9142`. diff --git a/pkg/flagset/storageeos.go b/pkg/flagset/storageeos.go index c52b71d32b..a11a18e75a 100644 --- a/pkg/flagset/storageeos.go +++ b/pkg/flagset/storageeos.go @@ -58,7 +58,7 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "driver", Value: "eos", - Usage: "storage driver, eg. local, eos, owncloud or s3", + Usage: "storage driver for eos mount: eg. local, eos, owncloud, ocis or s3", EnvVars: []string{"REVA_STORAGE_EOS_DRIVER"}, Destination: &cfg.Reva.StorageEOS.Driver, }, diff --git a/pkg/flagset/storageeosdata.go b/pkg/flagset/storageeosdata.go index 227a078471..1ba2a46a43 100644 --- a/pkg/flagset/storageeosdata.go +++ b/pkg/flagset/storageeosdata.go @@ -59,7 +59,7 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "driver", Value: "eos", - Usage: "storage driver, eg. local, eos, owncloud or s3", + Usage: "storage driver for eos data mount: eg. local, eos, owncloud, ocis or s3", EnvVars: []string{"REVA_STORAGE_EOS_DATA_DRIVER"}, Destination: &cfg.Reva.StorageEOSData.Driver, }, diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index 467417f34b..49fd4bed08 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -60,7 +60,7 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "driver", Value: "owncloud", - Usage: "storage driver, eg. local, eos, owncloud or s3", + Usage: "storage driver for home mount: eg. local, eos, owncloud, ocis or s3", EnvVars: []string{"REVA_STORAGE_HOME_DRIVER"}, Destination: &cfg.Reva.StorageHome.Driver, }, diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 4dc9ccf04a..d6672bef20 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -59,7 +59,7 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "driver", Value: "owncloud", - Usage: "storage driver, eg. local, eos, owncloud or s3", + Usage: "storage driver for home data mount: eg. local, eos, owncloud, ocis or s3", EnvVars: []string{"REVA_STORAGE_HOME_DATA_DRIVER"}, Destination: &cfg.Reva.StorageHomeData.Driver, }, diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 0b6d7f8b9e..718970a223 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -60,7 +60,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "driver", Value: "owncloud", - Usage: "storage driver, eg. local, eos, owncloud or s3", + Usage: "storage driver for oc mount: eg. local, eos, owncloud, ocis or s3", EnvVars: []string{"REVA_STORAGE_OC_DRIVER"}, Destination: &cfg.Reva.StorageOC.Driver, }, diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index f984623a7d..ebf3ae02bf 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -59,7 +59,7 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "driver", Value: "owncloud", - Usage: "storage driver, eg. local, eos, owncloud or s3", + Usage: "storage driver for oc data mount: eg. local, eos, owncloud, ocis or s3", EnvVars: []string{"REVA_STORAGE_OC_DATA_DRIVER"}, Destination: &cfg.Reva.StorageOCData.Driver, }, diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index b02602f2f9..55cda67bd4 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -60,7 +60,7 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "driver", Value: "local", - Usage: "storage driver, eg. local, eos, owncloud or s3", + Usage: "storage driver for root mount: eg. local, eos, owncloud, ocis or s3", EnvVars: []string{"REVA_STORAGE_ROOT_DRIVER"}, Destination: &cfg.Reva.StorageRoot.Driver, }, From aa41066f93f8bc03aa3f4e5d494d4912177c20b1 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 10 Sep 2020 10:07:40 +0200 Subject: [PATCH 294/346] Update core commit --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 6fec0eeea0..0a90c42db5 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '1f5506549cbebdc910b6d24681278e9a210f6d82', + 'coreCommit': 'dd8d46129616602f02a0740bb5cf83bd6b28aa19', 'numberOfParts': 2 } } From 40f24f296cdb30ada05771df44f71e1590535ca8 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 10 Sep 2020 10:25:07 +0200 Subject: [PATCH 295/346] Remove expected failure for download on received share --- tests/acceptance/expected-failures-on-OC-storage.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index 56b9be3e56..3ca62aa25a 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -186,7 +186,6 @@ apiShareManagement/acceptShares.feature:696 # # https://github.com/owncloud/product/issues/208 After accepting a share data in the received file cannot be downloaded apiShareManagement/acceptSharesToSharesFolder.feature:15 -apiShareManagement/acceptSharesToSharesFolder.feature:22 # # https://github.com/owncloud/product/issues/207 Response is empty when accepting a share apiShareManagement/acceptSharesToSharesFolder.feature:30 From 3c82ffc32fb973d7ca4b406eda8b4990fca0bece Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 10 Sep 2020 09:08:17 +0000 Subject: [PATCH 296/346] Automated changelog update [skip ci] --- CHANGELOG.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 712c9817b3..e0bd82945d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,31 @@ The following sections list the changes in ocis-reva unreleased. ## Summary +* Bugfix - Fix default configuration for accessing shares: [#205](https://github.com/owncloud/product/issues/205) +* Enhancement - Allow configuring arbitrary storage registry rules: [#193](https://github.com/owncloud/product/issues/193) * Enhancement - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea: [#454](https://github.com/owncloud/ocis-reva/pull/454) ## Details +* Bugfix - Fix default configuration for accessing shares: [#205](https://github.com/owncloud/product/issues/205) + + The storage provider mounted at `/home` should always have EnableHome set to `true`. The other + storage providers should have it set to `false`. + + https://github.com/owncloud/product/issues/205 + https://github.com/owncloud/ocis-reva/pull/461 + + +* Enhancement - Allow configuring arbitrary storage registry rules: [#193](https://github.com/owncloud/product/issues/193) + + We added a new config flag `storage-registry-rule` that can be given multiple times for the + gateway to specify arbitrary storage registry rules. You can also use a comma separated list of + rules in the `REVA_STORAGE_REGISTRY_RULES` environment variable. + + https://github.com/owncloud/product/issues/193 + https://github.com/owncloud/ocis-reva/pull/461 + + * Enhancement - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea: [#454](https://github.com/owncloud/ocis-reva/pull/454) - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea - Do not swallow 'not found' errors in From eed339bc92134953b857dfeb5808f746182b9e98 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 10 Sep 2020 17:39:46 +0545 Subject: [PATCH 297/346] Bump core commit --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 0a90c42db5..143fa1bbb3 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': 'dd8d46129616602f02a0740bb5cf83bd6b28aa19', + 'coreCommit': '65ee49ae5dad3af84aa781b98e805fe463baf9fe', 'numberOfParts': 2 } } From 083f677811def56732657cc55b708f08e1847ba7 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 10 Sep 2020 19:10:21 +0545 Subject: [PATCH 298/346] Add new sharing test scenarios that fail to expected-failures --- .../expected-failures-on-OC-storage.txt | 86 ++++++++++++++++--- 1 file changed, 74 insertions(+), 12 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index 3ca62aa25a..2b0f1d75d4 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -192,21 +192,83 @@ apiShareManagement/acceptSharesToSharesFolder.feature:30 apiShareManagement/acceptSharesToSharesFolder.feature:52 # # https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist -apiShareManagementBasic/createShare.feature:169 -apiShareManagementBasic/createShare.feature:170 -apiShareManagementBasic/createShare.feature:194 -apiShareManagementBasic/createShare.feature:195 -apiShareManagementBasic/createShare.feature:417 -apiShareManagementBasic/createShare.feature:418 -# # https://github.com/owncloud/ocis-reva/issues/243 Sharing seems to work but does not work # https://github.com/owncloud/ocis-reva/issues/372 Listing shares via ocs API does not show path for parent folders -apiShareManagementBasic/createShare.feature:269 -apiShareManagementBasic/createShare.feature:270 -# # https://github.com/owncloud/ocis-reva/issues/356 Fields missing in delete share OCS response -apiShareManagementBasic/deleteShare.feature:36 -apiShareManagementBasic/deleteShare.feature:37 +# https://github.com/owncloud/product/issues/203 file_target in share response +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:36 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:37 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:66 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:67 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:91 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:92 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:94 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:95 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:97 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:98 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:100 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:101 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:115 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:116 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:130 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:131 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:155 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:156 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:179 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:180 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:204 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:205 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:234 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:235 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:254 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:255 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:284 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:285 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:299 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:300 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:316 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:317 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:332 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:333 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:350 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:351 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:355 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:380 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:445 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:446 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:481 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:482 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:485 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:513 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:531 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:549 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:28 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:29 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:43 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:44 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:46 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:58 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:72 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:89 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:107 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:118 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:130 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:163 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:164 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:165 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:166 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:181 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:182 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:183 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:184 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:42 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:43 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:69 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:70 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:97 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:98 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:135 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:136 # # https://github.com/owncloud/ocis-reva/issues/260 Sharee retrieves the information about a share -but gets response containing all the shares apiShareOperations/accessToShare.feature:48 From fccaf94e2030b4c3802174702aaf7bf1f5919e62 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 11 Sep 2020 15:15:43 +0545 Subject: [PATCH 299/346] Cleanup old entries from expected-failures-on-OC-storage --- tests/acceptance/expected-failures-on-OC-storage.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index 2b0f1d75d4..03c43582d4 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -3,11 +3,6 @@ # # test scenarios that specifically fail with OC storage (that were tagged skipOnOcis-OC-Storage in core) # -apiShareManagementBasic/createShare.feature:336 -apiShareManagementBasic/createShare.feature:357 -apiShareManagementBasic/createShare.feature:478 -apiShareManagementBasic/createShare.feature:493 -apiShareManagementBasic/createShare.feature:508 apiShareOperations/gettingShares.feature:155 apiShareOperations/gettingShares.feature:156 apiSharePublicLink2/multilinkSharing.feature:181 From 4cd95c28ed5330bc07e124d4f9b5a39905419558 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 10 Sep 2020 10:36:48 +0200 Subject: [PATCH 300/346] Use reva ocis-driver branch --- go.mod | 3 +++ go.sum | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/go.mod b/go.mod index 19a72db54c..ed924a3079 100644 --- a/go.mod +++ b/go.mod @@ -18,3 +18,6 @@ require ( github.com/spf13/viper v1.6.1 gopkg.in/ini.v1 v1.51.1 // indirect ) + +// ocis-driver branch +replace github.com/cs3org/reva => github.com/butonic/reva v0.0.0-20200908144404-c3dd7a3924c0 diff --git a/go.sum b/go.sum index 1794ffb0e2..e1a579f44c 100644 --- a/go.sum +++ b/go.sum @@ -95,16 +95,22 @@ github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.34.2 h1:9vCknCdTAmmV4ht7lPuda7aJXzllXwEQyCMZKJHjBrM= github.com/aws/aws-sdk-go v1.34.2/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.34.12 h1:7UbBEYDUa4uW0YmRnOd806MS1yoJMcaodBWDzvBShAI= +github.com/aws/aws-sdk-go v1.34.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40 h1:y4B3+GPxKlrigF1ha5FFErxK+sr6sWxQovRMzwMhejo= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= +github.com/butonic/reva v0.0.0-20200908144404-c3dd7a3924c0 h1:l+HyZLzjXWKf4YV/8W87tGQwJYWIVPbvAXCOMKxnH3A= +github.com/butonic/reva v0.0.0-20200908144404-c3dd7a3924c0/go.mod h1:2nFeb46NQSd8MliTlPTc+ycYnPwmRFNqB7DXn++TYiY= github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.2/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= @@ -113,8 +119,10 @@ github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QH github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM= +github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= @@ -154,6 +162,7 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMElOWxok= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= @@ -162,6 +171,7 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/cs3org/cato v0.0.0-20200626150132-28a40e643719/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd h1:uMaudkC7znaiIKT9rxIhoRYzrhTg1Nc78X7XEqhmjSk= github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/go-cs3apis v0.0.0-20200810113633-b00aca449666 h1:E7VsSSN/2YZLSwrDMJJdAWU11lP7W1qkcXbrslb0PM0= github.com/cs3org/go-cs3apis v0.0.0-20200810113633-b00aca449666/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v1.1.1-0.20200819100654-dcbf0c8ea187 h1:ZyDXH+zy5KPOH5AM5CMHP2j9dhV6bM3JQmqTfO8fxJ8= github.com/cs3org/reva v1.1.1-0.20200819100654-dcbf0c8ea187/go.mod h1:gkGtoun9QABW8k7jzAWWxB9jO64DJ1lreSzTucci/ok= @@ -170,6 +180,7 @@ github.com/cs3org/reva v1.2.1-0.20200826162318-c0f54e1f37ea/go.mod h1:FvYB+UPpuP github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= +github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= @@ -201,6 +212,7 @@ github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/forestgiant/sliceutil v0.0.0-20160425183142-94783f95db6c/go.mod h1:pFdJbAhRf7rh6YYMUdIQGyzne6zYL1tCUW8QV2B3UfY= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsouza/go-dockerclient v1.4.4/go.mod h1:PrwszSL5fbmsESocROrOGq/NULMXRw+bajY0ltzD6MA= github.com/fsouza/go-dockerclient v1.6.0/go.mod h1:YWwtNPuL4XTX1SKJQk86cWPmmqwx+4np9qfPbb+znGc= @@ -211,6 +223,7 @@ github.com/go-acme/lego/v3 v3.3.0/go.mod h1:iGSY2vQrvQs3WezicSB/oVbO2eCrD88dpWPw github.com/go-asn1-ber/asn1-ber v1.5.1 h1:pDbRAunXzIUXfx4CB2QJFv5IuPiuoW+sWvr/Us009o8= github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= +github.com/go-chi/chi v4.0.2+incompatible h1:maB6vn6FqCxrpz4FqWdh4+lwpyZIQS7YEAUcHlgXVRs= github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-cmd/cmd v1.0.5/go.mod h1:y8q8qlK5wQibcw63djSl/ntiHUHXHGdCkPk0j4QeW4s= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= @@ -222,6 +235,7 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-ldap/ldap/v3 v3.2.3 h1:FBt+5w3q/vPVPb4eYMQSn+pOiz4zewPamYhlGMmc7yM= github.com/go-ldap/ldap/v3 v3.2.3/go.mod h1:iYS1MdmrmceOJ1QOTnRXrIs7i3kloqtmGQjRvjKpyMg= +github.com/go-log/log v0.1.0 h1:wudGTNsiGzrD5ZjgIkVZ517ugi2XRe9Q/xRCzwEO4/U= github.com/go-log/log v0.1.0/go.mod h1:4mBwpdRMFLiuXZDCwU2lKQFsoSCo72j3HqBK9d81N2M= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= @@ -469,6 +483,8 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gophercloud/gophercloud v0.3.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= @@ -500,7 +516,9 @@ github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FK github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.3 h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= @@ -538,6 +556,7 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/justinas/alice v1.2.0 h1:+MHSA/vccVCF4Uq37S42jwlkvI2Xzl7zTPCN5BnZNVo= github.com/justinas/alice v1.2.0/go.mod h1:fN5HRH/reO/zrUflLfTN43t3vXvKzvZIENsNEe7i7qA= github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/karrick/godirwalk v1.7.7/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= @@ -573,6 +592,7 @@ github.com/lucas-clemente/quic-go v0.13.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgV github.com/lucas-clemente/quic-go v0.14.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= github.com/luna-duclos/instrumentedsql v1.1.2/go.mod h1:4LGbEqDnopzNAiyxPPDXhLspyunZxgPTMJBKtC6U0BQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/markbates/deplist v1.0.4/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM= github.com/markbates/deplist v1.0.5/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM= @@ -613,6 +633,7 @@ github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4f github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/mattn/goveralls v0.0.5 h1:spfq8AyZ0cCk57Za6/juJ5btQxeE1FaEGMdfcI+XO48= github.com/mattn/goveralls v0.0.5/go.mod h1:Xg2LHi51faXLyKXwsndxiW6uxEEQT9+3sjGzzwU4xy0= +github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mholt/certmagic v0.7.5/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= github.com/mholt/certmagic v0.8.3/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= @@ -654,6 +675,7 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q= github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= @@ -680,6 +702,7 @@ github.com/nrdcg/auroradns v1.0.0/go.mod h1:6JPXKzIRzZzMqtTDgueIhTi6rFf1QvYE/Hzq github.com/nrdcg/dnspod-go v0.3.0/go.mod h1:vZSoFSFeQVm2gWLMkyX61LZ8HI3BaqtHZWgPTGKr6KQ= github.com/nrdcg/goinwx v0.6.1/go.mod h1:XPiut7enlbEdntAqalBIqcYcTEVhpv/dKWgDCX2SwKQ= github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw= +github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/oleiade/reflections v1.0.0/go.mod h1:RbATFBbKYkVdqmSFtx13Bb/tVhR0lgOBXunWTZKeL4w= @@ -707,6 +730,7 @@ github.com/ory/fosite v0.32.2/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20 github.com/ory/go-acc v0.0.0-20181118080137-ddc355013f90/go.mod h1:sxnvPCxChFuSmTJGj8FdMupeq1BezCiEpDjTUXQ4hf4= github.com/ory/go-acc v0.2.1 h1:Pwcmwd/cSnwJsYN76+w3HU7oXeWFTkwj/KUj1qGDrVw= github.com/ory/go-acc v0.2.1/go.mod h1:0omgy2aa3nDBJ45VAKeLHH8ccPBudxLeic4xiDRtug0= +github.com/ory/go-convenience v0.1.0 h1:zouLKfF2GoSGnJwGq+PE/nJAE6dj2Zj5QlTgmMTsTS8= github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= github.com/ory/gojsonreference v0.0.0-20190720135523-6b606c2d8ee8/go.mod h1:wsH1C4nIeeQClDtD5AH7kF1uTS6zWyqfjVDTmB0Em7A= github.com/ory/gojsonschema v1.1.1-0.20190919112458-f254ca73d5e9/go.mod h1:BNZpdJgB74KOLSsWFvzw6roXg1I6O51WO8roMmW+T7Y= @@ -721,10 +745,12 @@ github.com/owncloud/ocis-pkg/v2 v2.2.1 h1:LK7WxHYugEFQ9NHTOz0EP8DRjbt51wXhyqruV0 github.com/owncloud/ocis-pkg/v2 v2.2.1/go.mod h1:MXv7QzsYsu4YWuyJxhq1kLLmJa/r5gbqHe1FXulMHaw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= +github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= +github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4= github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -733,8 +759,10 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/term v0.0.0-20200520122047-c3ffed290a03/go.mod h1:Z9+Ul5bCbBKnbCvdOWbLqTHhJiYV414CURZJba6L8qA= +github.com/pkg/xattr v0.4.1 h1:dhclzL6EqOXNaPDWqoeb9tIxATfBSmjqL0b4DpSjwRw= github.com/pkg/xattr v0.4.1/go.mod h1:W2cGD0TBEus7MkUgv0tNZ9JutLtVO3cXu+IBRuHqnFs= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 h1:J9b7z+QKAmPf4YLrFg6oQUotqHQeUNWwkvo7jZp1GLU= github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= @@ -780,13 +808,16 @@ github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= github.com/rs/zerolog v1.19.0 h1:hYz4ZVdUgjXTBUmrkrw55j1nHx68LfOKIQk5IYtyScg= github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo= github.com/rubenv/sql-migrate v0.0.0-20190212093014-1007f53448d7/go.mod h1:WS0rl9eEliYI8DPnr3TOwz4439pay+qNgzJoVya/DmY= +github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sacloud/libsacloud v1.26.1/go.mod h1:79ZwATmHLIFZIMd7sxA3LwzVy/B77uj3LDoToVTxDoQ= github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4= @@ -804,6 +835,7 @@ github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1: github.com/shurcooL/highlight_go v0.0.0-20170515013102-78fb10f4a5f8/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= github.com/shurcooL/octicon v0.0.0-20180602230221-c42b0e3b24d9/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.1.0/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A= @@ -811,6 +843,7 @@ github.com/sirupsen/logrus v1.1.1/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8 github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -823,6 +856,7 @@ github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= @@ -830,6 +864,7 @@ github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -838,6 +873,7 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI= github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.6.1 h1:VPZzIkznI1YhVMRi6vNFLHSwhnhReBfgTxIPccpfdZk= github.com/spf13/viper v1.6.1/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -849,8 +885,10 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/studio-b12/gowebdav v0.0.0-20200303150724-9380631c29a1 h1:TPyHV/OgChqNcnYqCoCvIFjR9TU60gFXXBKnhOBzVEI= github.com/studio-b12/gowebdav v0.0.0-20200303150724-9380631c29a1/go.mod h1:gCcfDlA1Y7GqOaeEKw5l9dOGx1VLdc/HuQSlQAaZ30s= github.com/subosito/gotenv v1.1.1/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= @@ -862,6 +900,7 @@ github.com/tidwall/sjson v1.0.4/go.mod h1:bURseu1nuBkFpIES5cz6zBtjmYeOQmEESshn7V github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4o2HM0m3DZYQWsj6/MEowD57VzoH0v3d7igeFY= github.com/tus/tusd v1.1.0/go.mod h1:3DWPOdeCnjBwKtv98y5dSws3itPqfce5TVa0s59LRiA= @@ -1111,6 +1150,7 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1249,6 +1289,7 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1 h1:SfXqXS5hkufcdZ/mHtYCh53P2b+92WQq/DZcKLgsFRs= google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1259,6 +1300,7 @@ google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyz google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= gopkg.in/Acconut/lockfile.v1 v1.1.0/go.mod h1:6UCz3wJ8tSFUsPR6uP/j8uegEtDuEEqFxlpi0JI4Umw= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= +gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From d43860b1847728ab56bc20e70b3822d95a9eb4d7 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 16:12:17 +0545 Subject: [PATCH 301/346] run API tests also on ocis storage --- .drone.star | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.drone.star b/.drone.star index 143fa1bbb3..ae3e1f0a67 100644 --- a/.drone.star +++ b/.drone.star @@ -35,7 +35,8 @@ def testPipelines(ctx): ] for runPart in range(1, config['apiTests']['numberOfParts'] + 1): - pipelines.append(coreApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], runPart, config['apiTests']['numberOfParts'])) + pipelines.append(coreApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], runPart, config['apiTests']['numberOfParts'], 'oc')) + pipelines.append(coreApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], runPart, config['apiTests']['numberOfParts'], 'ocis')) return pipelines @@ -95,21 +96,21 @@ def localApiTestsOcStorage(ctx, coreBranch = 'master', coreCommit = ''): }, } -def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, number_of_parts = 1): +def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, number_of_parts = 1, storage = 'oc'): return { 'kind': 'pipeline', 'type': 'docker', - 'name': 'Core-API-Tests-%s' % (part_number), + 'name': 'Core-API-Tests-%s-%s' % (storage, part_number), 'platform': { 'os': 'linux', 'arch': 'amd64', }, 'steps': build() + - revaServer() + + revaServer(storage) + cloneCoreRepos(coreBranch, coreCommit) + [ { - 'name': 'oC10ApiTests-%s' % (part_number), + 'name': 'oC10ApiTests-%s-%s' % (storage, part_number), 'image': 'owncloudci/php:7.2', 'pull': 'always', 'environment' : { @@ -122,7 +123,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~comments-app-required&&~@federation-app-required&&~@notifications-app-required&&~systemtags-app-required&&~@provisioning_api-app-required&&~@preview-extension-required&&~@local_storage', 'DIVIDE_INTO_NUM_PARTS': number_of_parts, 'RUN_PART': part_number, - 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures-on-OC-storage.txt' + 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures-on-%s-storage.txt' % (storage.capitalize()) }, 'commands': [ 'cd /srv/app/testrunner', @@ -945,7 +946,7 @@ def build(): } ] -def revaServer(): +def revaServer(storage): return [ { 'name': 'reva-server', @@ -959,6 +960,10 @@ def revaServer(): 'REVA_LDAP_BIND_PASSWORD': 'admin', 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', 'REVA_LDAP_SCHEMA_UID': 'uid', + 'REVA_STORAGE_HOME_DRIVER': '%s' % (storage), + 'REVA_STORAGE_HOME_DATA_DRIVER': '%s' % (storage), + 'REVA_STORAGE_OC_DRIVER': '%s' % (storage), + 'REVA_STORAGE_OC_DATA_DRIVER': '%s' % (storage), 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', From 808701c9d7c511ff5fbf4d4543d3b384c9afb157 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 16:16:30 +0545 Subject: [PATCH 302/346] expected failures on ocis-storage file --- .../expected-failures-on-OCIS-storage.txt | 1003 +++++++++++++++++ 1 file changed, 1003 insertions(+) create mode 100644 tests/acceptance/expected-failures-on-OCIS-storage.txt diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt new file mode 100644 index 0000000000..3ca62aa25a --- /dev/null +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -0,0 +1,1003 @@ +# this file contains the scenarios from ownCloud10 core API tests that are currently expected to fail +# when run with OC storage +# +# test scenarios that specifically fail with OC storage (that were tagged skipOnOcis-OC-Storage in core) +# +apiShareManagementBasic/createShare.feature:336 +apiShareManagementBasic/createShare.feature:357 +apiShareManagementBasic/createShare.feature:478 +apiShareManagementBasic/createShare.feature:493 +apiShareManagementBasic/createShare.feature:508 +apiShareOperations/gettingShares.feature:155 +apiShareOperations/gettingShares.feature:156 +apiSharePublicLink2/multilinkSharing.feature:181 +apiWebdavProperties1/setFileProperties.feature:32 +apiWebdavProperties1/setFileProperties.feature:33 +# +# https://github.com/owncloud/ocis-reva/issues/196 Checksum feature +apiMain/checksums.feature:24 +apiMain/checksums.feature:25 +apiMain/checksums.feature:35 +apiMain/checksums.feature:36 +apiMain/checksums.feature:46 +apiMain/checksums.feature:47 +apiMain/checksums.feature:50 +apiMain/checksums.feature:58 +apiMain/checksums.feature:67 +apiMain/checksums.feature:99 +apiMain/checksums.feature:100 +apiMain/checksums.feature:103 +apiMain/checksums.feature:110 +apiMain/checksums.feature:119 +apiMain/checksums.feature:129 +apiMain/checksums.feature:138 +apiMain/checksums.feature:147 +apiMain/checksums.feature:158 +apiMain/checksums.feature:174 +apiMain/checksums.feature:192 +apiMain/checksums.feature:217 +apiMain/checksums.feature:218 +apiMain/checksums.feature:239 +apiMain/checksums.feature:240 +apiMain/checksums.feature:258 +apiMain/checksums.feature:279 +apiMain/checksums.feature:280 +apiMain/checksums.feature:295 +apiMain/checksums.feature:296 +apiMain/checksums.feature:308 +apiMain/checksums.feature:309 +apiMain/checksums.feature:312 +apiMain/checksums.feature:324 +# +# https://github.com/owncloud/ocis-reva/issues/100 no robots.txt available +apiMain/main.feature:5 +# +# https://github.com/owncloud/ocis-reva/issues/101 quota query +apiMain/quota.feature:9 +apiMain/quota.feature:16 +apiMain/quota.feature:23 +apiMain/quota.feature:30 +apiMain/quota.feature:41 +apiMain/quota.feature:54 +apiMain/quota.feature:68 +apiMain/quota.feature:82 +apiMain/quota.feature:99 +apiMain/quota.feature:112 +# +# https://github.com/owncloud/ocis-reva/issues/65 There is no such thing like a "super-user" +# https://github.com/owncloud/ocis-reva/issues/97 no command equivalent to occ +apiMain/status.feature:5 +# +# https://github.com/owncloud/ocis-reva/issues/29 ocs config endpoint only accessible by authorized users +# https://github.com/owncloud/ocis-reva/issues/30 HTTP 401 Unauthorized responses don't contain a body +apiAuthOcs/ocsDELETEAuth.feature:9 +apiAuthOcs/ocsGETAuth.feature:10 +apiAuthOcs/ocsGETAuth.feature:33 +apiAuthOcs/ocsGETAuth.feature:53 +apiAuthOcs/ocsGETAuth.feature:88 +apiAuthOcs/ocsGETAuth.feature:121 +apiAuthOcs/ocsGETAuth.feature:139 +apiAuthOcs/ocsPOSTAuth.feature:10 +apiAuthOcs/ocsPUTAuth.feature:10 +# +# https://github.com/owncloud/ocis-reva/issues/13 server returns 500 when trying to access a not existing file +apiAuthWebDav/webDavDELETEAuth.feature:36 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API +apiAuthWebDav/webDavLOCKAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API +apiAuthWebDav/webDavMKCOLAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiAuthWebDav/webDavMOVEAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/179 send POST requests to another user's webDav endpoints as normal user +apiAuthWebDav/webDavPOSTAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API +apiAuthWebDav/webDavPROPFINDAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API +apiAuthWebDav/webDavPROPPATCHAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API +apiAuthWebDav/webDavPUTAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/175 Default capabilities for normal user not same as in oC-core +# https://github.com/owncloud/ocis-reva/issues/176 Difference in response content of status.php and default capabilities +apiCapabilities/capabilitiesWithNormalUser.feature:11 +# +# https://github.com/owncloud/ocis-reva/issues/39 REPORT request not implemented +apiFavorites/favorites.feature:228 +apiFavorites/favorites.feature:229 +# +# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist +apiSharees/sharees.feature:32 +apiSharees/sharees.feature:33 +apiSharees/sharees.feature:53 +apiSharees/sharees.feature:54 +apiSharees/sharees.feature:74 +apiSharees/sharees.feature:75 +apiSharees/sharees.feature:98 +apiSharees/sharees.feature:99 +apiSharees/sharees.feature:118 +apiSharees/sharees.feature:119 +apiSharees/sharees.feature:137 +apiSharees/sharees.feature:138 +apiSharees/sharees.feature:157 +apiSharees/sharees.feature:158 +apiSharees/sharees.feature:177 +apiSharees/sharees.feature:178 +apiSharees/sharees.feature:198 +apiSharees/sharees.feature:199 +apiSharees/sharees.feature:217 +apiSharees/sharees.feature:218 +apiSharees/sharees.feature:237 +apiSharees/sharees.feature:238 +apiSharees/sharees.feature:257 +apiSharees/sharees.feature:258 +apiSharees/sharees.feature:277 +apiSharees/sharees.feature:278 +apiSharees/sharees.feature:297 +apiSharees/sharees.feature:298 +apiSharees/sharees.feature:317 +apiSharees/sharees.feature:318 +apiSharees/sharees.feature:336 +apiSharees/sharees.feature:337 +apiSharees/sharees.feature:355 +apiSharees/sharees.feature:356 +apiSharees/sharees.feature:374 +apiSharees/sharees.feature:375 +apiSharees/sharees.feature:393 +apiSharees/sharees.feature:394 +apiSharees/sharees.feature:412 +apiSharees/sharees.feature:413 +apiSharees/sharees.feature:430 +apiSharees/sharees.feature:431 +apiSharees/sharees.feature:450 +apiSharees/sharees.feature:451 +apiSharees/sharees.feature:475 +apiSharees/sharees.feature:476 +apiSharees/sharees.feature:495 +apiSharees/sharees.feature:496 +apiSharees/sharees.feature:515 +apiSharees/sharees.feature:516 +apiSharees/sharees.feature:537 +apiSharees/sharees.feature:538 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set (shareapi_auto_accept_share) +apiShareManagement/acceptShares.feature:333 +apiShareManagement/acceptShares.feature:415 +apiShareManagement/acceptShares.feature:416 +apiShareManagement/acceptShares.feature:417 +apiShareManagement/acceptShares.feature:418 +apiShareManagement/acceptShares.feature:419 +apiShareManagement/acceptShares.feature:421 +apiShareManagement/acceptShares.feature:436 +apiShareManagement/acceptShares.feature:458 +apiShareManagement/acceptShares.feature:477 +apiShareManagement/acceptShares.feature:511 +apiShareManagement/acceptShares.feature:542 +apiShareManagement/acceptShares.feature:561 +apiShareManagement/acceptShares.feature:582 +apiShareManagement/acceptShares.feature:652 +apiShareManagement/acceptShares.feature:696 +# +# https://github.com/owncloud/product/issues/208 After accepting a share data in the received file cannot be downloaded +apiShareManagement/acceptSharesToSharesFolder.feature:15 +# +# https://github.com/owncloud/product/issues/207 Response is empty when accepting a share +apiShareManagement/acceptSharesToSharesFolder.feature:30 +apiShareManagement/acceptSharesToSharesFolder.feature:52 +# +# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist +apiShareManagementBasic/createShare.feature:169 +apiShareManagementBasic/createShare.feature:170 +apiShareManagementBasic/createShare.feature:194 +apiShareManagementBasic/createShare.feature:195 +apiShareManagementBasic/createShare.feature:417 +apiShareManagementBasic/createShare.feature:418 +# +# https://github.com/owncloud/ocis-reva/issues/243 Sharing seems to work but does not work +# https://github.com/owncloud/ocis-reva/issues/372 Listing shares via ocs API does not show path for parent folders +apiShareManagementBasic/createShare.feature:269 +apiShareManagementBasic/createShare.feature:270 +# +# https://github.com/owncloud/ocis-reva/issues/356 Fields missing in delete share OCS response +apiShareManagementBasic/deleteShare.feature:36 +apiShareManagementBasic/deleteShare.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/260 Sharee retrieves the information about a share -but gets response containing all the shares +apiShareOperations/accessToShare.feature:48 +apiShareOperations/accessToShare.feature:49 +# +# https://github.com/owncloud/ocis-reva/issues/262 Shares are not deleted when user is deleted +apiShareOperations/gettingShares.feature:21 +apiShareOperations/gettingShares.feature:22 +# +# https://github.com/owncloud/ocis-reva/issues/65 There is no such thing like a "super-user" +apiShareOperations/gettingShares.feature:34 +apiShareOperations/gettingShares.feature:35 +# +# https://github.com/owncloud/ocis-reva/issues/357 Delete shares from user when user is deleted +# https://github.com/owncloud/ocis-reva/issues/301 no displayname_owner shown when creating a share +# https://github.com/owncloud/ocis-reva/issues/302 when sharing a file mime-type field is set to application/octet-stream +apiShareOperations/gettingShares.feature:124 +apiShareOperations/gettingShares.feature:125 +# +# https://github.com/owncloud/ocis-reva/issues/374 OCS error message for attempting to access share via share id as an unauthorized user is not informative +apiShareOperations/gettingShares.feature:168 +apiShareOperations/gettingShares.feature:169 +# +# https://github.com/owncloud/ocis-reva/issues/372 Listing shares via ocs API does not show path for parent folders +apiShareOperations/gettingShares.feature:204 +apiShareOperations/gettingShares.feature:205 +# +# https://github.com/owncloud/ocis-reva/issues/47 cannot get ocs:share-permissions via WebDAV +apiShareOperations/getWebDAVSharePermissions.feature:21 +apiShareOperations/getWebDAVSharePermissions.feature:22 +apiShareOperations/getWebDAVSharePermissions.feature:134 +apiShareOperations/getWebDAVSharePermissions.feature:135 +# +# https://github.com/owncloud/ocis-reva/issues/282 Split old public API webdav tests from new public webdav tests +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink1/accessToPublicLinkShare.feature:10 +apiSharePublicLink1/accessToPublicLinkShare.feature:20 +apiSharePublicLink1/accessToPublicLinkShare.feature:30 +apiSharePublicLink1/accessToPublicLinkShare.feature:43 +apiSharePublicLink1/changingPublicLinkShare.feature:22 +apiSharePublicLink1/changingPublicLinkShare.feature:23 +apiSharePublicLink1/changingPublicLinkShare.feature:37 +apiSharePublicLink1/changingPublicLinkShare.feature:41 +apiSharePublicLink1/changingPublicLinkShare.feature:52 +apiSharePublicLink1/changingPublicLinkShare.feature:63 +apiSharePublicLink1/changingPublicLinkShare.feature:85 +apiSharePublicLink1/changingPublicLinkShare.feature:96 +apiSharePublicLink1/changingPublicLinkShare.feature:107 +apiSharePublicLink1/changingPublicLinkShare.feature:151 +apiSharePublicLink1/changingPublicLinkShare.feature:197 +apiSharePublicLink1/changingPublicLinkShare.feature:244 +apiSharePublicLink1/changingPublicLinkShare.feature:267 +apiSharePublicLink1/changingPublicLinkShare.feature:278 +apiSharePublicLink1/changingPublicLinkShare.feature:289 +apiSharePublicLink1/changingPublicLinkShare.feature:300 +apiSharePublicLink1/createPublicLinkShare.feature:34 +apiSharePublicLink1/createPublicLinkShare.feature:35 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file +apiSharePublicLink1/createPublicLinkShare.feature:63 +apiSharePublicLink1/createPublicLinkShare.feature:64 +# +apiSharePublicLink1/createPublicLinkShare.feature:95 +apiSharePublicLink1/createPublicLinkShare.feature:96 +# +# https://github.com/owncloud/ocis-reva/issues/199 Ability to return error messages in Webdav response bodies +apiSharePublicLink1/createPublicLinkShare.feature:127 +apiSharePublicLink1/createPublicLinkShare.feature:128 +# +apiSharePublicLink1/createPublicLinkShare.feature:155 +apiSharePublicLink1/createPublicLinkShare.feature:156 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink1/createPublicLinkShare.feature:183 +apiSharePublicLink1/createPublicLinkShare.feature:184 +# +apiSharePublicLink1/createPublicLinkShare.feature:214 +apiSharePublicLink1/createPublicLinkShare.feature:215 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file +apiSharePublicLink1/createPublicLinkShare.feature:245 +apiSharePublicLink1/createPublicLinkShare.feature:246 +# +apiSharePublicLink1/createPublicLinkShare.feature:276 +apiSharePublicLink1/createPublicLinkShare.feature:277 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink1/createPublicLinkShare.feature:307 +apiSharePublicLink1/createPublicLinkShare.feature:308 +# +apiSharePublicLink1/createPublicLinkShare.feature:370 +apiSharePublicLink1/createPublicLinkShare.feature:371 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:389 +apiSharePublicLink1/createPublicLinkShare.feature:390 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:411 +apiSharePublicLink1/createPublicLinkShare.feature:413 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:435 +apiSharePublicLink1/createPublicLinkShare.feature:437 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:461 +apiSharePublicLink1/createPublicLinkShare.feature:463 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:487 +apiSharePublicLink1/createPublicLinkShare.feature:489 +apiSharePublicLink1/createPublicLinkShare.feature:491 +apiSharePublicLink1/createPublicLinkShare.feature:493 +apiSharePublicLink1/createPublicLinkShare.feature:495 +apiSharePublicLink1/createPublicLinkShare.feature:497 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:518 +apiSharePublicLink1/createPublicLinkShare.feature:519 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:534 +apiSharePublicLink1/createPublicLinkShare.feature:535 +# +apiSharePublicLink1/createPublicLinkShare.feature:553 +apiSharePublicLink1/createPublicLinkShare.feature:554 +# +apiSharePublicLink1/createPublicLinkShare.feature:590 +apiSharePublicLink1/createPublicLinkShare.feature:591 +# +# https://github.com/owncloud/ocis-reva/issues/283 Prevent creating public share for the home root folder +apiSharePublicLink1/createPublicLinkShare.feature:620 +apiSharePublicLink1/createPublicLinkShare.feature:621 +# +apiSharePublicLink1/createPublicLinkShare.feature:634 +apiSharePublicLink1/createPublicLinkShare.feature:635 +# +apiSharePublicLink1/createPublicLinkShare.feature:663 +apiSharePublicLink1/createPublicLinkShare.feature:664 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink1/createPublicLinkShare.feature:714 +apiSharePublicLink1/createPublicLinkShare.feature:715 +# +# https://github.com/owncloud/ocis-reva/issues/199 Ability to return error messages in Webdav response bodies +apiSharePublicLink1/createPublicLinkShare.feature:718 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink1/createPublicLinkShare.feature:727 +# +# https://github.com/owncloud/core/issues/37605 Public cannot upload file with mtime set on a public link share with new version of WebDAV API +apiSharePublicLink1/createPublicLinkShare.feature:779 +# +# https://github.com/owncloud/core/issues/37605 Public cannot upload file with mtime set on a public link share with new version of WebDAV API +apiSharePublicLink1/createPublicLinkShare.feature:793 +# +# https://github.com/owncloud/ocis-reva/issues/311 Deleting a public link after renaming a file +apiSharePublicLink1/deletePublicLinkShare.feature:37 +apiSharePublicLink1/deletePublicLinkShare.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/373 copying a folder within a public link folder to folder with same name as an already existing file overwrites the parent file +apiSharePublicLink2/copyFromPublicLink.feature:60 +# +# https://github.com/owncloud/ocis-reva/issues/368 copying a file from within a public link folder to "/" overwrites the parent folder +apiSharePublicLink2/copyFromPublicLink.feature:167 +apiSharePublicLink2/copyFromPublicLink.feature:168 +# +# https://github.com/owncloud/ocis-reva/issues/368 copying a file from within a public link folder to "/" overwrites the parent folder +apiSharePublicLink2/copyFromPublicLink.feature:183 +apiSharePublicLink2/copyFromPublicLink.feature:184 +# +apiSharePublicLink2/updatePublicLinkShare.feature:94 +apiSharePublicLink2/updatePublicLinkShare.feature:95 +# +apiSharePublicLink2/updatePublicLinkShare.feature:285 +apiSharePublicLink2/updatePublicLinkShare.feature:286 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiSharePublicLink2/updatePublicLinkShare.feature:304 +apiSharePublicLink2/updatePublicLinkShare.feature:305 +# +apiSharePublicLink2/updatePublicLinkShare.feature:323 +apiSharePublicLink2/updatePublicLinkShare.feature:324 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiSharePublicLink2/updatePublicLinkShare.feature:342 +apiSharePublicLink2/updatePublicLinkShare.feature:343 +# +apiSharePublicLink2/updatePublicLinkShare.feature:361 +apiSharePublicLink2/updatePublicLinkShare.feature:362 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiSharePublicLink2/updatePublicLinkShare.feature:380 +apiSharePublicLink2/updatePublicLinkShare.feature:381 +# +apiSharePublicLink2/updatePublicLinkShare.feature:399 +apiSharePublicLink2/updatePublicLinkShare.feature:400 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiSharePublicLink2/updatePublicLinkShare.feature:418 +apiSharePublicLink2/updatePublicLinkShare.feature:419 +# +apiSharePublicLink2/updatePublicLinkShare.feature:440 +apiSharePublicLink2/updatePublicLinkShare.feature:441 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink2/updatePublicLinkShare.feature:462 +apiSharePublicLink2/updatePublicLinkShare.feature:463 +# +apiSharePublicLink2/updatePublicLinkShare.feature:487 +apiSharePublicLink2/updatePublicLinkShare.feature:488 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:9 +# +# https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file +apiSharePublicLink2/uploadToPublicLinkShare.feature:23 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:48 +apiSharePublicLink2/uploadToPublicLinkShare.feature:49 +# +# https://github.com/owncloud/ocis-reva/issues/290 Accessing non-existing public link should return 404, not 500 +apiSharePublicLink2/uploadToPublicLinkShare.feature:62 +apiSharePublicLink2/uploadToPublicLinkShare.feature:63 +# +# https://github.com/owncloud/ocis-reva/issues/290 Accessing non-existing public link should return 404, not 500 +apiSharePublicLink2/uploadToPublicLinkShare.feature:66 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions +apiSharePublicLink2/uploadToPublicLinkShare.feature:74 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:83 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:103 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:121 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:139 +# +# https://github.com/owncloud/ocis-reva/issues/195 Set quota over settings +apiSharePublicLink2/uploadToPublicLinkShare.feature:148 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:158 +# +# https://github.com/owncloud/ocis-reva/issues/195 Set quota over settings +apiSharePublicLink2/uploadToPublicLinkShare.feature:167 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:177 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink2/uploadToPublicLinkShare.feature:186 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:196 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set +apiSharePublicLink2/uploadToPublicLinkShare.feature:206 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:217 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:238 +# +apiSharePublicLink2/uploadToPublicLinkShare.feature:255 +# +# https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file +apiSharePublicLink2/uploadToPublicLinkShare.feature:273 +# +# https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file +apiSharePublicLink2/uploadToPublicLinkShare.feature:273 +# +# https://github.com/owncloud/product/issues/179 Propfind to trashbin endpoint requires UUID +# https://github.com/owncloud/product/issues/178 File deletion using dav gives unique string in filename in the trashbin +apiTrashbin/trashbinDelete.feature:31 +apiTrashbin/trashbinDelete.feature:32 +apiTrashbin/trashbinDelete.feature:33 +apiTrashbin/trashbinDelete.feature:34 +apiTrashbin/trashbinDelete.feature:37 +apiTrashbin/trashbinDelete.feature:50 +apiTrashbin/trashbinDelete.feature:67 +# +# https://github.com/owncloud/product/issues/179 Propfind to trashbin endpoint requires UUID +# https://github.com/owncloud/product/issues/178 File deletion using dav gives unique string in filename in the trashbin +apiTrashbin/trashbinFilesFolders.feature:44 +apiTrashbin/trashbinFilesFolders.feature:45 +apiTrashbin/trashbinFilesFolders.feature:60 +apiTrashbin/trashbinFilesFolders.feature:61 +apiTrashbin/trashbinFilesFolders.feature:89 +apiTrashbin/trashbinFilesFolders.feature:90 +apiTrashbin/trashbinFilesFolders.feature:104 +apiTrashbin/trashbinFilesFolders.feature:105 +apiTrashbin/trashbinFilesFolders.feature:136 +apiTrashbin/trashbinFilesFolders.feature:137 +apiTrashbin/trashbinFilesFolders.feature:217 +apiTrashbin/trashbinFilesFolders.feature:218 +apiTrashbin/trashbinFilesFolders.feature:235 +apiTrashbin/trashbinFilesFolders.feature:236 +apiTrashbin/trashbinFilesFolders.feature:259 +apiTrashbin/trashbinFilesFolders.feature:260 +apiTrashbin/trashbinFilesFolders.feature:273 +apiTrashbin/trashbinFilesFolders.feature:274 +apiTrashbin/trashbinFilesFolders.feature:287 +apiTrashbin/trashbinFilesFolders.feature:288 +# +# https://github.com/owncloud/product/issues/179 Propfind to trashbin endpoint requires UUID +# https://github.com/owncloud/product/issues/178 File deletion using dav gives unique string in filename in the trashbin +apiTrashbin/trashbinRestore.feature:31 +apiTrashbin/trashbinRestore.feature:32 +apiTrashbin/trashbinRestore.feature:62 +apiTrashbin/trashbinRestore.feature:63 +apiTrashbin/trashbinRestore.feature:76 +apiTrashbin/trashbinRestore.feature:77 +apiTrashbin/trashbinRestore.feature:92 +apiTrashbin/trashbinRestore.feature:93 +apiTrashbin/trashbinRestore.feature:112 +apiTrashbin/trashbinRestore.feature:113 +apiTrashbin/trashbinRestore.feature:114 +apiTrashbin/trashbinRestore.feature:115 +apiTrashbin/trashbinRestore.feature:116 +apiTrashbin/trashbinRestore.feature:117 +apiTrashbin/trashbinRestore.feature:141 +apiTrashbin/trashbinRestore.feature:142 +apiTrashbin/trashbinRestore.feature:143 +apiTrashbin/trashbinRestore.feature:144 +apiTrashbin/trashbinRestore.feature:165 +apiTrashbin/trashbinRestore.feature:166 +apiTrashbin/trashbinRestore.feature:188 +apiTrashbin/trashbinRestore.feature:189 +apiTrashbin/trashbinRestore.feature:206 +apiTrashbin/trashbinRestore.feature:207 +apiTrashbin/trashbinRestore.feature:279 +apiTrashbin/trashbinRestore.feature:280 +apiTrashbin/trashbinRestore.feature:323 +apiTrashbin/trashbinRestore.feature:324 +apiTrashbin/trashbinRestore.feature:325 +apiTrashbin/trashbinRestore.feature:326 +apiTrashbin/trashbinRestore.feature:327 +apiTrashbin/trashbinRestore.feature:328 +apiTrashbin/trashbinRestore.feature:343 +apiTrashbin/trashbinRestore.feature:344 +# +# https://github.com/owncloud/ocis-reva/issues/17 uploading with old-chunking does not work +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiVersions/fileVersions.feature:15 +apiVersions/fileVersions.feature:23 +apiVersions/fileVersions.feature:36 +apiVersions/fileVersions.feature:45 +apiVersions/fileVersions.feature:88 +apiVersions/fileVersions.feature:89 +apiVersions/fileVersions.feature:93 +apiVersions/fileVersions.feature:104 +apiVersions/fileVersions.feature:288 +apiVersions/fileVersions.feature:362 +apiVersions/fileVersions.feature:373 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFileAsync.feature:26 +apiWebdavMove1/moveFileAsync.feature:27 +apiWebdavMove1/moveFileAsync.feature:28 +apiWebdavMove1/moveFileAsync.feature:29 +apiWebdavMove1/moveFileAsync.feature:30 +apiWebdavMove1/moveFileAsync.feature:31 +apiWebdavMove1/moveFileAsync.feature:33 +apiWebdavMove1/moveFileAsync.feature:46 +apiWebdavMove1/moveFileAsync.feature:59 +apiWebdavMove1/moveFileAsync.feature:73 +apiWebdavMove1/moveFileAsync.feature:88 +apiWebdavMove1/moveFileAsync.feature:107 +apiWebdavMove1/moveFileAsync.feature:125 +apiWebdavMove1/moveFileAsync.feature:135 +apiWebdavMove1/moveFileAsync.feature:141 +apiWebdavMove1/moveFileAsync.feature:156 +apiWebdavMove1/moveFileAsync.feature:173 +apiWebdavMove1/moveFileAsync.feature:174 +apiWebdavMove1/moveFileAsync.feature:184 +apiWebdavMove1/moveFileAsync.feature:185 +apiWebdavMove1/moveFileAsync.feature:204 +apiWebdavMove1/moveFileAsync.feature:205 +apiWebdavMove1/moveFileAsync.feature:224 +apiWebdavMove1/moveFileAsync.feature:225 +apiWebdavMove1/moveFileAsync.feature:234 +apiWebdavMove1/moveFileAsync.feature:235 +apiWebdavMove1/moveFileAsync.feature:240 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:12 +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:18 +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:26 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:12 +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:19 +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:27 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFolder.feature:21 +apiWebdavMove1/moveFolder.feature:22 +apiWebdavMove1/moveFolder.feature:34 +apiWebdavMove1/moveFolder.feature:35 +apiWebdavMove1/moveFolder.feature:47 +apiWebdavMove1/moveFolder.feature:48 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFolderToBlacklistedName.feature:21 +apiWebdavMove1/moveFolderToBlacklistedName.feature:22 +apiWebdavMove1/moveFolderToBlacklistedName.feature:35 +apiWebdavMove1/moveFolderToBlacklistedName.feature:36 +apiWebdavMove1/moveFolderToBlacklistedName.feature:70 +apiWebdavMove1/moveFolderToBlacklistedName.feature:71 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove1/moveFolderToExcludedDirectory.feature:21 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:22 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:34 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:35 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:70 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:71 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove2/moveFile.feature:89 +apiWebdavMove2/moveFile.feature:90 +apiWebdavMove2/moveFile.feature:91 +apiWebdavMove2/moveFile.feature:92 +apiWebdavMove2/moveFile.feature:112 +apiWebdavMove2/moveFile.feature:113 +apiWebdavMove2/moveFile.feature:136 +apiWebdavMove2/moveFile.feature:137 +apiWebdavMove2/moveFile.feature:138 +apiWebdavMove2/moveFile.feature:139 +apiWebdavMove2/moveFile.feature:160 +apiWebdavMove2/moveFile.feature:161 +apiWebdavMove2/moveFile.feature:181 +apiWebdavMove2/moveFile.feature:182 +apiWebdavMove2/moveFile.feature:200 +apiWebdavMove2/moveFile.feature:201 +apiWebdavMove2/moveFile.feature:219 +apiWebdavMove2/moveFile.feature:220 +apiWebdavMove2/moveFile.feature:255 +apiWebdavMove2/moveFile.feature:256 +apiWebdavMove2/moveFile.feature:272 +apiWebdavMove2/moveFile.feature:273 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove2/moveFileToBlacklistedName.feature:18 +apiWebdavMove2/moveFileToBlacklistedName.feature:19 +apiWebdavMove2/moveFileToBlacklistedName.feature:29 +apiWebdavMove2/moveFileToBlacklistedName.feature:30 +apiWebdavMove2/moveFileToBlacklistedName.feature:62 +apiWebdavMove2/moveFileToBlacklistedName.feature:63 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work +apiWebdavMove2/moveFileToExcludedDirectory.feature:18 +apiWebdavMove2/moveFileToExcludedDirectory.feature:19 +apiWebdavMove2/moveFileToExcludedDirectory.feature:28 +apiWebdavMove2/moveFileToExcludedDirectory.feature:29 +apiWebdavMove2/moveFileToExcludedDirectory.feature:63 +apiWebdavMove2/moveFileToExcludedDirectory.feature:64 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavOperations/deleteFolder.feature:67 +apiWebdavOperations/deleteFolder.feature:68 +apiWebdavOperations/deleteFolder.feature:69 +apiWebdavOperations/deleteFolder.feature:70 +apiWebdavOperations/deleteFolder.feature:91 +apiWebdavOperations/deleteFolder.feature:92 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file +apiWebdavOperations/downloadFile.feature:29 +apiWebdavOperations/downloadFile.feature:30 +# +apiWebdavOperations/downloadFile.feature:72 +apiWebdavOperations/downloadFile.feature:73 +# +apiWebdavOperations/downloadFile.feature:84 +apiWebdavOperations/downloadFile.feature:85 +# +apiWebdavOperations/refuseAccess.feature:21 +apiWebdavOperations/refuseAccess.feature:22 +# +apiWebdavOperations/refuseAccess.feature:33 +apiWebdavOperations/refuseAccess.feature:34 +# +# https://github.com/owncloud/ocis-reva/issues/39 REPORT request not implemented +apiWebdavOperations/search.feature:42 +apiWebdavOperations/search.feature:43 +apiWebdavOperations/search.feature:57 +apiWebdavOperations/search.feature:58 +apiWebdavOperations/search.feature:74 +apiWebdavOperations/search.feature:75 +apiWebdavOperations/search.feature:83 +apiWebdavOperations/search.feature:84 +apiWebdavOperations/search.feature:101 +apiWebdavOperations/search.feature:102 +apiWebdavOperations/search.feature:119 +apiWebdavOperations/search.feature:120 +apiWebdavOperations/search.feature:138 +apiWebdavOperations/search.feature:139 +apiWebdavOperations/search.feature:165 +apiWebdavOperations/search.feature:166 +apiWebdavOperations/search.feature:191 +apiWebdavOperations/search.feature:192 +apiWebdavOperations/search.feature:210 +apiWebdavOperations/search.feature:211 +apiWebdavOperations/search.feature:213 +apiWebdavOperations/search.feature:229 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties1/copyFile.feature:65 +apiWebdavProperties1/copyFile.feature:66 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties1/copyFile.feature:85 +apiWebdavProperties1/copyFile.feature:86 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavProperties1/copyFile.feature:102 +apiWebdavProperties1/copyFile.feature:103 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:116 +apiWebdavProperties1/copyFile.feature:117 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:129 +apiWebdavProperties1/copyFile.feature:130 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:146 +apiWebdavProperties1/copyFile.feature:147 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:165 +apiWebdavProperties1/copyFile.feature:166 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:202 +apiWebdavProperties1/copyFile.feature:203 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:350 +apiWebdavProperties1/copyFile.feature:351 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:370 +apiWebdavProperties1/copyFile.feature:371 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:395 +apiWebdavProperties1/copyFile.feature:396 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:422 +apiWebdavProperties1/copyFile.feature:423 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:448 +apiWebdavProperties1/copyFile.feature:449 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 +apiWebdavProperties1/copyFile.feature:474 +apiWebdavProperties1/copyFile.feature:475 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavProperties1/createFolder.feature:71 +apiWebdavProperties1/createFolder.feature:72 +# +# https://github.com/owncloud/ocis-reva/issues/168 creating a folder that already exists returns an empty body +apiWebdavProperties1/createFolder.feature:85 +apiWebdavProperties1/createFolder.feature:86 +# +# https://github.com/owncloud/ocis-reva/issues/168 creating a folder that already exists returns an empty body +apiWebdavProperties1/createFolder.feature:99 +apiWebdavProperties1/createFolder.feature:100 +# +# https://github.com/owncloud/ocis-reva/issues/101 quota query +apiWebdavProperties1/getQuota.feature:17 +apiWebdavProperties1/getQuota.feature:18 +apiWebdavProperties1/getQuota.feature:27 +apiWebdavProperties1/getQuota.feature:28 +apiWebdavProperties1/getQuota.feature:48 +apiWebdavProperties1/getQuota.feature:49 +apiWebdavProperties1/getQuota.feature:61 +apiWebdavProperties1/getQuota.feature:62 +apiWebdavProperties1/getQuota.feature:77 +apiWebdavProperties1/getQuota.feature:78 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties1/setFileProperties.feature:63 +apiWebdavProperties1/setFileProperties.feature:64 +# +# https://github.com/owncloud/ocis-reva/issues/214 XML properties in webdav response not properly encoded +apiWebdavProperties2/getFileProperties.feature:37 +apiWebdavProperties2/getFileProperties.feature:39 +apiWebdavProperties2/getFileProperties.feature:40 +apiWebdavProperties2/getFileProperties.feature:41 +apiWebdavProperties2/getFileProperties.feature:43 +apiWebdavProperties2/getFileProperties.feature:44 +# +# https://github.com/owncloud/ocis-reva/issues/214 XML properties in webdav response not properly encoded +apiWebdavProperties2/getFileProperties.feature:59 +apiWebdavProperties2/getFileProperties.feature:60 +apiWebdavProperties2/getFileProperties.feature:61 +apiWebdavProperties2/getFileProperties.feature:63 +apiWebdavProperties2/getFileProperties.feature:64 +apiWebdavProperties2/getFileProperties.feature:66 +apiWebdavProperties2/getFileProperties.feature:67 +apiWebdavProperties2/getFileProperties.feature:68 +apiWebdavProperties2/getFileProperties.feature:70 +apiWebdavProperties2/getFileProperties.feature:71 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties2/getFileProperties.feature:135 +apiWebdavProperties2/getFileProperties.feature:136 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties2/getFileProperties.feature:156 +apiWebdavProperties2/getFileProperties.feature:157 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties2/getFileProperties.feature:174 +apiWebdavProperties2/getFileProperties.feature:175 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work +apiWebdavProperties2/getFileProperties.feature:206 +apiWebdavProperties2/getFileProperties.feature:207 +# +apiWebdavProperties2/getFileProperties.feature:218 +apiWebdavProperties2/getFileProperties.feature:219 +# +# https://github.com/owncloud/ocis-reva/issues/216 Private link support +apiWebdavProperties2/getFileProperties.feature:232 +apiWebdavProperties2/getFileProperties.feature:233 +# +# https://github.com/owncloud/ocis-reva/issues/163 trying to access a non-existing resource returns an empty body +apiWebdavProperties2/getFileProperties.feature:242 +apiWebdavProperties2/getFileProperties.feature:243 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:246 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:266 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:301 +apiWebdavProperties2/getFileProperties.feature:302 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:314 +apiWebdavProperties2/getFileProperties.feature:315 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:327 +apiWebdavProperties2/getFileProperties.feature:328 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:376 +apiWebdavProperties2/getFileProperties.feature:377 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:389 +apiWebdavProperties2/getFileProperties.feature:390 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:402 +apiWebdavProperties2/getFileProperties.feature:403 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:415 +apiWebdavProperties2/getFileProperties.feature:416 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:428 +apiWebdavProperties2/getFileProperties.feature:429 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:441 +apiWebdavProperties2/getFileProperties.feature:442 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties +apiWebdavProperties2/getFileProperties.feature:454 +apiWebdavProperties2/getFileProperties.feature:455 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavUpload1/uploadFile.feature:112 +apiWebdavUpload1/uploadFile.feature:113 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:31 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:48 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:65 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:83 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:92 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:106 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:143 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:144 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:146 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:159 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavUpload1/uploadFileToBlacklistedName.feature:19 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:20 +# +# https://github.com/owncloud/ocis-reva/issues/54 system configuration options missing +apiWebdavUpload1/uploadFileToBlacklistedName.feature:31 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:32 +# +# https://github.com/owncloud/ocis-reva/issues/54 system configuration options missing +apiWebdavUpload1/uploadFileToBlacklistedName.feature:65 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:66 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:23 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:47 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:48 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:49 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:52 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:20 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:21 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:33 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:34 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:69 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:70 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:24 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:49 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:50 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:51 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:54 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:21 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:45 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:46 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:47 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:50 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:20 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:37 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:38 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:39 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:42 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:22 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:47 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:48 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:49 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:52 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:21 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:39 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:40 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:41 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:44 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist +apiWebdavUpload2/uploadFileUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:29 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:43 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:57 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:79 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:85 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:94 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:98 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:106 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:135 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:136 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:137 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:157 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:158 +# +# https://github.com/owncloud/ocis-reva/issues/17 uploading with old-chunking does not work +apiWebdavUpload2/uploadFileUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:26 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:35 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:44 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:76 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:77 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:97 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:98 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:99 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:100 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:101 From 1d31f4db12207fa985a74bbf43ab071993644c03 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 16:16:48 +0545 Subject: [PATCH 303/346] run local API tests with multiple storages --- .drone.star | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.drone.star b/.drone.star index ae3e1f0a67..4db6cda1ed 100644 --- a/.drone.star +++ b/.drone.star @@ -31,7 +31,8 @@ def main(ctx): def testPipelines(ctx): pipelines = [ testing(ctx), - localApiTestsOcStorage(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit']) + localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'oc'), + localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'ocis') ] for runPart in range(1, config['apiTests']['numberOfParts'] + 1): @@ -40,21 +41,21 @@ def testPipelines(ctx): return pipelines -def localApiTestsOcStorage(ctx, coreBranch = 'master', coreCommit = ''): +def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'oc'): return { 'kind': 'pipeline', 'type': 'docker', - 'name': 'localApiTestsOcStorage', + 'name': 'localApiTests-%s-storage' % (storage), 'platform': { 'os': 'linux', 'arch': 'amd64', }, 'steps': build() + - revaServer() + + revaServer(storage) + cloneCoreRepos(coreBranch, coreCommit) + [ { - 'name': 'localApiTestsOcStorage', + 'name': 'localApiTests-%s-storage' % (storage), 'image': 'owncloudci/php:7.2', 'pull': 'always', 'environment' : { @@ -64,7 +65,7 @@ def localApiTestsOcStorage(ctx, coreBranch = 'master', coreCommit = ''): 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_OCIS':'true', - 'BEHAT_FILTER_TAGS': '~@skipOnOcis-OC-Storage', + 'BEHAT_FILTER_TAGS': '~@skipOnOcis-%s-Storage' % (storage.capitalize()), 'PATH_TO_CORE': '/srv/app/testrunner' }, 'commands': [ From 3f7f8eed13694140647acc8d3f940ae73e3ecdf3 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 16:29:37 +0545 Subject: [PATCH 304/346] use correct function to upper string --- .drone.star | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.star b/.drone.star index 4db6cda1ed..d54f1e54e4 100644 --- a/.drone.star +++ b/.drone.star @@ -65,7 +65,7 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'oc'): 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_OCIS':'true', - 'BEHAT_FILTER_TAGS': '~@skipOnOcis-%s-Storage' % (storage.capitalize()), + 'BEHAT_FILTER_TAGS': '~@skipOnOcis-%s-Storage' % (storage.upper()), 'PATH_TO_CORE': '/srv/app/testrunner' }, 'commands': [ @@ -124,7 +124,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~comments-app-required&&~@federation-app-required&&~@notifications-app-required&&~systemtags-app-required&&~@provisioning_api-app-required&&~@preview-extension-required&&~@local_storage', 'DIVIDE_INTO_NUM_PARTS': number_of_parts, 'RUN_PART': part_number, - 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures-on-%s-storage.txt' % (storage.capitalize()) + 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures-on-%s-storage.txt' % (storage.upper()) }, 'commands': [ 'cd /srv/app/testrunner', From cd22d1da5ad463bb5da926e678e5b2e370f32935 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 16:53:07 +0545 Subject: [PATCH 305/346] use owncloud as storage name --- .drone.star | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.drone.star b/.drone.star index d54f1e54e4..7370449535 100644 --- a/.drone.star +++ b/.drone.star @@ -31,17 +31,17 @@ def main(ctx): def testPipelines(ctx): pipelines = [ testing(ctx), - localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'oc'), + localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'owncloud'), localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'ocis') ] for runPart in range(1, config['apiTests']['numberOfParts'] + 1): - pipelines.append(coreApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], runPart, config['apiTests']['numberOfParts'], 'oc')) + pipelines.append(coreApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], runPart, config['apiTests']['numberOfParts'], 'owncloud')) pipelines.append(coreApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], runPart, config['apiTests']['numberOfParts'], 'ocis')) return pipelines -def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'oc'): +def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'owncloud'): return { 'kind': 'pipeline', 'type': 'docker', @@ -97,7 +97,7 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'oc'): }, } -def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, number_of_parts = 1, storage = 'oc'): +def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, number_of_parts = 1, storage = 'owncloud'): return { 'kind': 'pipeline', 'type': 'docker', From dddc0ce15ab0305f97dc1685b0e4ba741a3a83db Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 16:59:21 +0545 Subject: [PATCH 306/346] rename expected-failures on OC storage file --- ...n-OC-storage.txt => expected-failures-on-OWNCLOUD-storage.txt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/acceptance/{expected-failures-on-OC-storage.txt => expected-failures-on-OWNCLOUD-storage.txt} (100%) diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OWNCLOUD-storage.txt similarity index 100% rename from tests/acceptance/expected-failures-on-OC-storage.txt rename to tests/acceptance/expected-failures-on-OWNCLOUD-storage.txt From c826b04729b11607a673e2799ff63304757716c1 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 17:06:58 +0545 Subject: [PATCH 307/346] fix behat filter tags --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 7370449535..b4c8d78dd9 100644 --- a/.drone.star +++ b/.drone.star @@ -65,7 +65,7 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'ownclo 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_OCIS':'true', - 'BEHAT_FILTER_TAGS': '~@skipOnOcis-%s-Storage' % (storage.upper()), + 'BEHAT_FILTER_TAGS': '~@skipOnOcis-%s-Storage' % ('OC' if storage == 'owncloud' else 'OCIS'), 'PATH_TO_CORE': '/srv/app/testrunner' }, 'commands': [ From a3d3f5ff135d0ce264f26a7d72293af5f16215ee Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 17:19:15 +0545 Subject: [PATCH 308/346] skip tests on OCIS storage that are skipped on OC storage --- .../features/apiOcisSpecific/apiFavorites-favorites.feature | 2 +- .../apiShareManagementBasic-createShare.feature | 4 ++-- .../apiOcisSpecific/apiShareUpdate-updateShare.feature | 2 +- .../features/apiOcisSpecific/apiWebdavMove2-moveFile.feature | 2 +- .../apiOcisSpecific/apiWebdavOperations-downloadFile.feature | 2 +- .../apiWebdavProperties1-setFileProperties.feature | 2 +- .../apiWebdavProperties2-getFileProperties.feature | 4 ++-- .../apiOcisSpecific/apiWebdavUpload1-uploadFile.feature | 4 ++-- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature b/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature index cc96dcf5b4..95f9a387a2 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature @@ -13,7 +13,7 @@ Feature: favorite And user "Alice" has created folder "/PARENT" And user "Alice" has uploaded file with content "some data" to "/PARENT/parent.txt" - @skipOnOcis-OC-Storage @issue-ocis-reva-276 + @skipOnOcis-OC-Storage @skipOnOcis-OCIS-Storage @issue-ocis-reva-276 # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Favorite a folder Given using DAV path diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature index 729b53387e..a1c6880e2d 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature @@ -5,7 +5,7 @@ Feature: sharing Given user "Alice" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "ownCloud test text file 0" to "/textfile0.txt" - @skipOnOcis-OC-Storage @issue-ocis-reva-301 @issue-ocis-reva-302 + @skipOnOcis-OC-Storage @skipOnOcis-OCIS-Storage @issue-ocis-reva-301 @issue-ocis-reva-302 # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Creating a share of a file with a user and asking for various permission combinations Given using OCS API version "" @@ -56,7 +56,7 @@ Feature: sharing | 1 | 200 | 500 | | 2 | 200 | 500 | - @skipOnOcis-OC-Storage @issue-ocis-reva-301 @issue-ocis-reva-302 + @skipOnOcis-OC-Storage @skipOnOcis-OCIS-Storage @issue-ocis-reva-301 @issue-ocis-reva-302 # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Creating a share of a folder with a user, the default permissions are all permissions(31) Given using OCS API version "" diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature index bd818e32a8..3beddab015 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature @@ -43,7 +43,7 @@ Feature: sharing And as "Alice" folder "/Alice-folder/folder2" should exist And as "Carol" folder "/Carol-folder/folder2" should not exist - @skipOnOcis-OC-Storage @toFixOnOCIS @issue-ocis-reva-243 + @skipOnOcis-OC-Storage @skipOnOcis-OCIS-Storage @toFixOnOCIS @issue-ocis-reva-243 # same as oC10 core Scenario but without displayname_owner because EOS does not report it # after fixing all issues delete this Scenario and use the one from oC10 core Scenario: Share ownership change after moving a shared file to another share diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature index 89524b6a3c..d05160f7bb 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature @@ -32,7 +32,7 @@ Feature: move (rename) file | old | | new | - @skipOnOcis-OC-Storage @issue-ocis-reva-211 + @skipOnOcis-OC-Storage @skipOnOcis-OCIS-Storage @issue-ocis-reva-211 # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: renaming to a file with special characters When user "Alice" moves file "/textfile0.txt" to "/" using the WebDAV API diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature index 7dc49b2f84..b3dd1a0a9d 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature @@ -9,7 +9,7 @@ Feature: download file And user "Alice" has uploaded file with content "ownCloud test text file 0" to "/textfile0.txt" And user "Alice" has uploaded file with content "Welcome this is just an example file for developers." to "/welcome.txt" - @skipOnOcis-OC-Storage @issue-ocis-reva-98 + @skipOnOcis-OC-Storage @skipOnOcis-OCIS-Storage @issue-ocis-reva-98 # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Get the content-length response header of a pdf file Given using DAV path diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature index 9bb58bd7b7..5ce403a669 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature @@ -8,7 +8,7 @@ Feature: set file properties Given using OCS API version "1" And user "Alice" has been created with default attributes and without skeleton files - @skipOnOcis-OC-Storage @issue-ocis-reva-276 + @skipOnOcis-OC-Storage @skipOnOcis-OCIS-Storage @issue-ocis-reva-276 # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Setting custom DAV property Given using DAV path diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature index 01ff438064..af5fee43fa 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature @@ -38,7 +38,7 @@ Feature: get file properties | old | /file ?2.txt | webdav\/file%20%3F2\.txt | | new | /file ?2.txt | dav\/files\/%username%\/file%20%3F2\.txt | - @skipOnOcis-OC-Storage @issue-ocis-reva-265 + @skipOnOcis-OC-Storage @skipOnOcis-OCIS-Storage @issue-ocis-reva-265 # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: upload a file to content Given using DAV path @@ -91,7 +91,7 @@ Feature: get file properties | old | /folder ?2.txt | webdav\/folder%20%3F2\.txt | | new | /folder ?2.txt | dav\/files\/%username%\/folder%20%3F2\.txt | - @skipOnOcis-OC-Storage @issue-ocis-reva-265 + @skipOnOcis-OC-Storage @skipOnOcis-OCIS-Storage @issue-ocis-reva-265 # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Do a PROPFIND of various folder names Given using DAV path diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature index 3f5570fbff..c3b133ae8f 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature @@ -8,7 +8,7 @@ Feature: upload file Given using OCS API version "1" And user "Alice" has been created with default attributes and without skeleton files - @skipOnOcis-OC-Storage @issue-ocis-reva-265 + @skipOnOcis-OC-Storage @skipOnOcis-OCIS-Storage @issue-ocis-reva-265 # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: upload a file and check download content Given using DAV path @@ -19,7 +19,7 @@ Feature: upload file | old | "file ?2.txt" | | new | "file ?2.txt" | - @skipOnOcis-OC-Storage @issue-product-127 + @skipOnOcis-OC-Storage @skipOnOcis-OCIS-Storage @issue-product-127 # this scenario passes/fails intermittently on OC storage, so do not run it in CI # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: uploading a file inside a folder changes its etag From 6e295fe252f1d088da562b92d0c1e4cefc0313d3 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 18:45:09 +0545 Subject: [PATCH 309/346] set skeleton and userdeletion --- .drone.star | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index b4c8d78dd9..b73f7fe7c4 100644 --- a/.drone.star +++ b/.drone.star @@ -42,6 +42,7 @@ def testPipelines(ctx): return pipelines def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'owncloud'): + dataRootConfig = "'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/'" if storage == 'owncloud' else "'DELETE_USER_DATA_CMD': 'rm -rf /srv/app/tmp/ocis/root/*'" return { 'kind': 'pipeline', 'type': 'docker', @@ -60,7 +61,7 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'ownclo 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', + dataRootConfig, 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', @@ -966,6 +967,7 @@ def revaServer(storage): 'REVA_STORAGE_OC_DRIVER': '%s' % (storage), 'REVA_STORAGE_OC_DATA_DRIVER': '%s' % (storage), 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_OCIS_STORAGE_ROOT': '/srv/app/tmp/ocis/root', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', From efe5e958917f60894bd0fc21e46b042173d9e585 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 10 Sep 2020 13:54:20 +0200 Subject: [PATCH 310/346] Switch to ocis-sharing branch in butonic's reva It contains more improvements on top of the ocis storage --- go.mod | 4 ++-- go.sum | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/go.mod b/go.mod index ed924a3079..3a9b22abcd 100644 --- a/go.mod +++ b/go.mod @@ -19,5 +19,5 @@ require ( gopkg.in/ini.v1 v1.51.1 // indirect ) -// ocis-driver branch -replace github.com/cs3org/reva => github.com/butonic/reva v0.0.0-20200908144404-c3dd7a3924c0 +// ocis-sharing branch +replace github.com/cs3org/reva => github.com/butonic/reva v0.0.0-20200910112438-dd43734ae8af diff --git a/go.sum b/go.sum index e1a579f44c..93bac9ad87 100644 --- a/go.sum +++ b/go.sum @@ -93,8 +93,6 @@ github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt github.com/aws/aws-sdk-go v1.20.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.34.2 h1:9vCknCdTAmmV4ht7lPuda7aJXzllXwEQyCMZKJHjBrM= -github.com/aws/aws-sdk-go v1.34.2/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.34.12 h1:7UbBEYDUa4uW0YmRnOd806MS1yoJMcaodBWDzvBShAI= github.com/aws/aws-sdk-go v1.34.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= @@ -109,8 +107,8 @@ github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40 h1:y4B3+GPxKlrigF1ha5FFErxK+sr6sWxQovRMzwMhejo= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= -github.com/butonic/reva v0.0.0-20200908144404-c3dd7a3924c0 h1:l+HyZLzjXWKf4YV/8W87tGQwJYWIVPbvAXCOMKxnH3A= -github.com/butonic/reva v0.0.0-20200908144404-c3dd7a3924c0/go.mod h1:2nFeb46NQSd8MliTlPTc+ycYnPwmRFNqB7DXn++TYiY= +github.com/butonic/reva v0.0.0-20200910112438-dd43734ae8af h1:/r3MjBPRezcGsrUzkK7+/MUaaALQO7uPXjZT3lBfNOY= +github.com/butonic/reva v0.0.0-20200910112438-dd43734ae8af/go.mod h1:2nFeb46NQSd8MliTlPTc+ycYnPwmRFNqB7DXn++TYiY= github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.2/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= @@ -169,15 +167,10 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cs3org/cato v0.0.0-20200626150132-28a40e643719/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= -github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd h1:uMaudkC7znaiIKT9rxIhoRYzrhTg1Nc78X7XEqhmjSk= -github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/go-cs3apis v0.0.0-20200810113633-b00aca449666 h1:E7VsSSN/2YZLSwrDMJJdAWU11lP7W1qkcXbrslb0PM0= github.com/cs3org/go-cs3apis v0.0.0-20200810113633-b00aca449666/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v1.1.1-0.20200819100654-dcbf0c8ea187 h1:ZyDXH+zy5KPOH5AM5CMHP2j9dhV6bM3JQmqTfO8fxJ8= -github.com/cs3org/reva v1.1.1-0.20200819100654-dcbf0c8ea187/go.mod h1:gkGtoun9QABW8k7jzAWWxB9jO64DJ1lreSzTucci/ok= -github.com/cs3org/reva v1.2.1-0.20200826162318-c0f54e1f37ea h1:xVyJvR+GoaBrRJV6GnDflgm9bzkmjchCBBg0nMiHu6M= -github.com/cs3org/reva v1.2.1-0.20200826162318-c0f54e1f37ea/go.mod h1:FvYB+UPpuPCw0hH42qHVR1R2atZyy69METZI/zEaST8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= @@ -490,6 +483,7 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m github.com/gophercloud/gophercloud v0.3.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= github.com/gopherjs/gopherjs v0.0.0-20181004151105-1babbf986f6f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg= github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= @@ -530,6 +524,7 @@ github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwP github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= @@ -554,6 +549,7 @@ github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/justinas/alice v1.2.0 h1:+MHSA/vccVCF4Uq37S42jwlkvI2Xzl7zTPCN5BnZNVo= @@ -569,6 +565,7 @@ github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgo github.com/kolo/xmlrpc v0.0.0-20190717152603-07c4ee3fd181/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ= github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -705,6 +702,7 @@ github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4r github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/oleiade/reflections v1.0.0 h1:0ir4pc6v8/PJ0yw5AEtMddfXpWBXg9cnG7SgSoJuCgY= github.com/oleiade/reflections v1.0.0/go.mod h1:RbATFBbKYkVdqmSFtx13Bb/tVhR0lgOBXunWTZKeL4w= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -761,6 +759,7 @@ github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6J github.com/pkg/term v0.0.0-20200520122047-c3ffed290a03/go.mod h1:Z9+Ul5bCbBKnbCvdOWbLqTHhJiYV414CURZJba6L8qA= github.com/pkg/xattr v0.4.1 h1:dhclzL6EqOXNaPDWqoeb9tIxATfBSmjqL0b4DpSjwRw= github.com/pkg/xattr v0.4.1/go.mod h1:W2cGD0TBEus7MkUgv0tNZ9JutLtVO3cXu+IBRuHqnFs= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 h1:J9b7z+QKAmPf4YLrFg6oQUotqHQeUNWwkvo7jZp1GLU= github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= @@ -846,9 +845,11 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= @@ -862,6 +863,7 @@ github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgK github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= @@ -1287,8 +1289,6 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.1 h1:SfXqXS5hkufcdZ/mHtYCh53P2b+92WQq/DZcKLgsFRs= google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From 7b3bb22da3deebdfd866fa66db20f979c44eacc8 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 18:58:43 +0545 Subject: [PATCH 311/346] set dataroot and use delete command to delete user data --- .drone.star | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.drone.star b/.drone.star index b73f7fe7c4..3f11c3515a 100644 --- a/.drone.star +++ b/.drone.star @@ -42,7 +42,6 @@ def testPipelines(ctx): return pipelines def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'owncloud'): - dataRootConfig = "'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/'" if storage == 'owncloud' else "'DELETE_USER_DATA_CMD': 'rm -rf /srv/app/tmp/ocis/root/*'" return { 'kind': 'pipeline', 'type': 'docker', @@ -61,7 +60,8 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'ownclo 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - dataRootConfig, + 'OCIS_REVA_DATA_ROOT': '%s' % ('/srv/app/tmp/reva/' if storage == 'owncloud' else ''), + 'DELETE_USER_DATA_CMD': '%s' % ('rm -rf /srv/app/tmp/reva/data/*' if storage == 'owncloud' else 'rm -rf /srv/app/tmp/ocis/root/*'), 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', @@ -117,7 +117,8 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', + 'OCIS_REVA_DATA_ROOT': '%s' % ('/srv/app/tmp/reva/' if storage == 'owncloud' else ''), + 'DELETE_USER_DATA_CMD': '%s' % ('rm -rf /srv/app/tmp/reva/data/*' if storage == 'owncloud' else 'rm -rf /srv/app/tmp/ocis/root/*'), 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', From c4af223861d58c53b6407d5cc73b9537ab6e26c7 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 21:24:41 +0545 Subject: [PATCH 312/346] fix config name --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 3f11c3515a..d02307c120 100644 --- a/.drone.star +++ b/.drone.star @@ -968,7 +968,7 @@ def revaServer(storage): 'REVA_STORAGE_OC_DRIVER': '%s' % (storage), 'REVA_STORAGE_OC_DATA_DRIVER': '%s' % (storage), 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', - 'REVA_OCIS_STORAGE_ROOT': '/srv/app/tmp/ocis/root', + 'REVA_STORAGE_OCIS_ROOT': '/srv/app/tmp/ocis/root', 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', From 127d6300cf10db007930f5fbc2d5b05070b23937 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 10 Sep 2020 16:32:43 +0200 Subject: [PATCH 313/346] Update to latest butonic ocis-sharing branch Includes more fixes for trashbin --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3a9b22abcd..d4e30f8b21 100644 --- a/go.mod +++ b/go.mod @@ -20,4 +20,4 @@ require ( ) // ocis-sharing branch -replace github.com/cs3org/reva => github.com/butonic/reva v0.0.0-20200910112438-dd43734ae8af +replace github.com/cs3org/reva => github.com/butonic/reva v0.0.0-20200910140954-a6079f23695f diff --git a/go.sum b/go.sum index 93bac9ad87..d1322cad6c 100644 --- a/go.sum +++ b/go.sum @@ -107,8 +107,8 @@ github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40 h1:y4B3+GPxKlrigF1ha5FFErxK+sr6sWxQovRMzwMhejo= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= -github.com/butonic/reva v0.0.0-20200910112438-dd43734ae8af h1:/r3MjBPRezcGsrUzkK7+/MUaaALQO7uPXjZT3lBfNOY= -github.com/butonic/reva v0.0.0-20200910112438-dd43734ae8af/go.mod h1:2nFeb46NQSd8MliTlPTc+ycYnPwmRFNqB7DXn++TYiY= +github.com/butonic/reva v0.0.0-20200910140954-a6079f23695f h1:mh7Gvg9bBF9bCvmyq3qB3UjZeeoDGHlFIq3AQWCDv1E= +github.com/butonic/reva v0.0.0-20200910140954-a6079f23695f/go.mod h1:2nFeb46NQSd8MliTlPTc+ycYnPwmRFNqB7DXn++TYiY= github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.2/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= From da48317e6ae28b32d92056a21b5d6c51d5c6860f Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 21:36:47 +0545 Subject: [PATCH 314/346] create /srv/app/tmp/ocis/root/ --- .drone.star | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.star b/.drone.star index d02307c120..bdff857d83 100644 --- a/.drone.star +++ b/.drone.star @@ -287,6 +287,7 @@ def testing(ctx): }, 'commands': [ 'mkdir -p /srv/app/tmp/reva', + 'mkdir -p /srv/app/tmp/ocis/root/', 'bin/ocis-reva --log-level debug --log-pretty gateway &', 'bin/ocis-reva --log-level debug --log-pretty users &', 'bin/ocis-reva --log-level debug --log-pretty auth-basic &', From a69c4bab4c1e44b9daa339f4c8f607b341e00610 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 21:37:43 +0545 Subject: [PATCH 315/346] delete only inside nodes --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index bdff857d83..01e6b99bae 100644 --- a/.drone.star +++ b/.drone.star @@ -61,7 +61,7 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'ownclo 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', 'OCIS_REVA_DATA_ROOT': '%s' % ('/srv/app/tmp/reva/' if storage == 'owncloud' else ''), - 'DELETE_USER_DATA_CMD': '%s' % ('rm -rf /srv/app/tmp/reva/data/*' if storage == 'owncloud' else 'rm -rf /srv/app/tmp/ocis/root/*'), + 'DELETE_USER_DATA_CMD': '%s' % ('rm -rf /srv/app/tmp/reva/data/*' if storage == 'owncloud' else 'rm -rf /srv/app/tmp/ocis/root/nodes/*'), 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', From f18a95ec4ab88c696424afe9070c44d764c30f79 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Thu, 10 Sep 2020 21:39:55 +0545 Subject: [PATCH 316/346] delete only inside nodes 2 --- .drone.star | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.star b/.drone.star index 01e6b99bae..58072709a5 100644 --- a/.drone.star +++ b/.drone.star @@ -118,7 +118,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', 'OCIS_REVA_DATA_ROOT': '%s' % ('/srv/app/tmp/reva/' if storage == 'owncloud' else ''), - 'DELETE_USER_DATA_CMD': '%s' % ('rm -rf /srv/app/tmp/reva/data/*' if storage == 'owncloud' else 'rm -rf /srv/app/tmp/ocis/root/*'), + 'DELETE_USER_DATA_CMD': '%s' % ('rm -rf /srv/app/tmp/reva/data/*' if storage == 'owncloud' else 'rm -rf /srv/app/tmp/ocis/root/nodes/*'), 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', @@ -287,7 +287,6 @@ def testing(ctx): }, 'commands': [ 'mkdir -p /srv/app/tmp/reva', - 'mkdir -p /srv/app/tmp/ocis/root/', 'bin/ocis-reva --log-level debug --log-pretty gateway &', 'bin/ocis-reva --log-level debug --log-pretty users &', 'bin/ocis-reva --log-level debug --log-pretty auth-basic &', @@ -982,6 +981,7 @@ def revaServer(storage): 'commands': [ 'apk add mailcap', 'mkdir -p /srv/app/tmp/reva', + 'mkdir -p /srv/app/tmp/ocis/root/nodes', 'bin/ocis-reva --log-level debug --log-pretty gateway &', 'bin/ocis-reva --log-level debug --log-pretty users &', 'bin/ocis-reva --log-level debug --log-pretty auth-basic &', From c718f56884c562d472bf719848ac574cd6728844 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 10:29:23 +0545 Subject: [PATCH 317/346] skip local tests on OCIS storage --- .../features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature | 2 +- .../features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature | 2 +- .../features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature | 2 +- .../apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature | 2 +- .../apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature | 2 +- .../apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature | 2 +- .../apiCapabilities-capabilitiesWithNormalUser.feature | 2 +- .../features/apiOcisSpecific/apiFavorites-favorites.feature | 2 +- .../features/apiOcisSpecific/apiMain-checksums.feature | 2 +- tests/acceptance/features/apiOcisSpecific/apiMain-main.feature | 2 +- ...hareCreateSpecial2-createShareWithInvalidPermissions.feature | 2 +- .../apiOcisSpecific/apiShareManagementBasic-createShare.feature | 2 +- .../apiOcisSpecific/apiShareManagementBasic-deleteShare.feature | 2 +- .../apiOcisSpecific/apiShareOperations-accessToShare.feature | 2 +- .../apiShareOperations-getWebDAVSharePermissions.feature | 2 +- .../apiOcisSpecific/apiShareOperations-gettingShares.feature | 2 +- .../apiSharePublicLink1-createPublicLinkShare.feature | 2 +- .../apiSharePublicLink2-copyFromPublicLink.feature | 2 +- .../apiSharePublicLink2-updatePublicLinkShare.feature | 2 +- .../apiSharePublicLink2-uploadToPublicLinkShare.feature | 2 +- .../features/apiOcisSpecific/apiShareUpdate-updateShare.feature | 2 +- .../features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature | 2 +- .../features/apiOcisSpecific/apiVersions-fileVersions.feature | 2 +- .../features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature | 2 +- .../apiWebdavMove1-moveFolderToBlacklistedName.feature | 2 +- .../features/apiOcisSpecific/apiWebdavMove2-moveFile.feature | 2 +- .../apiWebdavMove2-moveFileToBlacklistedName.feature | 2 +- .../apiOcisSpecific/apiWebdavOperations-downloadFile.feature | 2 +- .../apiOcisSpecific/apiWebdavOperations-refuseAccess.feature | 2 +- .../features/apiOcisSpecific/apiWebdavPreviews-previews.feature | 2 +- .../apiOcisSpecific/apiWebdavProperties1-createFolder.feature | 2 +- .../apiWebdavProperties1-setFileProperties.feature | 2 +- .../apiWebdavProperties2-getFileProperties.feature | 2 +- .../apiOcisSpecific/apiWebdavUpload1-uploadFile.feature | 2 +- 34 files changed, 34 insertions(+), 34 deletions(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature index d48ec88c0d..f670ebc12c 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: auth Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature index 3b3927e6e4..bd9b9512d5 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: auth Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature index b8e54da9a7..9e3ed6d659 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: auth @issue-ocis-reva-30 diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature index fe5c1c6751..4e4b33759f 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: LOCK file/folder Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature index c2291fc5ed..7195bee736 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: MOVE file/folder Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature index 478ab74660..b5ab1abb6d 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: get file info using PROPFIND Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature b/tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature index cf833d5b24..73239cb4b9 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required +@api @files_sharing-app-required @skipOnOcis-OCIS-Storage Feature: default capabilities for normal user Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature b/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature index 95f9a387a2..df24afe6ed 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: favorite Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature b/tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature index d536985657..5358f55f65 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: checksums Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiMain-main.feature b/tests/acceptance/features/apiOcisSpecific/apiMain-main.feature index 9c4ad50f95..443fd1f467 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiMain-main.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiMain-main.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: Other tests related to api @issue-ocis-reva-100 diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature b/tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature index 8d08de8b99..8089272731 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @issue-ocis-reva-243 +@api @files_sharing-app-required @issue-ocis-reva-243 @skipOnOcis-OCIS-Storage Feature: cannot share resources with invalid permissions Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature index a1c6880e2d..45a7f54ee3 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required +@api @files_sharing-app-required @skipOnOcis-OCIS-Storage Feature: sharing Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature index 3de47db441..6fb61e565a 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @issue-ocis-reva-243 +@api @files_sharing-app-required @issue-ocis-reva-243 @skipOnOcis-OCIS-Storage Feature: sharing @issue-ocis-reva-356 diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature index afcc2da740..adfc1743b3 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required +@api @files_sharing-app-required @skipOnOcis-OCIS-Storage Feature: sharing Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature index f7881377fa..90d80d1647 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @issue-ocis-reva-47 +@api @files_sharing-app-required @issue-ocis-reva-47 @skipOnOcis-OCIS-Storage Feature: sharing Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature index 2007a366a5..146b07a160 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required +@api @files_sharing-app-required @skipOnOcis-OCIS-Storage Feature: sharing Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature index 235effb6ae..0bab8494b6 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @public_link_share-feature-required @skipOnOcis-EOS-Storage @issue-ocis-reva-315 @issue-ocis-reva-316 +@api @files_sharing-app-required @public_link_share-feature-required @skipOnOcis-EOS-Storage @issue-ocis-reva-315 @issue-ocis-reva-316 @skipOnOcis-OCIS-Storage Feature: create a public link share diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature index 598f75155e..c89e0a01e9 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @public_link_share-feature-required @issue-ocis-reva-310 +@api @files_sharing-app-required @public_link_share-feature-required @issue-ocis-reva-310 @skipOnOcis-OCIS-Storage Feature: copying from public link share Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature index e14ed5e6af..1ee29d933b 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @public_link_share-feature-required @issue-ocis-reva-252 +@api @files_sharing-app-required @public_link_share-feature-required @issue-ocis-reva-252 @skipOnOcis-OCIS-Storage Feature: update a public link share Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature index 320ce525b6..bae3bc8201 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @public_link_share-feature-required @skipOnOcis-EOS-Storage @issue-ocis-reva-315 @issue-ocis-reva-316 +@api @files_sharing-app-required @public_link_share-feature-required @skipOnOcis-EOS-Storage @issue-ocis-reva-315 @issue-ocis-reva-316 @skipOnOcis-OCIS-Storage Feature: upload to a public link share diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature index 3beddab015..5183cc0b56 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required +@api @files_sharing-app-required @skipOnOcis-OCIS-Storage Feature: sharing Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature index c63c4f5f69..ca867e9d73 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature @@ -1,4 +1,4 @@ -@api @files_trashbin-app-required +@api @files_trashbin-app-required @skipOnOcis-OCIS-Storage Feature: files and folders can be deleted from the trashbin As a user I want to delete files and folders from the trashbin diff --git a/tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature b/tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature index bea757a7e8..db8b011c31 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature @@ -1,4 +1,4 @@ -@api @files_versions-app-required @skipOnOcis-EOS-Storage @issue-ocis-reva-275 +@api @files_versions-app-required @skipOnOcis-EOS-Storage @issue-ocis-reva-275 @skipOnOcis-OCIS-Storage Feature: dav-versions diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature index 6b5bc6a795..33cb218570 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-reva-14 +@api @issue-ocis-reva-14 @skipOnOcis-OCIS-Storage Feature: move (rename) folder As a user I want to be able to move and rename folders diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature index 7a7701a7c0..86418911b6 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-reva-14 +@api @issue-ocis-reva-14 @skipOnOcis-OCIS-Storage Feature: users cannot move (rename) a folder to a blacklisted name As an administrator I want to be able to prevent users from moving (renaming) folders to specified names diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature index d05160f7bb..d484387805 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-reva-14 +@api @issue-ocis-reva-14 @skipOnOcis-OCIS-Storage Feature: move (rename) file As a user I want to be able to move and rename files diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature index 75221c1b0a..821f1d55a5 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-reva-14 +@api @issue-ocis-reva-14 @skipOnOcis-OCIS-Storage Feature: users cannot move (rename) a file to a blacklisted name As an administrator I want to be able to prevent users from moving (renaming) files to specified file names diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature index b3dd1a0a9d..dc3fa3e27c 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: download file As a user I want to be able to download files diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature index 5a1df03453..48e42d0a15 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: refuse access As an administrator I want to refuse access to unauthenticated and disabled users diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature index 08d796036c..4d35b8dbe9 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-187 +@api @issue-ocis-187 @skipOnOcis-OCIS-Storage Feature: previews of files downloaded through the webdav API Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature index c7b96e90f3..82fae8072b 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: create folder As a user I want to be able to create folders diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature index 5ce403a669..2de3e80d42 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-reva-57 +@api @issue-ocis-reva-57 @skipOnOcis-OCIS-Storage Feature: set file properties As a user I want to be able to set meta-information about files diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature index af5fee43fa..317072b1a4 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: get file properties As a user I want to be able to get meta-information about files diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature index c3b133ae8f..2ba132f675 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature @@ -1,4 +1,4 @@ -@api +@api @skipOnOcis-OCIS-Storage Feature: upload file As a user I want to be able to upload files From aa858d8d29b569ba69d1f3d7df38f0af3659a26a Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 10:39:10 +0545 Subject: [PATCH 318/346] skip failing oc10 API tests --- .../expected-failures-on-OCIS-storage.txt | 437 ++++++++++++++++++ 1 file changed, 437 insertions(+) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index 3ca62aa25a..3d9ec642c9 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -1001,3 +1001,440 @@ apiWebdavUpload2/uploadFileUsingOldChunking.feature:98 apiWebdavUpload2/uploadFileUsingOldChunking.feature:99 apiWebdavUpload2/uploadFileUsingOldChunking.feature:100 apiWebdavUpload2/uploadFileUsingOldChunking.feature:101 +# +# Failures that probably happen because of issues in CI to setup the skeleton folder and to delete user data after the test +apiAuth/webDavAuth.feature:13 +apiAuthWebDav/webDavDELETEAuth.feature:15 +apiAuthWebDav/webDavDELETEAuth.feature:25 +apiAuthWebDav/webDavDELETEAuth.feature:45 +apiAuthWebDav/webDavDELETEAuth.feature:55 +apiAuthWebDav/webDavDELETEAuth.feature:67 +apiAuthWebDav/webDavLOCKAuth.feature:15 +apiAuthWebDav/webDavLOCKAuth.feature:27 +apiAuthWebDav/webDavLOCKAuth.feature:49 +apiAuthWebDav/webDavLOCKAuth.feature:59 +apiAuthWebDav/webDavLOCKAuth.feature:71 +apiAuthWebDav/webDavMKCOLAuth.feature:14 +apiAuthWebDav/webDavMKCOLAuth.feature:26 +apiAuthWebDav/webDavMKCOLAuth.feature:49 +apiAuthWebDav/webDavMKCOLAuth.feature:59 +apiAuthWebDav/webDavMKCOLAuth.feature:71 +apiAuthWebDav/webDavMOVEAuth.feature:14 +apiAuthWebDav/webDavMOVEAuth.feature:26 +apiAuthWebDav/webDavMOVEAuth.feature:45 +apiAuthWebDav/webDavMOVEAuth.feature:55 +apiAuthWebDav/webDavMOVEAuth.feature:67 +apiAuthWebDav/webDavPOSTAuth.feature:15 +apiAuthWebDav/webDavPOSTAuth.feature:27 +apiAuthWebDav/webDavPOSTAuth.feature:46 +apiAuthWebDav/webDavPOSTAuth.feature:56 +apiAuthWebDav/webDavPOSTAuth.feature:68 +apiAuthWebDav/webDavPROPFINDAuth.feature:14 +apiAuthWebDav/webDavPROPFINDAuth.feature:26 +apiAuthWebDav/webDavPROPFINDAuth.feature:45 +apiAuthWebDav/webDavPROPFINDAuth.feature:55 +apiAuthWebDav/webDavPROPFINDAuth.feature:67 +apiAuthWebDav/webDavPROPPATCHAuth.feature:15 +apiAuthWebDav/webDavPROPPATCHAuth.feature:27 +apiAuthWebDav/webDavPROPPATCHAuth.feature:46 +apiAuthWebDav/webDavPROPPATCHAuth.feature:56 +apiAuthWebDav/webDavPROPPATCHAuth.feature:68 +apiAuthWebDav/webDavPUTAuth.feature:15 +apiAuthWebDav/webDavPUTAuth.feature:27 +apiAuthWebDav/webDavPUTAuth.feature:49 +apiAuthWebDav/webDavPUTAuth.feature:59 +apiAuthWebDav/webDavPUTAuth.feature:71 +apiFavorites/favorites.feature:28 +apiFavorites/favorites.feature:29 +apiFavorites/favorites.feature:44 +apiFavorites/favorites.feature:45 +apiFavorites/favorites.feature:59 +apiFavorites/favorites.feature:60 +apiFavorites/favorites.feature:75 +apiFavorites/favorites.feature:76 +apiMain/checksums.feature:13 +apiMain/checksums.feature:14 +apiMain/checksums.feature:226 +apiMain/checksums.feature:227 +apiMain/checksums.feature:346 +apiMain/checksums.feature:347 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:22 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:23 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:24 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:25 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:26 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:27 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:28 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:29 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:83 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:84 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:102 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:103 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:104 +apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:105 +apiShareManagement/acceptShares.feature:155 +apiShareManagement/acceptShares.feature:313 +apiShareManagement/acceptSharesToSharesFolder.feature:22 +apiShareManagementBasic/createShare.feature:85 +apiShareManagementBasic/createShare.feature:86 +apiShareManagementBasic/createShare.feature:88 +apiShareManagementBasic/createShare.feature:89 +apiShareManagementBasic/createShare.feature:91 +apiShareManagementBasic/createShare.feature:92 +apiShareManagementBasic/createShare.feature:94 +apiShareManagementBasic/createShare.feature:95 +apiShareManagementBasic/createShare.feature:107 +apiShareManagementBasic/createShare.feature:108 +apiShareManagementBasic/createShare.feature:120 +apiShareManagementBasic/createShare.feature:121 +apiShareManagementBasic/createShare.feature:145 +apiShareManagementBasic/createShare.feature:146 +apiShareManagementBasic/deleteShare.feature:39 +apiShareOperations/accessToShare.feature:20 +apiShareOperations/accessToShare.feature:21 +apiShareOperations/accessToShare.feature:34 +apiShareOperations/accessToShare.feature:35 +apiShareOperations/gettingShares.feature:54 +apiShareOperations/gettingShares.feature:55 +apiSharePublicLink1/changingPublicLinkShare.feature:38 +apiSharePublicLink1/changingPublicLinkShare.feature:74 +apiSharePublicLink1/changingPublicLinkShare.feature:117 +apiSharePublicLink1/changingPublicLinkShare.feature:128 +apiSharePublicLink1/changingPublicLinkShare.feature:139 +apiSharePublicLink1/changingPublicLinkShare.feature:162 +apiSharePublicLink1/changingPublicLinkShare.feature:174 +apiSharePublicLink1/changingPublicLinkShare.feature:185 +apiSharePublicLink1/changingPublicLinkShare.feature:209 +apiSharePublicLink1/changingPublicLinkShare.feature:221 +apiSharePublicLink1/changingPublicLinkShare.feature:232 +apiSharePublicLink1/changingPublicLinkShare.feature:255 +apiSharePublicLink1/createPublicLinkShare.feature:329 +apiSharePublicLink1/createPublicLinkShare.feature:330 +apiSharePublicLink1/createPublicLinkShare.feature:351 +apiSharePublicLink1/createPublicLinkShare.feature:352 +apiSharePublicLink1/createPublicLinkShare.feature:571 +apiSharePublicLink1/createPublicLinkShare.feature:572 +apiSharePublicLink1/createPublicLinkShare.feature:608 +apiSharePublicLink1/createPublicLinkShare.feature:609 +apiSharePublicLink1/createPublicLinkShare.feature:647 +apiSharePublicLink1/createPublicLinkShare.feature:648 +apiSharePublicLink1/createPublicLinkShare.feature:678 +apiSharePublicLink1/createPublicLinkShare.feature:679 +apiSharePublicLink1/createPublicLinkShare.feature:740 +apiSharePublicLink1/createPublicLinkShare.feature:760 +apiSharePublicLink1/createPublicLinkShare.feature:761 +apiSharePublicLink1/createPublicLinkShare.feature:774 +apiSharePublicLink1/createPublicLinkShare.feature:775 +apiSharePublicLink1/deletePublicLinkShare.feature:20 +apiSharePublicLink1/deletePublicLinkShare.feature:21 +apiSharePublicLink1/deletePublicLinkShare.feature:53 +apiSharePublicLink1/deletePublicLinkShare.feature:54 +apiSharePublicLink1/deletePublicLinkShare.feature:70 +apiSharePublicLink1/deletePublicLinkShare.feature:71 +apiSharePublicLink2/copyFromPublicLink.feature:9 +apiSharePublicLink2/copyFromPublicLink.feature:21 +apiSharePublicLink2/copyFromPublicLink.feature:34 +apiSharePublicLink2/copyFromPublicLink.feature:47 +apiSharePublicLink2/copyFromPublicLink.feature:75 +apiSharePublicLink2/copyFromPublicLink.feature:86 +apiSharePublicLink2/copyFromPublicLink.feature:113 +apiSharePublicLink2/copyFromPublicLink.feature:114 +apiSharePublicLink2/copyFromPublicLink.feature:115 +apiSharePublicLink2/copyFromPublicLink.feature:116 +apiSharePublicLink2/copyFromPublicLink.feature:131 +apiSharePublicLink2/copyFromPublicLink.feature:132 +apiSharePublicLink2/copyFromPublicLink.feature:133 +apiSharePublicLink2/copyFromPublicLink.feature:134 +apiSharePublicLink2/copyFromPublicLink.feature:150 +apiSharePublicLink2/copyFromPublicLink.feature:151 +apiSharePublicLink2/copyFromPublicLink.feature:152 +apiSharePublicLink2/copyFromPublicLink.feature:153 +apiSharePublicLink2/multilinkSharing.feature:42 +apiSharePublicLink2/multilinkSharing.feature:43 +apiSharePublicLink2/multilinkSharing.feature:76 +apiSharePublicLink2/multilinkSharing.feature:77 +apiSharePublicLink2/multilinkSharing.feature:105 +apiSharePublicLink2/multilinkSharing.feature:106 +apiSharePublicLink2/multilinkSharing.feature:108 +apiSharePublicLink2/multilinkSharing.feature:157 +apiSharePublicLink2/multilinkSharing.feature:158 +apiSharePublicLink2/multilinkSharing.feature:160 +apiSharePublicLink2/updatePublicLinkShare.feature:77 +apiSharePublicLink2/updatePublicLinkShare.feature:78 +apiSharePublicLink2/updatePublicLinkShare.feature:110 +apiSharePublicLink2/updatePublicLinkShare.feature:111 +apiSharePublicLink2/updatePublicLinkShare.feature:142 +apiSharePublicLink2/updatePublicLinkShare.feature:143 +apiSharePublicLink2/updatePublicLinkShare.feature:173 +apiSharePublicLink2/updatePublicLinkShare.feature:174 +apiSharePublicLink2/updatePublicLinkShare.feature:204 +apiSharePublicLink2/updatePublicLinkShare.feature:205 +apiSharePublicLink2/updatePublicLinkShare.feature:235 +apiSharePublicLink2/updatePublicLinkShare.feature:236 +apiSharePublicLink2/updatePublicLinkShare.feature:266 +apiSharePublicLink2/updatePublicLinkShare.feature:267 +apiSharePublicLink2/updatePublicLinkShare.feature:511 +apiSharePublicLink2/updatePublicLinkShare.feature:512 +apiSharePublicLink2/uploadToPublicLinkShare.feature:92 +apiSharePublicLink2/uploadToPublicLinkShare.feature:111 +apiSharePublicLink2/uploadToPublicLinkShare.feature:129 +apiSharePublicLink2/uploadToPublicLinkShare.feature:227 +apiSharePublicLink2/uploadToPublicLinkShare.feature:246 +apiTrashbin/trashbinDelete.feature:80 +apiTrashbin/trashbinDelete.feature:93 +apiTrashbin/trashbinFilesFolders.feature:20 +apiTrashbin/trashbinFilesFolders.feature:21 +apiTrashbin/trashbinFilesFolders.feature:31 +apiTrashbin/trashbinFilesFolders.feature:32 +apiTrashbin/trashbinFilesFolders.feature:74 +apiTrashbin/trashbinFilesFolders.feature:75 +apiTrashbin/trashbinFilesFolders.feature:186 +apiTrashbin/trashbinFilesFolders.feature:187 +apiTrashbin/trashbinFilesFolders.feature:299 +apiTrashbin/trashbinFilesFolders.feature:300 +apiTrashbin/trashbinFilesFolders.feature:301 +apiTrashbin/trashbinFilesFolders.feature:302 +apiTrashbin/trashbinFilesFolders.feature:303 +apiTrashbin/trashbinFilesFolders.feature:304 +apiTrashbin/trashbinFilesFolders.feature:305 +apiTrashbin/trashbinFilesFolders.feature:306 +apiTrashbin/trashbinFilesFolders.feature:307 +apiTrashbin/trashbinFilesFolders.feature:308 +apiTrashbin/trashbinFilesFolders.feature:309 +apiTrashbin/trashbinFilesFolders.feature:310 +apiTrashbin/trashbinFilesFolders.feature:320 +apiTrashbin/trashbinFilesFolders.feature:321 +apiTrashbin/trashbinRestore.feature:294 +apiTrashbin/trashbinRestore.feature:295 +apiTrashbin/trashbinRestore.feature:309 +apiTrashbin/trashbinRestore.feature:310 +apiVersions/fileVersions.feature:10 +apiVersions/fileVersions.feature:29 +apiVersions/fileVersions.feature:52 +apiVersions/fileVersions.feature:61 +apiVersions/fileVersions.feature:69 +apiVersions/fileVersions.feature:122 +apiVersions/fileVersions.feature:130 +apiWebdavMove1/moveFileAsync.feature:149 +apiWebdavMove1/moveFileAsync.feature:214 +apiWebdavMove1/moveFileAsync.feature:215 +apiWebdavMove1/moveFolder.feature:62 +apiWebdavMove1/moveFolder.feature:63 +apiWebdavMove1/moveFolder.feature:74 +apiWebdavMove1/moveFolder.feature:75 +apiWebdavMove1/moveFolder.feature:86 +apiWebdavMove1/moveFolder.feature:87 +apiWebdavMove1/moveFolder.feature:88 +apiWebdavMove1/moveFolder.feature:89 +apiWebdavMove1/moveFolder.feature:90 +apiWebdavMove1/moveFolder.feature:91 +apiWebdavMove1/moveFolder.feature:92 +apiWebdavMove1/moveFolder.feature:93 +apiWebdavMove1/moveFolder.feature:94 +apiWebdavMove1/moveFolder.feature:95 +apiWebdavMove2/moveFile.feature:21 +apiWebdavMove2/moveFile.feature:22 +apiWebdavMove2/moveFile.feature:34 +apiWebdavMove2/moveFile.feature:35 +apiWebdavMove2/moveFile.feature:45 +apiWebdavMove2/moveFile.feature:46 +apiWebdavMove2/moveFile.feature:57 +apiWebdavMove2/moveFile.feature:58 +apiWebdavMove2/moveFile.feature:68 +apiWebdavMove2/moveFile.feature:69 +apiWebdavMove2/moveFile.feature:114 +apiWebdavMove2/moveFile.feature:115 +apiWebdavMove2/moveFile.feature:162 +apiWebdavMove2/moveFile.feature:163 +apiWebdavMove2/moveFile.feature:209 +apiWebdavMove2/moveFile.feature:210 +apiWebdavMove2/moveFile.feature:231 +apiWebdavMove2/moveFile.feature:232 +apiWebdavMove2/moveFile.feature:281 +apiWebdavMove2/moveFile.feature:282 +apiWebdavMove2/moveFile.feature:292 +apiWebdavMove2/moveFile.feature:303 +apiWebdavMove2/moveFile.feature:304 +apiWebdavMove2/moveFile.feature:305 +apiWebdavMove2/moveFile.feature:306 +apiWebdavMove2/moveFile.feature:307 +apiWebdavMove2/moveFile.feature:308 +apiWebdavMove2/moveFile.feature:309 +apiWebdavMove2/moveFile.feature:310 +apiWebdavMove2/moveFile.feature:311 +apiWebdavMove2/moveFile.feature:312 +apiWebdavMove2/moveFile.feature:313 +apiWebdavMove2/moveFile.feature:314 +apiWebdavOperations/deleteFile.feature:19 +apiWebdavOperations/deleteFile.feature:20 +apiWebdavOperations/deleteFile.feature:33 +apiWebdavOperations/deleteFile.feature:34 +apiWebdavOperations/deleteFile.feature:45 +apiWebdavOperations/deleteFile.feature:46 +apiWebdavOperations/deleteFile.feature:47 +apiWebdavOperations/deleteFile.feature:48 +apiWebdavOperations/deleteFile.feature:49 +apiWebdavOperations/deleteFile.feature:50 +apiWebdavOperations/deleteFile.feature:51 +apiWebdavOperations/deleteFile.feature:52 +apiWebdavOperations/deleteFile.feature:53 +apiWebdavOperations/deleteFile.feature:54 +apiWebdavOperations/deleteFile.feature:55 +apiWebdavOperations/deleteFile.feature:56 +apiWebdavOperations/deleteFile.feature:66 +apiWebdavOperations/deleteFile.feature:67 +apiWebdavOperations/deleteFile.feature:68 +apiWebdavOperations/deleteFile.feature:69 +apiWebdavOperations/deleteFile.feature:70 +apiWebdavOperations/deleteFile.feature:71 +apiWebdavOperations/deleteFolder.feature:19 +apiWebdavOperations/deleteFolder.feature:20 +apiWebdavOperations/deleteFolder.feature:32 +apiWebdavOperations/deleteFolder.feature:33 +apiWebdavOperations/deleteFolder.feature:47 +apiWebdavOperations/deleteFolder.feature:48 +apiWebdavOperations/deleteFolderContents.feature:31 +apiWebdavOperations/deleteFolderContents.feature:32 +apiWebdavOperations/downloadFile.feature:19 +apiWebdavOperations/downloadFile.feature:20 +apiWebdavOperations/downloadFile.feature:40 +apiWebdavOperations/downloadFile.feature:41 +apiWebdavOperations/downloadFile.feature:60 +apiWebdavOperations/downloadFile.feature:61 +apiWebdavOperations/downloadFile.feature:87 +apiWebdavOperations/downloadFile.feature:103 +apiWebdavOperations/downloadFile.feature:104 +apiWebdavOperations/downloadFile.feature:116 +apiWebdavOperations/downloadFile.feature:117 +apiWebdavOperations/downloadFile.feature:126 +apiWebdavOperations/downloadFile.feature:127 +apiWebdavOperations/downloadFile.feature:128 +apiWebdavOperations/downloadFile.feature:129 +apiWebdavOperations/downloadFile.feature:130 +apiWebdavOperations/downloadFile.feature:131 +apiWebdavProperties1/copyFile.feature:22 +apiWebdavProperties1/copyFile.feature:23 +apiWebdavProperties1/copyFile.feature:33 +apiWebdavProperties1/copyFile.feature:34 +apiWebdavProperties1/copyFile.feature:45 +apiWebdavProperties1/copyFile.feature:46 +apiWebdavProperties1/copyFile.feature:183 +apiWebdavProperties1/copyFile.feature:184 +apiWebdavProperties1/createFolder.feature:18 +apiWebdavProperties1/createFolder.feature:19 +apiWebdavProperties1/createFolder.feature:20 +apiWebdavProperties1/createFolder.feature:21 +apiWebdavProperties1/createFolder.feature:22 +apiWebdavProperties1/createFolder.feature:23 +apiWebdavProperties1/createFolder.feature:24 +apiWebdavProperties1/createFolder.feature:25 +apiWebdavProperties1/createFolder.feature:26 +apiWebdavProperties1/createFolder.feature:27 +apiWebdavProperties1/createFolder.feature:28 +apiWebdavProperties1/createFolder.feature:29 +apiWebdavProperties1/createFolder.feature:30 +apiWebdavProperties1/createFolder.feature:31 +apiWebdavProperties1/createFolder.feature:32 +apiWebdavProperties1/createFolder.feature:44 +apiWebdavProperties1/createFolder.feature:45 +apiWebdavProperties1/createFolder.feature:56 +apiWebdavProperties1/createFolder.feature:57 +apiWebdavProperties1/setFileProperties.feature:20 +apiWebdavProperties1/setFileProperties.feature:21 +apiWebdavProperties1/setFileProperties.feature:45 +apiWebdavProperties1/setFileProperties.feature:46 +apiWebdavProperties1/setFileProperties.feature:76 +apiWebdavProperties1/setFileProperties.feature:77 +apiWebdavProperties1/setFileProperties.feature:80 +apiWebdavProperties2/getFileProperties.feature:19 +apiWebdavProperties2/getFileProperties.feature:20 +apiWebdavProperties2/getFileProperties.feature:21 +apiWebdavProperties2/getFileProperties.feature:22 +apiWebdavProperties2/getFileProperties.feature:23 +apiWebdavProperties2/getFileProperties.feature:24 +apiWebdavProperties2/getFileProperties.feature:25 +apiWebdavProperties2/getFileProperties.feature:26 +apiWebdavProperties2/getFileProperties.feature:38 +apiWebdavProperties2/getFileProperties.feature:42 +apiWebdavProperties2/getFileProperties.feature:58 +apiWebdavProperties2/getFileProperties.feature:62 +apiWebdavProperties2/getFileProperties.feature:65 +apiWebdavProperties2/getFileProperties.feature:69 +apiWebdavProperties2/getFileProperties.feature:81 +apiWebdavProperties2/getFileProperties.feature:82 +apiWebdavProperties2/getFileProperties.feature:83 +apiWebdavProperties2/getFileProperties.feature:84 +apiWebdavProperties2/getFileProperties.feature:85 +apiWebdavProperties2/getFileProperties.feature:86 +apiWebdavProperties2/getFileProperties.feature:87 +apiWebdavProperties2/getFileProperties.feature:88 +apiWebdavProperties2/getFileProperties.feature:89 +apiWebdavProperties2/getFileProperties.feature:90 +apiWebdavProperties2/getFileProperties.feature:102 +apiWebdavProperties2/getFileProperties.feature:103 +apiWebdavProperties2/getFileProperties.feature:114 +apiWebdavProperties2/getFileProperties.feature:115 +apiWebdavProperties2/getFileProperties.feature:339 +apiWebdavProperties2/getFileProperties.feature:340 +apiWebdavProperties2/getFileProperties.feature:351 +apiWebdavProperties2/getFileProperties.feature:352 +apiWebdavProperties2/getFileProperties.feature:363 +apiWebdavProperties2/getFileProperties.feature:364 +apiWebdavUpload1/uploadFile.feature:20 +apiWebdavUpload1/uploadFile.feature:21 +apiWebdavUpload1/uploadFile.feature:22 +apiWebdavUpload1/uploadFile.feature:23 +apiWebdavUpload1/uploadFile.feature:24 +apiWebdavUpload1/uploadFile.feature:25 +apiWebdavUpload1/uploadFile.feature:26 +apiWebdavUpload1/uploadFile.feature:27 +apiWebdavUpload1/uploadFile.feature:35 +apiWebdavUpload1/uploadFile.feature:36 +apiWebdavUpload1/uploadFile.feature:37 +apiWebdavUpload1/uploadFile.feature:38 +apiWebdavUpload1/uploadFile.feature:48 +apiWebdavUpload1/uploadFile.feature:49 +apiWebdavUpload1/uploadFile.feature:50 +apiWebdavUpload1/uploadFile.feature:51 +apiWebdavUpload1/uploadFile.feature:52 +apiWebdavUpload1/uploadFile.feature:53 +apiWebdavUpload1/uploadFile.feature:61 +apiWebdavUpload1/uploadFile.feature:62 +apiWebdavUpload1/uploadFile.feature:63 +apiWebdavUpload1/uploadFile.feature:64 +apiWebdavUpload1/uploadFile.feature:65 +apiWebdavUpload1/uploadFile.feature:66 +apiWebdavUpload1/uploadFile.feature:75 +apiWebdavUpload1/uploadFile.feature:76 +apiWebdavUpload1/uploadFile.feature:77 +apiWebdavUpload1/uploadFile.feature:78 +apiWebdavUpload1/uploadFile.feature:79 +apiWebdavUpload1/uploadFile.feature:80 +apiWebdavUpload1/uploadFile.feature:81 +apiWebdavUpload1/uploadFile.feature:82 +apiWebdavUpload1/uploadFile.feature:83 +apiWebdavUpload1/uploadFile.feature:84 +apiWebdavUpload1/uploadFile.feature:95 +apiWebdavUpload1/uploadFile.feature:96 +apiWebdavUpload1/uploadFile.feature:97 +apiWebdavUpload1/uploadFile.feature:98 +apiWebdavUpload1/uploadFile.feature:123 +apiWebdavUpload1/uploadFile.feature:124 +apiWebdavUpload1/uploadFile.feature:125 +apiWebdavUpload1/uploadFile.feature:126 +apiWebdavUpload1/uploadFile.feature:127 +apiWebdavUpload1/uploadFile.feature:128 +apiWebdavUpload1/uploadFile.feature:129 +apiWebdavUpload1/uploadFile.feature:130 +apiWebdavUpload1/uploadFile.feature:131 +apiWebdavUpload1/uploadFile.feature:132 +apiWebdavUpload1/uploadFile.feature:133 +apiWebdavUpload1/uploadFile.feature:144 +apiWebdavUpload1/uploadFile.feature:145 +apiWebdavUpload1/uploadFile.feature:157 +apiWebdavUpload1/uploadFile.feature:158 +apiWebdavUpload1/uploadFile.feature:171 +apiWebdavUpload1/uploadFile.feature:172 +apiWebdavUpload1/uploadFile.feature:184 +apiWebdavUpload1/uploadFile.feature:185 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:74 From 48033e8016128f059c1b506ae2aed29ae88a5f86 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 10:49:55 +0545 Subject: [PATCH 319/346] skip some newly enabled tests --- .../expected-failures-on-OCIS-storage.txt | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index 3d9ec642c9..87021b5630 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -1438,3 +1438,80 @@ apiWebdavUpload1/uploadFile.feature:172 apiWebdavUpload1/uploadFile.feature:184 apiWebdavUpload1/uploadFile.feature:185 apiWebdavUpload2/uploadFileUsingNewChunking.feature:74 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:36 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:37 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:66 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:67 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:91 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:92 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:94 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:95 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:97 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:98 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:100 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:101 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:115 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:116 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:130 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:131 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:155 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:156 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:179 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:180 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:204 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:205 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:234 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:235 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:254 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:255 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:284 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:285 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:299 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:300 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:316 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:317 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:332 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:333 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:350 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:351 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:355 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:380 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:445 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:446 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:481 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:482 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:485 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:513 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:531 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:549 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:28 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:29 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:43 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:44 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:46 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:58 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:72 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:89 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:107 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:118 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:130 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:163 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:164 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:165 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:166 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:181 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:182 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:183 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:184 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:42 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:43 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:69 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:70 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:97 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:98 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:115 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:116 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:135 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:136 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:153 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:154 From 040ac2b73bfdeb250a139db1a74ed13c472bbead Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 11:12:21 +0545 Subject: [PATCH 320/346] delete only content of nodes/root --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 58072709a5..afc80f6d10 100644 --- a/.drone.star +++ b/.drone.star @@ -118,7 +118,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', 'OCIS_REVA_DATA_ROOT': '%s' % ('/srv/app/tmp/reva/' if storage == 'owncloud' else ''), - 'DELETE_USER_DATA_CMD': '%s' % ('rm -rf /srv/app/tmp/reva/data/*' if storage == 'owncloud' else 'rm -rf /srv/app/tmp/ocis/root/nodes/*'), + 'DELETE_USER_DATA_CMD': '%s' % ('rm -rf /srv/app/tmp/reva/data/*' if storage == 'owncloud' else 'rm -rf /srv/app/tmp/ocis/root/nodes/root/*'), 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', From 2126201344ef5ec5e79704b4fdc8b9fc845c2fde Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 11:24:55 +0545 Subject: [PATCH 321/346] only delete inside root folder, for local tests --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index afc80f6d10..238ec5af64 100644 --- a/.drone.star +++ b/.drone.star @@ -61,7 +61,7 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'ownclo 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', 'OCIS_REVA_DATA_ROOT': '%s' % ('/srv/app/tmp/reva/' if storage == 'owncloud' else ''), - 'DELETE_USER_DATA_CMD': '%s' % ('rm -rf /srv/app/tmp/reva/data/*' if storage == 'owncloud' else 'rm -rf /srv/app/tmp/ocis/root/nodes/*'), + 'DELETE_USER_DATA_CMD': '%s' % ('rm -rf /srv/app/tmp/reva/data/*' if storage == 'owncloud' else 'rm -rf /srv/app/tmp/ocis/root/nodes/root/*'), 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'REVA_LDAP_HOSTNAME':'ldap', From 004d6b7876d7e4fc354cf05855635a591232abfc Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 11:40:35 +0545 Subject: [PATCH 322/346] enable oc10 tests that started to pass --- .../expected-failures-on-OCIS-storage.txt | 278 +----------------- 1 file changed, 1 insertion(+), 277 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index 87021b5630..757a10d569 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -1002,48 +1002,7 @@ apiWebdavUpload2/uploadFileUsingOldChunking.feature:99 apiWebdavUpload2/uploadFileUsingOldChunking.feature:100 apiWebdavUpload2/uploadFileUsingOldChunking.feature:101 # -# Failures that probably happen because of issues in CI to setup the skeleton folder and to delete user data after the test -apiAuth/webDavAuth.feature:13 -apiAuthWebDav/webDavDELETEAuth.feature:15 -apiAuthWebDav/webDavDELETEAuth.feature:25 -apiAuthWebDav/webDavDELETEAuth.feature:45 -apiAuthWebDav/webDavDELETEAuth.feature:55 -apiAuthWebDav/webDavDELETEAuth.feature:67 -apiAuthWebDav/webDavLOCKAuth.feature:15 -apiAuthWebDav/webDavLOCKAuth.feature:27 -apiAuthWebDav/webDavLOCKAuth.feature:49 -apiAuthWebDav/webDavLOCKAuth.feature:59 -apiAuthWebDav/webDavLOCKAuth.feature:71 -apiAuthWebDav/webDavMKCOLAuth.feature:14 -apiAuthWebDav/webDavMKCOLAuth.feature:26 -apiAuthWebDav/webDavMKCOLAuth.feature:49 -apiAuthWebDav/webDavMKCOLAuth.feature:59 -apiAuthWebDav/webDavMKCOLAuth.feature:71 -apiAuthWebDav/webDavMOVEAuth.feature:14 -apiAuthWebDav/webDavMOVEAuth.feature:26 -apiAuthWebDav/webDavMOVEAuth.feature:45 -apiAuthWebDav/webDavMOVEAuth.feature:55 -apiAuthWebDav/webDavMOVEAuth.feature:67 -apiAuthWebDav/webDavPOSTAuth.feature:15 -apiAuthWebDav/webDavPOSTAuth.feature:27 -apiAuthWebDav/webDavPOSTAuth.feature:46 -apiAuthWebDav/webDavPOSTAuth.feature:56 -apiAuthWebDav/webDavPOSTAuth.feature:68 -apiAuthWebDav/webDavPROPFINDAuth.feature:14 -apiAuthWebDav/webDavPROPFINDAuth.feature:26 -apiAuthWebDav/webDavPROPFINDAuth.feature:45 -apiAuthWebDav/webDavPROPFINDAuth.feature:55 -apiAuthWebDav/webDavPROPFINDAuth.feature:67 -apiAuthWebDav/webDavPROPPATCHAuth.feature:15 -apiAuthWebDav/webDavPROPPATCHAuth.feature:27 -apiAuthWebDav/webDavPROPPATCHAuth.feature:46 -apiAuthWebDav/webDavPROPPATCHAuth.feature:56 -apiAuthWebDav/webDavPROPPATCHAuth.feature:68 -apiAuthWebDav/webDavPUTAuth.feature:15 -apiAuthWebDav/webDavPUTAuth.feature:27 -apiAuthWebDav/webDavPUTAuth.feature:49 -apiAuthWebDav/webDavPUTAuth.feature:59 -apiAuthWebDav/webDavPUTAuth.feature:71 +# Failures that need to be investigated apiFavorites/favorites.feature:28 apiFavorites/favorites.feature:29 apiFavorites/favorites.feature:44 @@ -1052,29 +1011,6 @@ apiFavorites/favorites.feature:59 apiFavorites/favorites.feature:60 apiFavorites/favorites.feature:75 apiFavorites/favorites.feature:76 -apiMain/checksums.feature:13 -apiMain/checksums.feature:14 -apiMain/checksums.feature:226 -apiMain/checksums.feature:227 -apiMain/checksums.feature:346 -apiMain/checksums.feature:347 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:22 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:23 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:24 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:25 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:26 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:27 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:28 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:29 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:83 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:84 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:102 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:103 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:104 -apiShareCreateSpecial2/createShareWithInvalidPermissions.feature:105 -apiShareManagement/acceptShares.feature:155 -apiShareManagement/acceptShares.feature:313 -apiShareManagement/acceptSharesToSharesFolder.feature:22 apiShareManagementBasic/createShare.feature:85 apiShareManagementBasic/createShare.feature:86 apiShareManagementBasic/createShare.feature:88 @@ -1090,37 +1026,13 @@ apiShareManagementBasic/createShare.feature:121 apiShareManagementBasic/createShare.feature:145 apiShareManagementBasic/createShare.feature:146 apiShareManagementBasic/deleteShare.feature:39 -apiShareOperations/accessToShare.feature:20 -apiShareOperations/accessToShare.feature:21 -apiShareOperations/accessToShare.feature:34 -apiShareOperations/accessToShare.feature:35 -apiShareOperations/gettingShares.feature:54 -apiShareOperations/gettingShares.feature:55 -apiSharePublicLink1/changingPublicLinkShare.feature:38 apiSharePublicLink1/changingPublicLinkShare.feature:74 -apiSharePublicLink1/changingPublicLinkShare.feature:117 apiSharePublicLink1/changingPublicLinkShare.feature:128 apiSharePublicLink1/changingPublicLinkShare.feature:139 -apiSharePublicLink1/changingPublicLinkShare.feature:162 apiSharePublicLink1/changingPublicLinkShare.feature:174 apiSharePublicLink1/changingPublicLinkShare.feature:185 apiSharePublicLink1/changingPublicLinkShare.feature:209 -apiSharePublicLink1/changingPublicLinkShare.feature:221 -apiSharePublicLink1/changingPublicLinkShare.feature:232 apiSharePublicLink1/changingPublicLinkShare.feature:255 -apiSharePublicLink1/createPublicLinkShare.feature:329 -apiSharePublicLink1/createPublicLinkShare.feature:330 -apiSharePublicLink1/createPublicLinkShare.feature:351 -apiSharePublicLink1/createPublicLinkShare.feature:352 -apiSharePublicLink1/createPublicLinkShare.feature:571 -apiSharePublicLink1/createPublicLinkShare.feature:572 -apiSharePublicLink1/createPublicLinkShare.feature:608 -apiSharePublicLink1/createPublicLinkShare.feature:609 -apiSharePublicLink1/createPublicLinkShare.feature:647 -apiSharePublicLink1/createPublicLinkShare.feature:648 -apiSharePublicLink1/createPublicLinkShare.feature:678 -apiSharePublicLink1/createPublicLinkShare.feature:679 -apiSharePublicLink1/createPublicLinkShare.feature:740 apiSharePublicLink1/createPublicLinkShare.feature:760 apiSharePublicLink1/createPublicLinkShare.feature:761 apiSharePublicLink1/createPublicLinkShare.feature:774 @@ -1135,7 +1047,6 @@ apiSharePublicLink2/copyFromPublicLink.feature:9 apiSharePublicLink2/copyFromPublicLink.feature:21 apiSharePublicLink2/copyFromPublicLink.feature:34 apiSharePublicLink2/copyFromPublicLink.feature:47 -apiSharePublicLink2/copyFromPublicLink.feature:75 apiSharePublicLink2/copyFromPublicLink.feature:86 apiSharePublicLink2/copyFromPublicLink.feature:113 apiSharePublicLink2/copyFromPublicLink.feature:114 @@ -1149,110 +1060,14 @@ apiSharePublicLink2/copyFromPublicLink.feature:150 apiSharePublicLink2/copyFromPublicLink.feature:151 apiSharePublicLink2/copyFromPublicLink.feature:152 apiSharePublicLink2/copyFromPublicLink.feature:153 -apiSharePublicLink2/multilinkSharing.feature:42 -apiSharePublicLink2/multilinkSharing.feature:43 -apiSharePublicLink2/multilinkSharing.feature:76 -apiSharePublicLink2/multilinkSharing.feature:77 -apiSharePublicLink2/multilinkSharing.feature:105 -apiSharePublicLink2/multilinkSharing.feature:106 apiSharePublicLink2/multilinkSharing.feature:108 -apiSharePublicLink2/multilinkSharing.feature:157 -apiSharePublicLink2/multilinkSharing.feature:158 -apiSharePublicLink2/multilinkSharing.feature:160 -apiSharePublicLink2/updatePublicLinkShare.feature:77 -apiSharePublicLink2/updatePublicLinkShare.feature:78 -apiSharePublicLink2/updatePublicLinkShare.feature:110 -apiSharePublicLink2/updatePublicLinkShare.feature:111 -apiSharePublicLink2/updatePublicLinkShare.feature:142 -apiSharePublicLink2/updatePublicLinkShare.feature:143 -apiSharePublicLink2/updatePublicLinkShare.feature:173 -apiSharePublicLink2/updatePublicLinkShare.feature:174 -apiSharePublicLink2/updatePublicLinkShare.feature:204 -apiSharePublicLink2/updatePublicLinkShare.feature:205 -apiSharePublicLink2/updatePublicLinkShare.feature:235 -apiSharePublicLink2/updatePublicLinkShare.feature:236 -apiSharePublicLink2/updatePublicLinkShare.feature:266 -apiSharePublicLink2/updatePublicLinkShare.feature:267 -apiSharePublicLink2/updatePublicLinkShare.feature:511 -apiSharePublicLink2/updatePublicLinkShare.feature:512 apiSharePublicLink2/uploadToPublicLinkShare.feature:92 -apiSharePublicLink2/uploadToPublicLinkShare.feature:111 -apiSharePublicLink2/uploadToPublicLinkShare.feature:129 -apiSharePublicLink2/uploadToPublicLinkShare.feature:227 -apiSharePublicLink2/uploadToPublicLinkShare.feature:246 -apiTrashbin/trashbinDelete.feature:80 -apiTrashbin/trashbinDelete.feature:93 -apiTrashbin/trashbinFilesFolders.feature:20 -apiTrashbin/trashbinFilesFolders.feature:21 -apiTrashbin/trashbinFilesFolders.feature:31 -apiTrashbin/trashbinFilesFolders.feature:32 -apiTrashbin/trashbinFilesFolders.feature:74 -apiTrashbin/trashbinFilesFolders.feature:75 -apiTrashbin/trashbinFilesFolders.feature:186 -apiTrashbin/trashbinFilesFolders.feature:187 -apiTrashbin/trashbinFilesFolders.feature:299 -apiTrashbin/trashbinFilesFolders.feature:300 -apiTrashbin/trashbinFilesFolders.feature:301 -apiTrashbin/trashbinFilesFolders.feature:302 -apiTrashbin/trashbinFilesFolders.feature:303 -apiTrashbin/trashbinFilesFolders.feature:304 -apiTrashbin/trashbinFilesFolders.feature:305 -apiTrashbin/trashbinFilesFolders.feature:306 -apiTrashbin/trashbinFilesFolders.feature:307 -apiTrashbin/trashbinFilesFolders.feature:308 -apiTrashbin/trashbinFilesFolders.feature:309 -apiTrashbin/trashbinFilesFolders.feature:310 -apiTrashbin/trashbinFilesFolders.feature:320 -apiTrashbin/trashbinFilesFolders.feature:321 -apiTrashbin/trashbinRestore.feature:294 -apiTrashbin/trashbinRestore.feature:295 -apiTrashbin/trashbinRestore.feature:309 -apiTrashbin/trashbinRestore.feature:310 -apiVersions/fileVersions.feature:10 -apiVersions/fileVersions.feature:29 -apiVersions/fileVersions.feature:52 apiVersions/fileVersions.feature:61 apiVersions/fileVersions.feature:69 -apiVersions/fileVersions.feature:122 -apiVersions/fileVersions.feature:130 -apiWebdavMove1/moveFileAsync.feature:149 -apiWebdavMove1/moveFileAsync.feature:214 -apiWebdavMove1/moveFileAsync.feature:215 -apiWebdavMove1/moveFolder.feature:62 -apiWebdavMove1/moveFolder.feature:63 -apiWebdavMove1/moveFolder.feature:74 -apiWebdavMove1/moveFolder.feature:75 -apiWebdavMove1/moveFolder.feature:86 -apiWebdavMove1/moveFolder.feature:87 -apiWebdavMove1/moveFolder.feature:88 -apiWebdavMove1/moveFolder.feature:89 -apiWebdavMove1/moveFolder.feature:90 -apiWebdavMove1/moveFolder.feature:91 -apiWebdavMove1/moveFolder.feature:92 -apiWebdavMove1/moveFolder.feature:93 -apiWebdavMove1/moveFolder.feature:94 -apiWebdavMove1/moveFolder.feature:95 apiWebdavMove2/moveFile.feature:21 apiWebdavMove2/moveFile.feature:22 apiWebdavMove2/moveFile.feature:34 apiWebdavMove2/moveFile.feature:35 -apiWebdavMove2/moveFile.feature:45 -apiWebdavMove2/moveFile.feature:46 -apiWebdavMove2/moveFile.feature:57 -apiWebdavMove2/moveFile.feature:58 -apiWebdavMove2/moveFile.feature:68 -apiWebdavMove2/moveFile.feature:69 -apiWebdavMove2/moveFile.feature:114 -apiWebdavMove2/moveFile.feature:115 -apiWebdavMove2/moveFile.feature:162 -apiWebdavMove2/moveFile.feature:163 -apiWebdavMove2/moveFile.feature:209 -apiWebdavMove2/moveFile.feature:210 -apiWebdavMove2/moveFile.feature:231 -apiWebdavMove2/moveFile.feature:232 -apiWebdavMove2/moveFile.feature:281 -apiWebdavMove2/moveFile.feature:282 -apiWebdavMove2/moveFile.feature:292 apiWebdavMove2/moveFile.feature:303 apiWebdavMove2/moveFile.feature:304 apiWebdavMove2/moveFile.feature:305 @@ -1265,59 +1080,12 @@ apiWebdavMove2/moveFile.feature:311 apiWebdavMove2/moveFile.feature:312 apiWebdavMove2/moveFile.feature:313 apiWebdavMove2/moveFile.feature:314 -apiWebdavOperations/deleteFile.feature:19 -apiWebdavOperations/deleteFile.feature:20 apiWebdavOperations/deleteFile.feature:33 apiWebdavOperations/deleteFile.feature:34 -apiWebdavOperations/deleteFile.feature:45 -apiWebdavOperations/deleteFile.feature:46 -apiWebdavOperations/deleteFile.feature:47 -apiWebdavOperations/deleteFile.feature:48 -apiWebdavOperations/deleteFile.feature:49 -apiWebdavOperations/deleteFile.feature:50 -apiWebdavOperations/deleteFile.feature:51 -apiWebdavOperations/deleteFile.feature:52 -apiWebdavOperations/deleteFile.feature:53 -apiWebdavOperations/deleteFile.feature:54 -apiWebdavOperations/deleteFile.feature:55 -apiWebdavOperations/deleteFile.feature:56 -apiWebdavOperations/deleteFile.feature:66 -apiWebdavOperations/deleteFile.feature:67 -apiWebdavOperations/deleteFile.feature:68 -apiWebdavOperations/deleteFile.feature:69 -apiWebdavOperations/deleteFile.feature:70 -apiWebdavOperations/deleteFile.feature:71 -apiWebdavOperations/deleteFolder.feature:19 -apiWebdavOperations/deleteFolder.feature:20 apiWebdavOperations/deleteFolder.feature:32 apiWebdavOperations/deleteFolder.feature:33 apiWebdavOperations/deleteFolder.feature:47 apiWebdavOperations/deleteFolder.feature:48 -apiWebdavOperations/deleteFolderContents.feature:31 -apiWebdavOperations/deleteFolderContents.feature:32 -apiWebdavOperations/downloadFile.feature:19 -apiWebdavOperations/downloadFile.feature:20 -apiWebdavOperations/downloadFile.feature:40 -apiWebdavOperations/downloadFile.feature:41 -apiWebdavOperations/downloadFile.feature:60 -apiWebdavOperations/downloadFile.feature:61 -apiWebdavOperations/downloadFile.feature:87 -apiWebdavOperations/downloadFile.feature:103 -apiWebdavOperations/downloadFile.feature:104 -apiWebdavOperations/downloadFile.feature:116 -apiWebdavOperations/downloadFile.feature:117 -apiWebdavOperations/downloadFile.feature:126 -apiWebdavOperations/downloadFile.feature:127 -apiWebdavOperations/downloadFile.feature:128 -apiWebdavOperations/downloadFile.feature:129 -apiWebdavOperations/downloadFile.feature:130 -apiWebdavOperations/downloadFile.feature:131 -apiWebdavProperties1/copyFile.feature:22 -apiWebdavProperties1/copyFile.feature:23 -apiWebdavProperties1/copyFile.feature:33 -apiWebdavProperties1/copyFile.feature:34 -apiWebdavProperties1/copyFile.feature:45 -apiWebdavProperties1/copyFile.feature:46 apiWebdavProperties1/copyFile.feature:183 apiWebdavProperties1/copyFile.feature:184 apiWebdavProperties1/createFolder.feature:18 @@ -1335,10 +1103,6 @@ apiWebdavProperties1/createFolder.feature:29 apiWebdavProperties1/createFolder.feature:30 apiWebdavProperties1/createFolder.feature:31 apiWebdavProperties1/createFolder.feature:32 -apiWebdavProperties1/createFolder.feature:44 -apiWebdavProperties1/createFolder.feature:45 -apiWebdavProperties1/createFolder.feature:56 -apiWebdavProperties1/createFolder.feature:57 apiWebdavProperties1/setFileProperties.feature:20 apiWebdavProperties1/setFileProperties.feature:21 apiWebdavProperties1/setFileProperties.feature:45 @@ -1356,10 +1120,6 @@ apiWebdavProperties2/getFileProperties.feature:25 apiWebdavProperties2/getFileProperties.feature:26 apiWebdavProperties2/getFileProperties.feature:38 apiWebdavProperties2/getFileProperties.feature:42 -apiWebdavProperties2/getFileProperties.feature:58 -apiWebdavProperties2/getFileProperties.feature:62 -apiWebdavProperties2/getFileProperties.feature:65 -apiWebdavProperties2/getFileProperties.feature:69 apiWebdavProperties2/getFileProperties.feature:81 apiWebdavProperties2/getFileProperties.feature:82 apiWebdavProperties2/getFileProperties.feature:83 @@ -1372,14 +1132,8 @@ apiWebdavProperties2/getFileProperties.feature:89 apiWebdavProperties2/getFileProperties.feature:90 apiWebdavProperties2/getFileProperties.feature:102 apiWebdavProperties2/getFileProperties.feature:103 -apiWebdavProperties2/getFileProperties.feature:114 -apiWebdavProperties2/getFileProperties.feature:115 apiWebdavProperties2/getFileProperties.feature:339 apiWebdavProperties2/getFileProperties.feature:340 -apiWebdavProperties2/getFileProperties.feature:351 -apiWebdavProperties2/getFileProperties.feature:352 -apiWebdavProperties2/getFileProperties.feature:363 -apiWebdavProperties2/getFileProperties.feature:364 apiWebdavUpload1/uploadFile.feature:20 apiWebdavUpload1/uploadFile.feature:21 apiWebdavUpload1/uploadFile.feature:22 @@ -1388,36 +1142,6 @@ apiWebdavUpload1/uploadFile.feature:24 apiWebdavUpload1/uploadFile.feature:25 apiWebdavUpload1/uploadFile.feature:26 apiWebdavUpload1/uploadFile.feature:27 -apiWebdavUpload1/uploadFile.feature:35 -apiWebdavUpload1/uploadFile.feature:36 -apiWebdavUpload1/uploadFile.feature:37 -apiWebdavUpload1/uploadFile.feature:38 -apiWebdavUpload1/uploadFile.feature:48 -apiWebdavUpload1/uploadFile.feature:49 -apiWebdavUpload1/uploadFile.feature:50 -apiWebdavUpload1/uploadFile.feature:51 -apiWebdavUpload1/uploadFile.feature:52 -apiWebdavUpload1/uploadFile.feature:53 -apiWebdavUpload1/uploadFile.feature:61 -apiWebdavUpload1/uploadFile.feature:62 -apiWebdavUpload1/uploadFile.feature:63 -apiWebdavUpload1/uploadFile.feature:64 -apiWebdavUpload1/uploadFile.feature:65 -apiWebdavUpload1/uploadFile.feature:66 -apiWebdavUpload1/uploadFile.feature:75 -apiWebdavUpload1/uploadFile.feature:76 -apiWebdavUpload1/uploadFile.feature:77 -apiWebdavUpload1/uploadFile.feature:78 -apiWebdavUpload1/uploadFile.feature:79 -apiWebdavUpload1/uploadFile.feature:80 -apiWebdavUpload1/uploadFile.feature:81 -apiWebdavUpload1/uploadFile.feature:82 -apiWebdavUpload1/uploadFile.feature:83 -apiWebdavUpload1/uploadFile.feature:84 -apiWebdavUpload1/uploadFile.feature:95 -apiWebdavUpload1/uploadFile.feature:96 -apiWebdavUpload1/uploadFile.feature:97 -apiWebdavUpload1/uploadFile.feature:98 apiWebdavUpload1/uploadFile.feature:123 apiWebdavUpload1/uploadFile.feature:124 apiWebdavUpload1/uploadFile.feature:125 From c5bb4304a7db36825362dccaa244d1006894800c Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 11:44:39 +0545 Subject: [PATCH 323/346] Revert "skip local tests on OCIS storage" This reverts commit e634cc4d552f7b3605e258a5c07cc37e8a31b64f. --- .../features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature | 2 +- .../features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature | 2 +- .../features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature | 2 +- .../apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature | 2 +- .../apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature | 2 +- .../apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature | 2 +- .../apiCapabilities-capabilitiesWithNormalUser.feature | 2 +- .../features/apiOcisSpecific/apiFavorites-favorites.feature | 2 +- .../features/apiOcisSpecific/apiMain-checksums.feature | 2 +- tests/acceptance/features/apiOcisSpecific/apiMain-main.feature | 2 +- ...hareCreateSpecial2-createShareWithInvalidPermissions.feature | 2 +- .../apiOcisSpecific/apiShareManagementBasic-createShare.feature | 2 +- .../apiOcisSpecific/apiShareManagementBasic-deleteShare.feature | 2 +- .../apiOcisSpecific/apiShareOperations-accessToShare.feature | 2 +- .../apiShareOperations-getWebDAVSharePermissions.feature | 2 +- .../apiOcisSpecific/apiShareOperations-gettingShares.feature | 2 +- .../apiSharePublicLink1-createPublicLinkShare.feature | 2 +- .../apiSharePublicLink2-copyFromPublicLink.feature | 2 +- .../apiSharePublicLink2-updatePublicLinkShare.feature | 2 +- .../apiSharePublicLink2-uploadToPublicLinkShare.feature | 2 +- .../features/apiOcisSpecific/apiShareUpdate-updateShare.feature | 2 +- .../features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature | 2 +- .../features/apiOcisSpecific/apiVersions-fileVersions.feature | 2 +- .../features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature | 2 +- .../apiWebdavMove1-moveFolderToBlacklistedName.feature | 2 +- .../features/apiOcisSpecific/apiWebdavMove2-moveFile.feature | 2 +- .../apiWebdavMove2-moveFileToBlacklistedName.feature | 2 +- .../apiOcisSpecific/apiWebdavOperations-downloadFile.feature | 2 +- .../apiOcisSpecific/apiWebdavOperations-refuseAccess.feature | 2 +- .../features/apiOcisSpecific/apiWebdavPreviews-previews.feature | 2 +- .../apiOcisSpecific/apiWebdavProperties1-createFolder.feature | 2 +- .../apiWebdavProperties1-setFileProperties.feature | 2 +- .../apiWebdavProperties2-getFileProperties.feature | 2 +- .../apiOcisSpecific/apiWebdavUpload1-uploadFile.feature | 2 +- 34 files changed, 34 insertions(+), 34 deletions(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature index f670ebc12c..d48ec88c0d 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsGETAuth.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: auth Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature index bd9b9512d5..3b3927e6e4 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPOSTAuth.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: auth Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature index 9e3ed6d659..b8e54da9a7 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthOcs-ocsPUTAuth.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: auth @issue-ocis-reva-30 diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature index 4e4b33759f..fe5c1c6751 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavLOCKAuth.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: LOCK file/folder Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature index 7195bee736..c2291fc5ed 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavMOVEAuth.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: MOVE file/folder Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature index b5ab1abb6d..478ab74660 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiAuthWebDav-webDavPROPFINDAuth.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: get file info using PROPFIND Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature b/tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature index 73239cb4b9..cf833d5b24 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiCapabilities-capabilitiesWithNormalUser.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required Feature: default capabilities for normal user Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature b/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature index df24afe6ed..95f9a387a2 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiFavorites-favorites.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: favorite Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature b/tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature index 5358f55f65..d536985657 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiMain-checksums.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: checksums Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiMain-main.feature b/tests/acceptance/features/apiOcisSpecific/apiMain-main.feature index 443fd1f467..9c4ad50f95 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiMain-main.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiMain-main.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: Other tests related to api @issue-ocis-reva-100 diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature b/tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature index 8089272731..8d08de8b99 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareCreateSpecial2-createShareWithInvalidPermissions.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @issue-ocis-reva-243 @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required @issue-ocis-reva-243 Feature: cannot share resources with invalid permissions Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature index 45a7f54ee3..a1c6880e2d 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required Feature: sharing Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature index 6fb61e565a..3de47db441 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-deleteShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @issue-ocis-reva-243 @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required @issue-ocis-reva-243 Feature: sharing @issue-ocis-reva-356 diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature index adfc1743b3..afcc2da740 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-accessToShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required Feature: sharing Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature index 90d80d1647..f7881377fa 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-getWebDAVSharePermissions.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @issue-ocis-reva-47 @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required @issue-ocis-reva-47 Feature: sharing Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature index 146b07a160..2007a366a5 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareOperations-gettingShares.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required Feature: sharing Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature index 0bab8494b6..235effb6ae 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @public_link_share-feature-required @skipOnOcis-EOS-Storage @issue-ocis-reva-315 @issue-ocis-reva-316 @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required @public_link_share-feature-required @skipOnOcis-EOS-Storage @issue-ocis-reva-315 @issue-ocis-reva-316 Feature: create a public link share diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature index c89e0a01e9..598f75155e 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @public_link_share-feature-required @issue-ocis-reva-310 @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required @public_link_share-feature-required @issue-ocis-reva-310 Feature: copying from public link share Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature index 1ee29d933b..e14ed5e6af 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-updatePublicLinkShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @public_link_share-feature-required @issue-ocis-reva-252 @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required @public_link_share-feature-required @issue-ocis-reva-252 Feature: update a public link share Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature index bae3bc8201..320ce525b6 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-uploadToPublicLinkShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @public_link_share-feature-required @skipOnOcis-EOS-Storage @issue-ocis-reva-315 @issue-ocis-reva-316 @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required @public_link_share-feature-required @skipOnOcis-EOS-Storage @issue-ocis-reva-315 @issue-ocis-reva-316 Feature: upload to a public link share diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature index 5183cc0b56..3beddab015 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature @@ -1,4 +1,4 @@ -@api @files_sharing-app-required @skipOnOcis-OCIS-Storage +@api @files_sharing-app-required Feature: sharing Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature index ca867e9d73..c63c4f5f69 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature @@ -1,4 +1,4 @@ -@api @files_trashbin-app-required @skipOnOcis-OCIS-Storage +@api @files_trashbin-app-required Feature: files and folders can be deleted from the trashbin As a user I want to delete files and folders from the trashbin diff --git a/tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature b/tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature index db8b011c31..bea757a7e8 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiVersions-fileVersions.feature @@ -1,4 +1,4 @@ -@api @files_versions-app-required @skipOnOcis-EOS-Storage @issue-ocis-reva-275 @skipOnOcis-OCIS-Storage +@api @files_versions-app-required @skipOnOcis-EOS-Storage @issue-ocis-reva-275 Feature: dav-versions diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature index 33cb218570..6b5bc6a795 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolder.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-reva-14 @skipOnOcis-OCIS-Storage +@api @issue-ocis-reva-14 Feature: move (rename) folder As a user I want to be able to move and rename folders diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature index 86418911b6..7a7701a7c0 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-reva-14 @skipOnOcis-OCIS-Storage +@api @issue-ocis-reva-14 Feature: users cannot move (rename) a folder to a blacklisted name As an administrator I want to be able to prevent users from moving (renaming) folders to specified names diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature index d484387805..d05160f7bb 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-reva-14 @skipOnOcis-OCIS-Storage +@api @issue-ocis-reva-14 Feature: move (rename) file As a user I want to be able to move and rename files diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature index 821f1d55a5..75221c1b0a 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-reva-14 @skipOnOcis-OCIS-Storage +@api @issue-ocis-reva-14 Feature: users cannot move (rename) a file to a blacklisted name As an administrator I want to be able to prevent users from moving (renaming) files to specified file names diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature index dc3fa3e27c..b3dd1a0a9d 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-downloadFile.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: download file As a user I want to be able to download files diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature index 48e42d0a15..5a1df03453 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavOperations-refuseAccess.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: refuse access As an administrator I want to refuse access to unauthenticated and disabled users diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature index 4d35b8dbe9..08d796036c 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavPreviews-previews.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-187 @skipOnOcis-OCIS-Storage +@api @issue-ocis-187 Feature: previews of files downloaded through the webdav API Background: diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature index 82fae8072b..c7b96e90f3 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: create folder As a user I want to be able to create folders diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature index 2de3e80d42..5ce403a669 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-setFileProperties.feature @@ -1,4 +1,4 @@ -@api @issue-ocis-reva-57 @skipOnOcis-OCIS-Storage +@api @issue-ocis-reva-57 Feature: set file properties As a user I want to be able to set meta-information about files diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature index 317072b1a4..af5fee43fa 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: get file properties As a user I want to be able to get meta-information about files diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature index 2ba132f675..c3b133ae8f 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavUpload1-uploadFile.feature @@ -1,4 +1,4 @@ -@api @skipOnOcis-OCIS-Storage +@api Feature: upload file As a user I want to be able to upload files From b501e73a89e38c869f88711043610f049f18fe51 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 11:47:49 +0545 Subject: [PATCH 324/346] skip only those local tests that fail --- .../apiShareManagementBasic-createShare.feature | 2 +- .../apiSharePublicLink1-createPublicLinkShare.feature | 4 ++-- .../apiSharePublicLink2-copyFromPublicLink.feature | 8 ++++---- .../apiOcisSpecific/apiShareUpdate-updateShare.feature | 2 +- .../apiOcisSpecific/apiTrashbin-trashbinDelete.feature | 1 + .../apiWebdavMove1-moveFolderToBlacklistedName.feature | 2 +- .../apiWebdavProperties1-createFolder.feature | 2 +- .../apiWebdavProperties2-getFileProperties.feature | 4 ++-- 8 files changed, 13 insertions(+), 12 deletions(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature index a1c6880e2d..772938353d 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareManagementBasic-createShare.feature @@ -83,7 +83,7 @@ Feature: sharing | 1 | 100 | | 2 | 200 | - @issue-ocis-reva-372 @issue-ocis-reva-243 + @issue-ocis-reva-372 @issue-ocis-reva-243 @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: sharing subfolder of already shared folder, GET result is correct Given using OCS API version "" diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature index 235effb6ae..227bbce627 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink1-createPublicLinkShare.feature @@ -5,7 +5,7 @@ Feature: create a public link share Background: Given user "Alice" has been created with default attributes and skeleton files - @issue-37605 + @issue-37605 @skipOnOcis-OCIS-Storage # after fixing all issues make the oC10 scenario like this one, and delete this scenario Scenario: Get the mtime of a file inside a folder shared by public link using new webDAV version (run on OCIS) Given user "Alice" has created folder "testFolder" @@ -17,7 +17,7 @@ Feature: create a public link share And as "Alice" the mtime of the file "testFolder/file.txt" should be "Thu, 08 Aug 2019 04:18:13 GMT" And the mtime of file "file.txt" in the last shared public link using the WebDAV API should be "Thu, 08 Aug 2019 04:18:13 GMT" - @issue-37605 + @issue-37605 @skipOnOcis-OCIS-Storage # after fixing all issues make the oC10 scenario like this one, and delete this scenario Scenario: overwriting a file changes its mtime (new public webDAV API) (run on OCIS) Given user "Alice" has created folder "testFolder" diff --git a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature index 598f75155e..c364374c8c 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiSharePublicLink2-copyFromPublicLink.feature @@ -6,7 +6,7 @@ Feature: copying from public link share And user "Alice" has created folder "/PARENT" And the administrator has enabled DAV tech_preview - @issue-ocis-reva-373 @issue-core-37683 + @issue-ocis-reva-373 @issue-core-37683 @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario: Copy folder within a public link folder to the same folder name as an already existing file Given user "Alice" has created folder "/PARENT/testFolder" @@ -22,7 +22,7 @@ Feature: copying from public link share And the content of file "/PARENT/testFolder/testfile.txt" for user "Alice" should be "some data" And the content of file "/PARENT/copy1.txt" for user "Alice" should be "some data 1" - @issue-ocis-reva-373 @issue-core-37683 + @issue-ocis-reva-373 @issue-core-37683 @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario: Copy file within a public link folder to a file with name same as an existing folder Given user "Alice" has uploaded file with content "some data" to "/PARENT/testfile.txt" @@ -37,7 +37,7 @@ Feature: copying from public link share And as "Alice" file "/PARENT/new-folder" should exist And the content of file "/PARENT/testfile.txt" for user "Alice" should be "some data" - @issue-ocis-reva-368 + @issue-ocis-reva-368 @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Copy file within a public link folder to a file with unusual destination names Given user "Alice" has uploaded file with content "some data" to "/PARENT/testfile.txt" @@ -53,7 +53,7 @@ Feature: copying from public link share | testfile.txt | | | - @issue-ocis-reva-368 + @issue-ocis-reva-368 @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario: Copy folder within a public link folder to a folder with unusual destination names Given user "Alice" has created folder "/PARENT/testFolder" diff --git a/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature b/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature index 3beddab015..f44db6d51e 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiShareUpdate-updateShare.feature @@ -5,7 +5,7 @@ Feature: sharing Given using OCS API version "1" And user "Alice" has been created with default attributes and skeleton files - @skipOnOcis-EOS-Storage @toFixOnOCIS @issue-ocis-reva-243 + @skipOnOcis-EOS-Storage @toFixOnOCIS @issue-ocis-reva-243 @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario: Share ownership change after moving a shared file to another share Given these users have been created with default attributes and without skeleton files: diff --git a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature index c63c4f5f69..419083598a 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature @@ -40,6 +40,7 @@ Feature: files and folders can be deleted from the trashbin @smokeTest @issue-ocis-reva-118 @issue-product-179 + @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario: delete a single file from the trashbin Given user "Alice" has deleted file "/textfile0.txt" diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature index 7a7701a7c0..3d1289d8bf 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove1-moveFolderToBlacklistedName.feature @@ -8,7 +8,7 @@ Feature: users cannot move (rename) a folder to a blacklisted name Given using OCS API version "1" And user "Alice" has been created with default attributes and without skeleton files - @issue-ocis-reva-211 @skipOnOcis-EOS-Storage @issue-ocis-reva-269 + @issue-ocis-reva-211 @skipOnOcis-EOS-Storage @issue-ocis-reva-269 @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Renaming a folder to a name that is banned by default is allowed Given using DAV path diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature index c7b96e90f3..47a0b94ff1 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties1-createFolder.feature @@ -8,7 +8,7 @@ Feature: create folder Given using OCS API version "1" And user "Alice" has been created with default attributes and without skeleton files - @issue-ocis-reva-168 @skipOnOcis-EOS-Storage + @issue-ocis-reva-168 @skipOnOcis-EOS-Storage @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: try to create a folder that already exists Given using DAV path diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature index af5fee43fa..bed40e5c98 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature @@ -8,7 +8,7 @@ Feature: get file properties Given using OCS API version "1" And user "Alice" has been created with default attributes and without skeleton files - @issue-ocis-reva-214 + @issue-ocis-reva-214 @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Do a PROPFIND of various file names Given using DAV path @@ -25,7 +25,7 @@ Feature: get file properties | new | /file #2.txt | dav\/files\/%username%\/file%20%232\.txt | | new | /file &2.txt | dav\/files\/%username%\/file%20&2\.txt | - @issue-ocis-reva-214 @issue-ocis-reva-265 @skipOnOcis-EOS-Storage + @issue-ocis-reva-214 @issue-ocis-reva-265 @skipOnOcis-EOS-Storage @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Do a PROPFIND of various file names Given using DAV path From f75a2520f2b7656240d48d612d18a5383e80eff3 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 11:59:40 +0545 Subject: [PATCH 325/346] skip only those local tests that fail 2 --- .../features/apiOcisSpecific/apiWebdavMove2-moveFile.feature | 4 ++-- .../apiWebdavMove2-moveFileToBlacklistedName.feature | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature index d05160f7bb..240a259c03 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFile.feature @@ -8,7 +8,7 @@ Feature: move (rename) file Given using OCS API version "1" And user "Alice" has been created with default attributes and skeleton files - @issue-ocis-reva-211 + @issue-ocis-reva-211 @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: rename a file into an invalid filename Given using DAV path @@ -20,7 +20,7 @@ Feature: move (rename) file | old | | new | - @issue-ocis-reva-211 + @issue-ocis-reva-211 @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Renaming a file to a path with extension .part is possible Given using DAV path diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature index 75221c1b0a..9f82828cff 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavMove2-moveFileToBlacklistedName.feature @@ -8,7 +8,7 @@ Feature: users cannot move (rename) a file to a blacklisted name Given using OCS API version "1" And user "Alice" has been created with default attributes and skeleton files - @issue-ocis-reva-211 + @issue-ocis-reva-211 @skipOnOcis-OCIS-Storage # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: rename a file to a filename that is banned by default Given using DAV path From 385cb933ca9eebfc33e5dd16bf3223268e62a46d Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 12:13:43 +0545 Subject: [PATCH 326/346] more adjustments to expected failures! --- tests/acceptance/expected-failures-on-OCIS-storage.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index 757a10d569..528273f4ca 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -496,8 +496,6 @@ apiTrashbin/trashbinFilesFolders.feature:89 apiTrashbin/trashbinFilesFolders.feature:90 apiTrashbin/trashbinFilesFolders.feature:104 apiTrashbin/trashbinFilesFolders.feature:105 -apiTrashbin/trashbinFilesFolders.feature:136 -apiTrashbin/trashbinFilesFolders.feature:137 apiTrashbin/trashbinFilesFolders.feature:217 apiTrashbin/trashbinFilesFolders.feature:218 apiTrashbin/trashbinFilesFolders.feature:235 @@ -1120,6 +1118,10 @@ apiWebdavProperties2/getFileProperties.feature:25 apiWebdavProperties2/getFileProperties.feature:26 apiWebdavProperties2/getFileProperties.feature:38 apiWebdavProperties2/getFileProperties.feature:42 +apiWebdavProperties2/getFileProperties.feature:58 +apiWebdavProperties2/getFileProperties.feature:62 +apiWebdavProperties2/getFileProperties.feature:65 +apiWebdavProperties2/getFileProperties.feature:69 apiWebdavProperties2/getFileProperties.feature:81 apiWebdavProperties2/getFileProperties.feature:82 apiWebdavProperties2/getFileProperties.feature:83 From 7f7c330becc8f201e42c0e70b5e8888e06d01b75 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 12:18:30 +0545 Subject: [PATCH 327/346] split tests in 4 parts --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 238ec5af64..8a8ef3dab6 100644 --- a/.drone.star +++ b/.drone.star @@ -2,7 +2,7 @@ config = { 'apiTests': { 'coreBranch': 'master', 'coreCommit': '65ee49ae5dad3af84aa781b98e805fe463baf9fe', - 'numberOfParts': 2 + 'numberOfParts': 4 } } From 3365c0036c368e04c855241844cddf9b7acd38b5 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 12:19:59 +0545 Subject: [PATCH 328/346] better naming of steps --- .drone.star | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.star b/.drone.star index 8a8ef3dab6..570dda3847 100644 --- a/.drone.star +++ b/.drone.star @@ -102,7 +102,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n return { 'kind': 'pipeline', 'type': 'docker', - 'name': 'Core-API-Tests-%s-%s' % (storage, part_number), + 'name': 'Core-API-Tests-%s-storage-%s' % (storage, part_number), 'platform': { 'os': 'linux', 'arch': 'amd64', @@ -112,7 +112,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n revaServer(storage) + cloneCoreRepos(coreBranch, coreCommit) + [ { - 'name': 'oC10ApiTests-%s-%s' % (storage, part_number), + 'name': 'oC10ApiTests-%s-storage-%s' % (storage, part_number), 'image': 'owncloudci/php:7.2', 'pull': 'always', 'environment' : { From dfeec1dd881cb373fe9ab1272c673bf2eacc268b Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 11 Sep 2020 08:40:52 +0200 Subject: [PATCH 329/346] Update reva to butonic ocis-sharing branch Brings partial webdav properties support and versions --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d4e30f8b21..58338fb511 100644 --- a/go.mod +++ b/go.mod @@ -20,4 +20,4 @@ require ( ) // ocis-sharing branch -replace github.com/cs3org/reva => github.com/butonic/reva v0.0.0-20200910140954-a6079f23695f +replace github.com/cs3org/reva => github.com/butonic/reva v0.0.0-20200910205656-164632b889fd diff --git a/go.sum b/go.sum index d1322cad6c..2f1ed102cd 100644 --- a/go.sum +++ b/go.sum @@ -107,8 +107,8 @@ github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40 h1:y4B3+GPxKlrigF1ha5FFErxK+sr6sWxQovRMzwMhejo= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= -github.com/butonic/reva v0.0.0-20200910140954-a6079f23695f h1:mh7Gvg9bBF9bCvmyq3qB3UjZeeoDGHlFIq3AQWCDv1E= -github.com/butonic/reva v0.0.0-20200910140954-a6079f23695f/go.mod h1:2nFeb46NQSd8MliTlPTc+ycYnPwmRFNqB7DXn++TYiY= +github.com/butonic/reva v0.0.0-20200910205656-164632b889fd h1:0r3nx/JU5/JspWWpLCGGacTHa4n/uTXiSIlc6wvaJqo= +github.com/butonic/reva v0.0.0-20200910205656-164632b889fd/go.mod h1:2nFeb46NQSd8MliTlPTc+ycYnPwmRFNqB7DXn++TYiY= github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.2/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= From 0f99853888b1eb766342a6811733d48a87becf16 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 14:18:19 +0545 Subject: [PATCH 330/346] delete passing tests from expected failures list in OCIS --- .../expected-failures-on-OCIS-storage.txt | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index 528273f4ca..9f0ad414de 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -1002,13 +1002,9 @@ apiWebdavUpload2/uploadFileUsingOldChunking.feature:101 # # Failures that need to be investigated apiFavorites/favorites.feature:28 -apiFavorites/favorites.feature:29 apiFavorites/favorites.feature:44 -apiFavorites/favorites.feature:45 apiFavorites/favorites.feature:59 -apiFavorites/favorites.feature:60 apiFavorites/favorites.feature:75 -apiFavorites/favorites.feature:76 apiShareManagementBasic/createShare.feature:85 apiShareManagementBasic/createShare.feature:86 apiShareManagementBasic/createShare.feature:88 @@ -1101,13 +1097,6 @@ apiWebdavProperties1/createFolder.feature:29 apiWebdavProperties1/createFolder.feature:30 apiWebdavProperties1/createFolder.feature:31 apiWebdavProperties1/createFolder.feature:32 -apiWebdavProperties1/setFileProperties.feature:20 -apiWebdavProperties1/setFileProperties.feature:21 -apiWebdavProperties1/setFileProperties.feature:45 -apiWebdavProperties1/setFileProperties.feature:46 -apiWebdavProperties1/setFileProperties.feature:76 -apiWebdavProperties1/setFileProperties.feature:77 -apiWebdavProperties1/setFileProperties.feature:80 apiWebdavProperties2/getFileProperties.feature:19 apiWebdavProperties2/getFileProperties.feature:20 apiWebdavProperties2/getFileProperties.feature:21 @@ -1118,10 +1107,6 @@ apiWebdavProperties2/getFileProperties.feature:25 apiWebdavProperties2/getFileProperties.feature:26 apiWebdavProperties2/getFileProperties.feature:38 apiWebdavProperties2/getFileProperties.feature:42 -apiWebdavProperties2/getFileProperties.feature:58 -apiWebdavProperties2/getFileProperties.feature:62 -apiWebdavProperties2/getFileProperties.feature:65 -apiWebdavProperties2/getFileProperties.feature:69 apiWebdavProperties2/getFileProperties.feature:81 apiWebdavProperties2/getFileProperties.feature:82 apiWebdavProperties2/getFileProperties.feature:83 @@ -1163,7 +1148,6 @@ apiWebdavUpload1/uploadFile.feature:171 apiWebdavUpload1/uploadFile.feature:172 apiWebdavUpload1/uploadFile.feature:184 apiWebdavUpload1/uploadFile.feature:185 -apiWebdavUpload2/uploadFileUsingNewChunking.feature:74 apiShareToSharesManagementBasic/createShareToSharesFolder.feature:36 apiShareToSharesManagementBasic/createShareToSharesFolder.feature:37 apiShareToSharesManagementBasic/createShareToSharesFolder.feature:66 From c35527c0226b6b9dd69b4f42ee289f351cbb0a62 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 14:25:22 +0545 Subject: [PATCH 331/346] rearange expected failures on OCIS storage to reduce diff with expected failures on OC storage --- .../expected-failures-on-OCIS-storage.txt | 149 +++++++++--------- 1 file changed, 74 insertions(+), 75 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index 9f0ad414de..4b062098b8 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -205,8 +205,80 @@ apiShareManagementBasic/createShare.feature:269 apiShareManagementBasic/createShare.feature:270 # # https://github.com/owncloud/ocis-reva/issues/356 Fields missing in delete share OCS response -apiShareManagementBasic/deleteShare.feature:36 -apiShareManagementBasic/deleteShare.feature:37 +# https://github.com/owncloud/product/issues/203 file_target in share response +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:36 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:37 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:66 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:67 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:91 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:92 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:94 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:95 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:97 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:98 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:100 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:101 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:115 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:116 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:130 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:131 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:155 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:156 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:179 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:180 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:204 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:205 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:234 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:235 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:254 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:255 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:284 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:285 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:299 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:300 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:316 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:317 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:332 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:333 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:350 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:351 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:355 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:380 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:445 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:446 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:481 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:482 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:485 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:513 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:531 +apiShareToSharesManagementBasic/createShareToSharesFolder.feature:549 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:28 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:29 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:43 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:44 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:46 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:58 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:72 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:89 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:107 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:118 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:130 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:163 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:164 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:165 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:166 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:181 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:182 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:183 +apiShareToSharesManagementBasic/deleteShareFromShares.feature:184 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:42 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:43 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:69 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:70 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:97 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:98 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:135 +apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:136 # # https://github.com/owncloud/ocis-reva/issues/260 Sharee retrieves the information about a share -but gets response containing all the shares apiShareOperations/accessToShare.feature:48 @@ -1148,80 +1220,7 @@ apiWebdavUpload1/uploadFile.feature:171 apiWebdavUpload1/uploadFile.feature:172 apiWebdavUpload1/uploadFile.feature:184 apiWebdavUpload1/uploadFile.feature:185 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:36 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:37 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:66 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:67 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:91 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:92 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:94 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:95 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:97 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:98 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:100 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:101 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:115 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:116 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:130 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:131 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:155 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:156 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:179 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:180 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:204 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:205 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:234 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:235 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:254 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:255 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:284 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:285 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:299 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:300 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:316 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:317 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:332 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:333 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:350 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:351 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:355 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:380 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:445 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:446 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:481 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:482 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:485 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:513 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:531 -apiShareToSharesManagementBasic/createShareToSharesFolder.feature:549 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:28 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:29 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:43 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:44 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:46 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:58 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:72 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:89 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:107 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:118 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:130 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:163 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:164 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:165 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:166 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:181 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:182 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:183 -apiShareToSharesManagementBasic/deleteShareFromShares.feature:184 -apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:42 -apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:43 -apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:69 -apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:70 -apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:97 -apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:98 apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:115 apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:116 -apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:135 -apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:136 apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:153 apiShareToSharesManagementBasic/excludeGroupFromReceivingSharesToSharesFolder.feature:154 From 0f46323f99cae9934f1f5385b84e56b62a0e2de3 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 14:41:27 +0545 Subject: [PATCH 332/346] skip some tests that fail because of test infra issues --- .../apiWebdavProperties2-getFileProperties.feature | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature index bed40e5c98..830201e302 100644 --- a/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature +++ b/tests/acceptance/features/apiOcisSpecific/apiWebdavProperties2-getFileProperties.feature @@ -49,7 +49,7 @@ Feature: get file properties | old | /file ?2.txt | | new | /file ?2.txt | - @issue-ocis-reva-214 + @issue-ocis-reva-214 @skipOnOcis-OCIS-Storage @issue-ocis-reva-471 # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Do a PROPFIND of various folder names Given using DAV path @@ -75,7 +75,7 @@ Feature: get file properties | new | /folder #2.txt | dav\/files\/%username%\/folder%20%232\.txt | | new | /folder &2.txt | dav\/files\/%username%\/folder%20&2\.txt | - @issue-ocis-reva-214 @skipOnOcis-EOS-Storage @issue-ocis-reva-265 + @issue-ocis-reva-214 @skipOnOcis-EOS-Storage @issue-ocis-reva-265 @skipOnOcis-OCIS-Storage @issue-ocis-reva-471 # after fixing all issues delete this Scenario and use the one from oC10 core Scenario Outline: Do a PROPFIND of various folder names Given using DAV path From c20a27d7df64b3259c9c56d60d3f73aaf9d08531 Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 14:51:19 +0545 Subject: [PATCH 333/346] more favorite and version tests are passing --- tests/acceptance/expected-failures-on-OCIS-storage.txt | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index 4b062098b8..37e4e4be84 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -1073,10 +1073,6 @@ apiWebdavUpload2/uploadFileUsingOldChunking.feature:100 apiWebdavUpload2/uploadFileUsingOldChunking.feature:101 # # Failures that need to be investigated -apiFavorites/favorites.feature:28 -apiFavorites/favorites.feature:44 -apiFavorites/favorites.feature:59 -apiFavorites/favorites.feature:75 apiShareManagementBasic/createShare.feature:85 apiShareManagementBasic/createShare.feature:86 apiShareManagementBasic/createShare.feature:88 @@ -1128,8 +1124,6 @@ apiSharePublicLink2/copyFromPublicLink.feature:152 apiSharePublicLink2/copyFromPublicLink.feature:153 apiSharePublicLink2/multilinkSharing.feature:108 apiSharePublicLink2/uploadToPublicLinkShare.feature:92 -apiVersions/fileVersions.feature:61 -apiVersions/fileVersions.feature:69 apiWebdavMove2/moveFile.feature:21 apiWebdavMove2/moveFile.feature:22 apiWebdavMove2/moveFile.feature:34 From 668e45b0bc0fe42ddf772d3c1b25d8876b20d15d Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 14:59:24 +0545 Subject: [PATCH 334/346] deleting not existing test suite --- tests/acceptance/expected-failures-on-OCIS-storage.txt | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index 37e4e4be84..c850ba2e3e 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -192,18 +192,8 @@ apiShareManagement/acceptSharesToSharesFolder.feature:30 apiShareManagement/acceptSharesToSharesFolder.feature:52 # # https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist -apiShareManagementBasic/createShare.feature:169 -apiShareManagementBasic/createShare.feature:170 -apiShareManagementBasic/createShare.feature:194 -apiShareManagementBasic/createShare.feature:195 -apiShareManagementBasic/createShare.feature:417 -apiShareManagementBasic/createShare.feature:418 -# # https://github.com/owncloud/ocis-reva/issues/243 Sharing seems to work but does not work # https://github.com/owncloud/ocis-reva/issues/372 Listing shares via ocs API does not show path for parent folders -apiShareManagementBasic/createShare.feature:269 -apiShareManagementBasic/createShare.feature:270 -# # https://github.com/owncloud/ocis-reva/issues/356 Fields missing in delete share OCS response # https://github.com/owncloud/product/issues/203 file_target in share response apiShareToSharesManagementBasic/createShareToSharesFolder.feature:36 From c1a497898fd8cc5fcd9b6d238c0221a018787efa Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 15:00:21 +0545 Subject: [PATCH 335/346] fix comments --- tests/acceptance/expected-failures-on-OCIS-storage.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index c850ba2e3e..560bd3b83b 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -1,7 +1,7 @@ # this file contains the scenarios from ownCloud10 core API tests that are currently expected to fail -# when run with OC storage +# when run with OCIS storage # -# test scenarios that specifically fail with OC storage (that were tagged skipOnOcis-OC-Storage in core) +# test scenarios that specifically fail with OCIS storage # apiShareManagementBasic/createShare.feature:336 apiShareManagementBasic/createShare.feature:357 From cb4e972dfbdd5a7d835e6f0a8a04ad09e8f5612f Mon Sep 17 00:00:00 2001 From: Artur Neumann Date: Fri, 11 Sep 2020 16:24:39 +0545 Subject: [PATCH 336/346] get rid of not existing tests --- tests/acceptance/expected-failures-on-OCIS-storage.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index 560bd3b83b..64dea60a07 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -3,11 +3,6 @@ # # test scenarios that specifically fail with OCIS storage # -apiShareManagementBasic/createShare.feature:336 -apiShareManagementBasic/createShare.feature:357 -apiShareManagementBasic/createShare.feature:478 -apiShareManagementBasic/createShare.feature:493 -apiShareManagementBasic/createShare.feature:508 apiShareOperations/gettingShares.feature:155 apiShareOperations/gettingShares.feature:156 apiSharePublicLink2/multilinkSharing.feature:181 From 05e030001256dc2248bc589bce22082862b625ee Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 11 Sep 2020 14:58:21 +0200 Subject: [PATCH 337/346] Update reva to v1.2.1-0.20200911111727-51649e37df2d Brings in the new OCIS storage driver --- changelog/unreleased/update-reva-to-20200911.md | 10 ++++++++++ go.mod | 5 +---- go.sum | 5 +++++ 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 changelog/unreleased/update-reva-to-20200911.md diff --git a/changelog/unreleased/update-reva-to-20200911.md b/changelog/unreleased/update-reva-to-20200911.md new file mode 100644 index 0000000000..6f22b3a888 --- /dev/null +++ b/changelog/unreleased/update-reva-to-20200911.md @@ -0,0 +1,10 @@ +Enhancement: update reva to v1.2.1-0.20200911111727-51649e37df2d + +- Update reva to v1.2.1-0.20200911111727-51649e37df2d +- Added new OCIS storage driver ocis [(reva/#1155)](https://github.com/cs3org/reva/pull/1155) +- App provider: fallback to env. variable if 'iopsecret' unset [(reva/#1146)](https://github.com/cs3org/reva/pull/1146) +- Add switch to database [(reva/#1135)](https://github.com/cs3org/reva/pull/1135) +- Add the ocdav HTTP svc to the standalone config [(reva/#1128)](https://github.com/cs3org/reva/pull/1128) + +https://github.com/owncloud/ocis-reva/pull/466 + diff --git a/go.mod b/go.mod index 58338fb511..7c370a282c 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/owncloud/ocis-reva go 1.13 require ( - github.com/cs3org/reva v1.2.1-0.20200826162318-c0f54e1f37ea + github.com/cs3org/reva v1.2.1-0.20200911111727-51649e37df2d github.com/gofrs/uuid v3.3.0+incompatible github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/micro/cli/v2 v2.1.1 @@ -18,6 +18,3 @@ require ( github.com/spf13/viper v1.6.1 gopkg.in/ini.v1 v1.51.1 // indirect ) - -// ocis-sharing branch -replace github.com/cs3org/reva => github.com/butonic/reva v0.0.0-20200910205656-164632b889fd diff --git a/go.sum b/go.sum index 2f1ed102cd..631b23d222 100644 --- a/go.sum +++ b/go.sum @@ -93,6 +93,7 @@ github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt github.com/aws/aws-sdk-go v1.20.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.34.2/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.34.12 h1:7UbBEYDUa4uW0YmRnOd806MS1yoJMcaodBWDzvBShAI= github.com/aws/aws-sdk-go v1.34.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= @@ -169,6 +170,9 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/cs3org/cato v0.0.0-20200626150132-28a40e643719/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= github.com/cs3org/go-cs3apis v0.0.0-20200810113633-b00aca449666 h1:E7VsSSN/2YZLSwrDMJJdAWU11lP7W1qkcXbrslb0PM0= github.com/cs3org/go-cs3apis v0.0.0-20200810113633-b00aca449666/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/reva v1.2.1-0.20200826162318-c0f54e1f37ea/go.mod h1:FvYB+UPpuPCw0hH42qHVR1R2atZyy69METZI/zEaST8= +github.com/cs3org/reva v1.2.1-0.20200911111727-51649e37df2d h1:vohUfrOZVrbbzt7JUICBDX8rjcedLbuEsmuOJtx8mWY= +github.com/cs3org/reva v1.2.1-0.20200911111727-51649e37df2d/go.mod h1:Q1/JB40ZKtlhZUxz+ZqB/O/VlrnQX//NYdPPRPsP0UE= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -1291,6 +1295,7 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.31.1 h1:SfXqXS5hkufcdZ/mHtYCh53P2b+92WQq/DZcKLgsFRs= google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From 111992b4a5a1e9da4f546f643651aa544030cdf7 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 11 Sep 2020 15:21:35 +0200 Subject: [PATCH 338/346] Add OCIS storage expected failures for dav properties --- tests/acceptance/expected-failures-on-OCIS-storage.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index 64dea60a07..a2e3147278 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -1158,6 +1158,10 @@ apiWebdavProperties2/getFileProperties.feature:25 apiWebdavProperties2/getFileProperties.feature:26 apiWebdavProperties2/getFileProperties.feature:38 apiWebdavProperties2/getFileProperties.feature:42 +apiWebdavProperties2/getFileProperties.feature:58 +apiWebdavProperties2/getFileProperties.feature:62 +apiWebdavProperties2/getFileProperties.feature:65 +apiWebdavProperties2/getFileProperties.feature:69 apiWebdavProperties2/getFileProperties.feature:81 apiWebdavProperties2/getFileProperties.feature:82 apiWebdavProperties2/getFileProperties.feature:83 From cc70511bf136037fd3a61af4fc2cf13d68b2cffa Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 11 Sep 2020 13:57:58 +0000 Subject: [PATCH 339/346] Automated changelog update [skip ci] --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0bd82945d..a22fc3588e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The following sections list the changes in ocis-reva unreleased. * Bugfix - Fix default configuration for accessing shares: [#205](https://github.com/owncloud/product/issues/205) * Enhancement - Allow configuring arbitrary storage registry rules: [#193](https://github.com/owncloud/product/issues/193) * Enhancement - Update reva to v1.2.1-0.20200826162318-c0f54e1f37ea: [#454](https://github.com/owncloud/ocis-reva/pull/454) +* Enhancement - Update reva to v1.2.1-0.20200911111727-51649e37df2d: [#466](https://github.com/owncloud/ocis-reva/pull/466) ## Details @@ -63,6 +64,18 @@ The following sections list the changes in ocis-reva unreleased. https://github.com/owncloud/ocis-reva/pull/454 + +* Enhancement - Update reva to v1.2.1-0.20200911111727-51649e37df2d: [#466](https://github.com/owncloud/ocis-reva/pull/466) + + - Update reva to v1.2.1-0.20200911111727-51649e37df2d - Added new OCIS storage driver ocis + [(reva/#1155)](https://github.com/cs3org/reva/pull/1155) - App provider: fallback to + env. variable if 'iopsecret' unset + [(reva/#1146)](https://github.com/cs3org/reva/pull/1146) - Add switch to database + [(reva/#1135)](https://github.com/cs3org/reva/pull/1135) - Add the ocdav HTTP svc to the + standalone config [(reva/#1128)](https://github.com/cs3org/reva/pull/1128) + + https://github.com/owncloud/ocis-reva/pull/466 + # Changelog for [0.13.0] (2020-08-27) The following sections list the changes in ocis-reva 0.13.0. From 7ebef347d7e333af03356b47e716e47e41c4e90b Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 11 Sep 2020 15:43:18 +0200 Subject: [PATCH 340/346] Prepare release 0.14.0 --- changelog/{unreleased => 0.14.0_2020-09-11}/config-cleanup.md | 0 .../{unreleased => 0.14.0_2020-09-11}/storage-registry-rules.md | 0 .../{unreleased => 0.14.0_2020-09-11}/update-reva-to-20200826.md | 0 .../{unreleased => 0.14.0_2020-09-11}/update-reva-to-20200911.md | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename changelog/{unreleased => 0.14.0_2020-09-11}/config-cleanup.md (100%) rename changelog/{unreleased => 0.14.0_2020-09-11}/storage-registry-rules.md (100%) rename changelog/{unreleased => 0.14.0_2020-09-11}/update-reva-to-20200826.md (100%) rename changelog/{unreleased => 0.14.0_2020-09-11}/update-reva-to-20200911.md (100%) diff --git a/changelog/unreleased/config-cleanup.md b/changelog/0.14.0_2020-09-11/config-cleanup.md similarity index 100% rename from changelog/unreleased/config-cleanup.md rename to changelog/0.14.0_2020-09-11/config-cleanup.md diff --git a/changelog/unreleased/storage-registry-rules.md b/changelog/0.14.0_2020-09-11/storage-registry-rules.md similarity index 100% rename from changelog/unreleased/storage-registry-rules.md rename to changelog/0.14.0_2020-09-11/storage-registry-rules.md diff --git a/changelog/unreleased/update-reva-to-20200826.md b/changelog/0.14.0_2020-09-11/update-reva-to-20200826.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200826.md rename to changelog/0.14.0_2020-09-11/update-reva-to-20200826.md diff --git a/changelog/unreleased/update-reva-to-20200911.md b/changelog/0.14.0_2020-09-11/update-reva-to-20200911.md similarity index 100% rename from changelog/unreleased/update-reva-to-20200911.md rename to changelog/0.14.0_2020-09-11/update-reva-to-20200911.md From f28ad0fc6fdfe4030e5ce999db26247957d4102e Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 11 Sep 2020 16:06:06 +0200 Subject: [PATCH 341/346] Adjust expected failures --- tests/acceptance/expected-failures-on-OCIS-storage.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.txt b/tests/acceptance/expected-failures-on-OCIS-storage.txt index a2e3147278..64dea60a07 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.txt +++ b/tests/acceptance/expected-failures-on-OCIS-storage.txt @@ -1158,10 +1158,6 @@ apiWebdavProperties2/getFileProperties.feature:25 apiWebdavProperties2/getFileProperties.feature:26 apiWebdavProperties2/getFileProperties.feature:38 apiWebdavProperties2/getFileProperties.feature:42 -apiWebdavProperties2/getFileProperties.feature:58 -apiWebdavProperties2/getFileProperties.feature:62 -apiWebdavProperties2/getFileProperties.feature:65 -apiWebdavProperties2/getFileProperties.feature:69 apiWebdavProperties2/getFileProperties.feature:81 apiWebdavProperties2/getFileProperties.feature:82 apiWebdavProperties2/getFileProperties.feature:83 From ce69482e09fbc3927fb38ac424e5fc9b347ca252 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 11 Sep 2020 21:45:16 +0545 Subject: [PATCH 342/346] Bump core commit id to get reliable core API test results --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 570dda3847..10c34d9d8f 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '65ee49ae5dad3af84aa781b98e805fe463baf9fe', + 'coreCommit': 'e9850b40657ff78f32cb5585ec00342fe07a5ff2', 'numberOfParts': 4 } } From c6a350bc4a8a2e9a2aa387dbd9daf561fa6c06d3 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 11 Sep 2020 16:57:22 +0000 Subject: [PATCH 343/346] Automated changelog update [skip ci] --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a22fc3588e..eda0af9386 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# Changelog for [unreleased] (UNRELEASED) +# Changelog for [0.14.0] (2020-09-11) -The following sections list the changes in ocis-reva unreleased. +The following sections list the changes in ocis-reva 0.14.0. -[unreleased]: https://github.com/owncloud/ocis-reva/compare/v0.13.0...master +[0.14.0]: https://github.com/owncloud/ocis-reva/compare/v0.13.0...v0.14.0 ## Summary From fda9d77f6e7814068e688ce511c026c33a632ec8 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 14 Sep 2020 13:32:02 +0545 Subject: [PATCH 344/346] Bump core commit for tests 20200914 --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 10c34d9d8f..4bd37ca7b9 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': 'e9850b40657ff78f32cb5585ec00342fe07a5ff2', + 'coreCommit': 'b3404863626519fc2aa758286385290abdf43d52', 'numberOfParts': 4 } } From ed07c5107c6356e85d9cecc12a38f1b4f179a538 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 15 Sep 2020 22:06:17 +0545 Subject: [PATCH 345/346] Bump core commit for tests 20200915 --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 4bd37ca7b9..2d99257ade 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': 'b3404863626519fc2aa758286385290abdf43d52', + 'coreCommit': '39bcf3874f2e388bbe7a7802e2f1e3c6a4b8216a', 'numberOfParts': 4 } } From 40893ae9f66b2886f8510eb5855f9c23db028a28 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 16 Sep 2020 17:38:52 +0545 Subject: [PATCH 346/346] Add StepThroughExtension to acceptance test runner --- .drone.star | 2 +- tests/acceptance/config/behat.yml | 2 ++ vendor-bin/behat/composer.json | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 2d99257ade..4f933c4c98 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ config = { 'apiTests': { 'coreBranch': 'master', - 'coreCommit': '39bcf3874f2e388bbe7a7802e2f1e3c6a4b8216a', + 'coreCommit': 'cb90a3b8bfcddb81f8cf6d84750feaa779105b94', 'numberOfParts': 4 } } diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml index 36ce61dfef..1e3eb22291 100644 --- a/tests/acceptance/config/behat.yml +++ b/tests/acceptance/config/behat.yml @@ -33,3 +33,5 @@ default: jarnaiz\JUnitFormatter\JUnitFormatterExtension: filename: report.xml outputDir: '%paths.base%/../output/' + + Cjm\Behat\StepThroughExtension: ~ diff --git a/vendor-bin/behat/composer.json b/vendor-bin/behat/composer.json index aa22f60040..807eb10a51 100644 --- a/vendor-bin/behat/composer.json +++ b/vendor-bin/behat/composer.json @@ -10,6 +10,7 @@ "behat/mink-extension": "^2.3", "behat/mink-goutte-driver": "^1.2", "behat/mink-selenium2-driver": "^1.4", + "ciaranmcnulty/behat-stepthroughextension" : "dev-master", "jarnaiz/behat-junit-formatter": "^1.3", "rdx/behat-variables": "^1.2", "sensiolabs/behat-page-object-extension": "^2.3",