Those errors are fired when it is enough chunks retrieved and error group
cancels other requests.
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
Notaryless environments are not tested at all since a while.
We use neo-go only and it has notary contract enabled.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
Pick up changes from TrueCloudLab/frostfs-sdk-go#198.
gopatch:
```
@@
var user expression
@@
-address.StringToUint160(user.EncodeToString())
+user.ScriptHash()
```
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
Since we have errors defined on the shard-level, it looks strage that we
check an error againt the shard-level error `ErrLockObjectRemoval`, but
then return the metabase-level error. Let's return the same shard-level
error instead.
Since we have errors defined on the shard-level
Signed-off-by: Aleksey Savchuk <a.savchuk@yadro.com>
Currently, it's allowed to inhume or lock an expired object.
Consider the following scenario:
1) An user inhumes or locks an object
2) The object expires
3) GC hasn't yet deleted the object
4) The node loses the associated tombstone or lock
5) Another node replicates tombstone or lock to the first node
In this case, the second node succeeds, which is the desired behavior.
Signed-off-by: Aleksey Savchuk <a.savchuk@yadro.com>
It is used once, it is used only internally and it is single-statement.
I see no justification in having it as a separate function.
It introduces confusion, because we also have NewLocalActor().
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
It is used in `helper` package only, besides unit-tests.
Move unit-tests to the same package, where they belong.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
The old code was there before Copy() method was introduced.
It was also supposed to check errors, however, they are already checked
server-side.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
It was unused and we employ better abstractions now.
gopatch:
```
@@
var a, b expression
@@
-a, b, _ := getRPCClient(...)
+a, b := getRPCClient(...)
```
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
`nns get-records` and `nns tokens` command do not need to sign anything,
so remove useless actor and use invoker directly.
`NewLocalActor()` is only used in `ape` and `nns` packages. `ape`
package seem to use it correctly, only when alphabet wallets are
provided, so no changes there.
Also, remove --alphabet-wallets flag from commands that do not need it.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
It was not possible previously, because GetAllRecords() was not declared
safe in frostfs-contract.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
Placement vector may contain fewer nodes count than it required by policy
due to the outage of the one of the node.
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>