forked from TrueCloudLab/frostfs-s3-gw
[#165] Fix lint issues
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
This commit is contained in:
parent
fafe4af529
commit
71d82d1cc8
5 changed files with 11 additions and 67 deletions
|
@ -7,7 +7,6 @@ import (
|
||||||
"net/url"
|
"net/url"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -108,61 +107,6 @@ func TestListObjectsWithOldTreeNodes(t *testing.T) {
|
||||||
require.Equal(t, realSize, list.Contents[0].Size)
|
require.Equal(t, realSize, list.Contents[0].Size)
|
||||||
}
|
}
|
||||||
|
|
||||||
func prepareObjects(hc *handlerContext, bktInfo *data.BucketInfo, prefix string, size int) []string {
|
|
||||||
treeID := "version"
|
|
||||||
parentID := uint64(0)
|
|
||||||
if prefix != "" {
|
|
||||||
for _, filename := range strings.Split(prefix, "/") {
|
|
||||||
nodeID, err := hc.treeMock.AddNode(hc.Context(), bktInfo, treeID, parentID, map[string]string{
|
|
||||||
"FileName": filename,
|
|
||||||
})
|
|
||||||
require.NoError(hc.t, err)
|
|
||||||
parentID = nodeID
|
|
||||||
}
|
|
||||||
prefix += "/"
|
|
||||||
}
|
|
||||||
|
|
||||||
objects := make([]string, size)
|
|
||||||
|
|
||||||
for i := range objects {
|
|
||||||
filename := "object" + strconv.Itoa(i)
|
|
||||||
filepath := prefix + filename
|
|
||||||
|
|
||||||
prm := layer.PrmObjectCreate{
|
|
||||||
Container: bktInfo.CID,
|
|
||||||
Filepath: filepath,
|
|
||||||
Payload: nil,
|
|
||||||
}
|
|
||||||
|
|
||||||
id, err := hc.tp.CreateObject(hc.Context(), prm)
|
|
||||||
require.NoError(hc.t, err)
|
|
||||||
|
|
||||||
newVersion := &data.NodeVersion{
|
|
||||||
BaseNodeVersion: data.BaseNodeVersion{
|
|
||||||
OID: id,
|
|
||||||
ETag: "12345678",
|
|
||||||
FilePath: filepath,
|
|
||||||
},
|
|
||||||
IsUnversioned: true,
|
|
||||||
IsCombined: false,
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = hc.treeMock.AddNodeBase(hc.Context(), bktInfo, treeID, parentID, map[string]string{
|
|
||||||
"OID": newVersion.OID.EncodeToString(),
|
|
||||||
"FileName": filename,
|
|
||||||
"IsUnversioned": "true",
|
|
||||||
}, false)
|
|
||||||
require.NoError(hc.t, err)
|
|
||||||
objects[i] = filepath
|
|
||||||
}
|
|
||||||
|
|
||||||
hc.treeMock.Sort()
|
|
||||||
|
|
||||||
sort.Strings(objects)
|
|
||||||
|
|
||||||
return objects
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestListObjectsContextCanceled(t *testing.T) {
|
func TestListObjectsContextCanceled(t *testing.T) {
|
||||||
layerCfg := layer.DefaultCachesConfigs(zaptest.NewLogger(t))
|
layerCfg := layer.DefaultCachesConfigs(zaptest.NewLogger(t))
|
||||||
layerCfg.SessionList.Lifetime = time.Hour
|
layerCfg.SessionList.Lifetime = time.Hour
|
||||||
|
@ -182,23 +126,23 @@ func TestListObjectsContextCanceled(t *testing.T) {
|
||||||
// invoke list again to trigger cache eviction
|
// invoke list again to trigger cache eviction
|
||||||
// (use empty prefix to check that context canceled on replace)
|
// (use empty prefix to check that context canceled on replace)
|
||||||
listObjectsV1(hc, bktName, "", "", "", 2)
|
listObjectsV1(hc, bktName, "", "", "", 2)
|
||||||
checkContextCanceled(t, session.Context)
|
checkContextCanceled(session.Context, t)
|
||||||
|
|
||||||
result2 := listObjectsV2(hc, bktName, "", "", "", "", 2)
|
result2 := listObjectsV2(hc, bktName, "", "", "", "", 2)
|
||||||
session2 := hc.cache.GetListSession(hc.owner, cache.CreateListSessionCacheKey(bktInfo.CID, "", result2.NextContinuationToken))
|
session2 := hc.cache.GetListSession(hc.owner, cache.CreateListSessionCacheKey(bktInfo.CID, "", result2.NextContinuationToken))
|
||||||
// invoke list again to trigger cache eviction
|
// invoke list again to trigger cache eviction
|
||||||
// (use non-empty prefix to check that context canceled on cache eviction)
|
// (use non-empty prefix to check that context canceled on cache eviction)
|
||||||
listObjectsV2(hc, bktName, "o", "", "", "", 2)
|
listObjectsV2(hc, bktName, "o", "", "", "", 2)
|
||||||
checkContextCanceled(t, session2.Context)
|
checkContextCanceled(session2.Context, t)
|
||||||
|
|
||||||
result3 := listObjectsVersions(hc, bktName, "", "", "", "", 2)
|
result3 := listObjectsVersions(hc, bktName, "", "", "", "", 2)
|
||||||
session3 := hc.cache.GetListSession(hc.owner, cache.CreateListSessionCacheKey(bktInfo.CID, "", result3.NextVersionIDMarker))
|
session3 := hc.cache.GetListSession(hc.owner, cache.CreateListSessionCacheKey(bktInfo.CID, "", result3.NextVersionIDMarker))
|
||||||
// invoke list again to trigger cache eviction
|
// invoke list again to trigger cache eviction
|
||||||
listObjectsVersions(hc, bktName, "o", "", "", "", 2)
|
listObjectsVersions(hc, bktName, "o", "", "", "", 2)
|
||||||
checkContextCanceled(t, session3.Context)
|
checkContextCanceled(session3.Context, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkContextCanceled(t *testing.T, ctx context.Context) {
|
func checkContextCanceled(ctx context.Context, t *testing.T) {
|
||||||
select {
|
select {
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
case <-time.After(10 * time.Second):
|
case <-time.After(10 * time.Second):
|
||||||
|
|
|
@ -537,7 +537,7 @@ func (n *layer) initWorkerPool(ctx context.Context, size int, p commonVersionsLi
|
||||||
|
|
||||||
realSize, err := GetObjectSize(oi)
|
realSize, err := GetObjectSize(oi)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
reqLog.Debug("failed to get real object size", zap.Error(err))
|
reqLog.Debug(logs.FailedToGetRealObjectSize, zap.Error(err))
|
||||||
realSize = oi.Size
|
realSize = oi.Size
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -213,4 +213,3 @@ S3_GW_PROXY_CONTRACT=proxy.frostfs
|
||||||
|
|
||||||
# Namespaces configuration
|
# Namespaces configuration
|
||||||
S3_GW_NAMESPACES_CONFIG=namespaces.json
|
S3_GW_NAMESPACES_CONFIG=namespaces.json
|
||||||
|
|
||||||
|
|
|
@ -365,7 +365,7 @@ control:
|
||||||
- 035839e45d472a3b7769a2a1bd7d54c4ccd4943c3b40f547870e83a8fcbfb3ce11
|
- 035839e45d472a3b7769a2a1bd7d54c4ccd4943c3b40f547870e83a8fcbfb3ce11
|
||||||
- 028f42cfcb74499d7b15b35d9bff260a1c8d27de4f446a627406a382d8961486d6
|
- 028f42cfcb74499d7b15b35d9bff260a1c8d27de4f446a627406a382d8961486d6
|
||||||
grpc:
|
grpc:
|
||||||
endpoint: localhost:8083
|
endpoint: localhost:8083
|
||||||
```
|
```
|
||||||
|
|
||||||
| Parameter | Type | SIGHUP reload | Default value | Description |
|
| Parameter | Type | SIGHUP reload | Default value | Description |
|
||||||
|
@ -643,7 +643,7 @@ FrostfsID contract configuration. To enable this functionality the `rpc_endpoint
|
||||||
```yaml
|
```yaml
|
||||||
frostfsid:
|
frostfsid:
|
||||||
contract: frostfsid.frostfs
|
contract: frostfsid.frostfs
|
||||||
validation:
|
validation:
|
||||||
enabled: false
|
enabled: false
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -693,10 +693,10 @@ namespaces:
|
||||||
|-----------|----------|---------------|---------------|-----------------------------------------------------|
|
|-----------|----------|---------------|---------------|-----------------------------------------------------|
|
||||||
| `config` | `string` | yes | | Path to json file with config value for namespaces. |
|
| `config` | `string` | yes | | Path to json file with config value for namespaces. |
|
||||||
|
|
||||||
## `namespaces.config` subsection
|
## `namespaces.config` subsection
|
||||||
|
|
||||||
Example of `namespaces.json`.
|
Example of `namespaces.json`.
|
||||||
Note that config values from `namespaces.json` can override config values for default namespaces
|
Note that config values from `namespaces.json` can override config values for default namespaces
|
||||||
(value for which are fetched from regular config value e.g. [placement-policy](#placement_policy-section)).
|
(value for which are fetched from regular config value e.g. [placement-policy](#placement_policy-section)).
|
||||||
To override config values for default namespaces use namespace names that are provided in `kludge.default_namespaces`.
|
To override config values for default namespaces use namespace names that are provided in `kludge.default_namespaces`.
|
||||||
|
|
||||||
|
@ -705,7 +705,7 @@ To override config values for default namespaces use namespace names that are pr
|
||||||
"namespaces": {
|
"namespaces": {
|
||||||
"namespace1": {
|
"namespace1": {
|
||||||
"location_constraints": {
|
"location_constraints": {
|
||||||
"default": "REP 3",
|
"default": "REP 3",
|
||||||
"test": "{\"replicas\":[{\"count\":1,\"selector\":\"\"}],\"containerBackupFactor\":0,\"selectors\":[],\"filters\":[],\"unique\":false}"
|
"test": "{\"replicas\":[{\"count\":1,\"selector\":\"\"}],\"containerBackupFactor\":0,\"selectors\":[],\"filters\":[],\"unique\":false}"
|
||||||
},
|
},
|
||||||
"copies_numbers": {
|
"copies_numbers": {
|
||||||
|
|
|
@ -139,4 +139,5 @@ const (
|
||||||
ControlAPIListPolicies = "list policies request"
|
ControlAPIListPolicies = "list policies request"
|
||||||
PolicyValidationFailed = "policy validation failed"
|
PolicyValidationFailed = "policy validation failed"
|
||||||
ParseTreeNode = "parse tree node"
|
ParseTreeNode = "parse tree node"
|
||||||
|
FailedToGetRealObjectSize = "failed to get real object size"
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue