Commit graph

188 commits

Author SHA1 Message Date
Roman Khimov
51ede419af [#44] go.mod: update neofs-api-go to 1.26.1
Fix compatibility with the latest NeoFS nodes (0.20.0). Fixes #44.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2021-05-24 14:45:00 +03:00
Roman Khimov
685c229a97 go.mod: update neofs-api-go to 1.26.0
Fix #39.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2021-05-13 19:26:29 +03:00
Roman Khimov
3bcd3a6289 workflows: enable cgo for coverage test
It's combined with `-race`, so we need cgo there:
  go test: -race requires cgo; enable cgo by setting CGO_ENABLED=1
  make: *** [Makefile:50: cover] Error 2

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2021-05-13 18:57:42 +03:00
Roman Khimov
9735f567af golangci: use stricter settings
Check test code, use more linters and reenable some disabled-by-default golint
checks.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2021-05-13 18:57:42 +03:00
Roman Khimov
df3c87af79 *: fix all comment-related golint warnings
Some of this code is going to be moved to SDK library, so it's important.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2021-05-13 18:57:42 +03:00
Roman Khimov
3173c70eb6 settings: fix godot warnings
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2021-05-13 18:57:42 +03:00
Roman Khimov
b5c08a8e73 misc: drop unused Debug variable
Fix deadcode warning:
misc.go:8:2                   deadcode  `Debug` is unused

We have logging options and this one is not really needed.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2021-05-13 18:57:42 +03:00
Stanislav Bogatyrev
73bd26bc12 docs: Clarify auth scheme
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2021-05-05 16:25:01 +03:00
Roman Khimov
6d9bc994cd CHANGELOG: add more references 2021-04-30 21:46:14 +03:00
Roman Khimov
881136faf1
Merge pull request #36 from roman-khimov/docker-and-changelog
Docker fix and changelog
2021-04-30 21:40:20 +03:00
Roman Khimov
c975496d2a
Merge pull request #35 from realloc/readmez
Improve first contribution experience
2021-04-30 21:24:01 +03:00
Roman Khimov
42ef4f9bc4 CHANGELOG: add 0.15.0 release 2021-04-30 21:18:59 +03:00
Stanislav Bogatyrev
ea66180012 Improve first contribution experience
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2021-04-30 19:45:03 +03:00
Roman Khimov
9ab39fa22d README: mention Docker images 2021-04-30 19:43:51 +03:00
Roman Khimov
7a7d27e894 workflows: use proper make dep for Docker image workflow
`go mod download` changes go.sum making our images "-dirty".
2021-04-30 19:43:06 +03:00
Roman Khimov
37fa2c6757
Merge pull request #34 from roman-khimov/fix-tests
Fix tests, add workflow and makefile targets
2021-04-30 19:19:07 +03:00
Roman Khimov
d5cdcb29c3 workflows: use Ubuntu 20.04 instead of 18.04
18.04 is a bit old.
2021-04-30 19:14:12 +03:00
Roman Khimov
25d273f88e workflows: move linter to tests from builds 2021-04-30 19:09:41 +03:00
Roman Khimov
f05a6eda7d workflows: add testing workflow 2021-04-30 19:08:57 +03:00
Roman Khimov
7ba5aed9ca tokens: fix tests
Broken by afbb9d51f1 which changed some
strings.
2021-04-30 19:02:30 +03:00
Roman Khimov
727ec9b22f
Merge pull request #33 from roman-khimov/add-image-push
Makefile: add simple image-push target
2021-04-30 19:00:54 +03:00
Roman Khimov
93fcaffaaa Makefile: add simple image-push target
And use it in workflow.
2021-04-30 19:00:05 +03:00
Roman Khimov
ebd3ad8842 Makefile: add test and cover targets 2021-04-30 18:59:21 +03:00
Roman Khimov
12859c2e5d metrics: fix linter warning
It's useless, but still we want to be green
  Error: missing cases in switch of type promhttp.HandlerErrorHandling: ContinueOnError (exhaustive)
2021-04-30 17:52:29 +03:00
Roman Khimov
3ee5ad52b6 workflows: use latest Ubuntu for linter
Try to fix
  Error: NotifyContext not declared by package signal (typecheck)
2021-04-30 17:52:29 +03:00
Roman Khimov
59f5f2da10 workflow: fix missing space
The workflow is not valid. .github/workflows/publish_to_dockerhub.yml (Line: 68, Col: 11): Unexpected value 'HUB_TAG:latest'
2021-04-30 17:52:29 +03:00
Roman Khimov
6301a2c6b8 workflow: add workflow to push images to Docker Hub 2021-04-30 17:28:52 +03:00
Roman Khimov
df43caa951 workflows: add build/lint workflows 2021-04-30 17:28:52 +03:00
Roman Khimov
0995dda595 .gitignore: extend with *~ 2021-04-30 17:28:52 +03:00
Roman Khimov
e47cb5f9c6 workflows: add CodeQL workflow 2021-04-30 17:28:52 +03:00
Roman Khimov
90b0613182 README: add something about bearer tokens 2021-04-30 14:31:14 +03:00
Roman Khimov
293debe6db downloader: ensure downloader/uploader header symmetry
Use X-Attribute-* everywhere.
2021-04-30 14:31:14 +03:00
Roman Khimov
e80d147d72 README: rewrite all documentation
I think we can fit into one page with this, thus how-to-check.md was removed
(and it's a bit bloated to me anyway).
2021-04-30 14:31:14 +03:00
Roman Khimov
7a46917781 downloader: limit headers sent to the client to some valid subset
fasthttp doesn't do complete filtering/escaping for us, thus filter here.
2021-04-30 14:31:14 +03:00
Roman Khimov
91c894cb8c downloader: set object/container/owner x-attributes after other ones
Avoid name clashes with regular attributes.
2021-04-30 14:31:14 +03:00
Roman Khimov
f99f9e88a7 connections: make use of keepalive options 2021-04-30 14:31:14 +03:00
Roman Khimov
afbb9d51f1 *: drop github.com/pkg/errors dependency
Use standard error wrapping/unwrapping instead. The conversion is mostly
straightforward, but see grpc/grpc-go#2934 for GRPC `status.FromError`, it
doesn't currently support unwrapping/errors.As(), so we're unwrapping manually
here.
2021-04-30 14:31:14 +03:00
Roman Khimov
ba293a3ff9 connections: refuse to build zero-length pool
Prevent starting a gateway with no nodes configured.
2021-04-30 14:31:14 +03:00
Roman Khimov
61d61a76cc logger: fix infinite recursive call
logger/grpc.go:58:66        staticcheck  SA5007: infinite recursive call
2021-04-30 14:31:14 +03:00
Roman Khimov
d9f9a03625 neofs: fix linter warnings
neofs/client-plant.go:78:1  golint       receiver name cc should be consistent with previous receiver name cp for neofsClientPlant
neofs/client-plant.go:85:1  golint       receiver name cc should be consistent with previous receiver name cp for neofsClientPlant
2021-04-30 14:31:14 +03:00
Roman Khimov
4e4f873786 misc: gofmt -s 2021-04-30 14:31:14 +03:00
Roman Khimov
88e0963240 go.mod: temporarily use nspcc-dev fork of valyala/fasthttp
We need proper chunk processing.
2021-04-30 14:31:14 +03:00
Roman Khimov
ed3c576b70 uploader: drain body buffer before ending request processing
Fixes

2021-04-28T00:03:36.514+0300    debug   uploader/upload.go:64   close temporary multipart/form file     {"cid": "Dxhf4PNprrJHWWTG5RGLdfLkJiSQ3AQqit1MSnEPRkDZ", "address": "Dxhf4PNprrJHWWTG5RGLdfLkJiSQ3AQqit1MSnEPRkDZ/2m8PtaoricLouCn5zE8hAFr3gZEBDCZFe9BEgVJTSocX", "filename": "vid.mp4"}
2021/04/28 00:03:36 error when serving connection "127.0.0.1:8082"<->"127.0.0.1:41390": error when reading request headers: cannot find http request method in "0\r\n\r\n". Buffer size=5, contents: "0\r\n\r\n"
2021-04-30 14:31:14 +03:00
Roman Khimov
b94bfb3b76 app: drop FIXME comment
We've made long way since a428a0b1b3 and it's
just no longer relevant, the fix is there in fasthttp version we use and
streaming works fine.
2021-04-30 14:31:14 +03:00
Roman Khimov
464a0134bd neofs: drop PrepareObjectOnsite option
It's using NeoFS node internal packages which shouldn't ever be used in gate
code, it's not adding any value to the code we have (standard api-go
interfaces work fine).
2021-04-30 14:31:14 +03:00
Roman Khimov
b020cd6652 uploader: fix passing attributes to object 2021-04-30 14:31:14 +03:00
Roman Khimov
ed27e28a30 app: drop unused Worker/jobDone 2021-04-30 14:31:14 +03:00
Roman Khimov
491ae13190 app: add support for TLS key/cert options
Run in TLS mode if anything is specified.
2021-04-15 20:24:49 +03:00
Roman Khimov
a6f63c2bac app: use 1 for weight if not specified or wrong
If we have a number of nodes with unspecified weights they'd all be treated
equal which seems to be fair.
2021-04-15 09:45:43 +03:00
Roman Khimov
f019c97ce8 connections: normalize weights, make config a bit more human-oriented
Current scheme requires people to calculate exact percentages for their
nodes. People are bad with pecentage calculations and it's really inconvenient
if you have more than 3-4 nodes. What I'd like to have is ability to specify
weights like weights, not percentages:
  .._0_WEIGHT=3
  .._1_WEIGHT=1
  .._2_WEIGHT=1

and let the gateway calculate things for me.
2021-04-15 09:45:43 +03:00