Leonard Lyubich
579c3717a5
[ #979 ] adm/subnet: Inherit pre-run functions in child commands
...
Cobra commands don't call `PreRun` functions on parent by default. We
need to do it in `subnet` command of admin utility in order to inherit
viper bindings.
Add `inheritPreRun` function which makes sub-commands to call `PreRun`
functions before its own `PreRun`.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-12-01 17:31:04 +03:00
Leonard Lyubich
6facc26cb9
[ #979 ] adm/subnet: Fix handling of non-notary flag in initClient
...
`initSubnetClient` must call `EnableNotarySupport` only if non-notary
flag is not set.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-12-01 17:31:04 +03:00
Leonard Lyubich
4b8ca75274
[ #979 ] adm: Fix problems after testing
...
Use persistent flags on parent command in order to inherit flags in
sub-commands. Turn on notary mode of morph client in `subnet` command of
admin utility for notary environments.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-12-01 17:31:04 +03:00
Leonard Lyubich
9622c9c858
[ #979 ] adm: Register NNS domain of the deployed contracts
...
Make `deployContracts` method to call `nnsRegisterDomain` in order to
register NNS domain for deployed contracts.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-12-01 17:31:04 +03:00
Leonard Lyubich
2f2ca2e0bd
[ #979 ] adm: Deploy missing contracts during updating
...
Make `nnsResolveHash` function to return declared error on `token not
found` fault exception. Catch this error in `deployContracts` method,
and switch to deployment if updating contract is missing.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-12-01 17:31:04 +03:00
Leonard Lyubich
e8f8e58e90
[ #979 ] adm: Add subnet-related commands
...
Add `subnet` command which contains all subnet-related commands. Add
sub-commands:
* `create` for creation;
* `remove` for removal;
* `get` for reading;
* `admin` for admin management;
* `client` for client management.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-12-01 17:31:04 +03:00
Leonard Lyubich
70f17dc778
[ #979 ] adm: Deploy and update Subnet contract
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-12-01 17:31:04 +03:00
Evgenii Stratonikov
98f288c946
[ #984 ] neofs-adm: fix contract hash check in NNS
...
Don't update if the hash is already there.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-29 11:19:36 +03:00
Evgenii Stratonikov
7765ab3f02
[ #984 ] neofs-adm: replace addRoot
with register
for NNS
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-29 11:19:36 +03:00
Evgenii Stratonikov
63a8b530f6
[ #984 ] neofs-adm: compare NEF.Checksum to check if contract was updated
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-29 11:19:36 +03:00
Evgenii Stratonikov
95893927aa
*: replace neofs-api-go with neofs-sdk-go
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-12 17:29:09 +03:00
Evgenii Stratonikov
088c894f44
[ #733 ] neofs-adm: read contracts on start
...
Fail early and reduce disk operations when reading from archive.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-01 15:17:18 +03:00
Evgenii Stratonikov
0b6350d463
[ #733 ] neofs-adm: fetch contracts release from Github
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-01 15:17:18 +03:00
Evgenii Stratonikov
c1e1b65ad9
[ #733 ] neofs-adm: allow to read contract from tar archive
...
Assume contracts path is tar.gz archive if it is not a directory.
In theory we could support raw tar but it has little value as our
distribution format is tar.gz and this is the primary use-case for this
feature (download and use).
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-01 15:17:18 +03:00
Evgenii Stratonikov
118c3b3cfe
[ #940 ] neofs-adm: print contract version in dump-hashes
...
```
nns (unknown): 7061fbd31562664b58f422c3dee4acfd70dba8af
alphabet 0 (v0.12.1): 2392438eb31100857c0f161c66791872b249aa13
alphabet 1 (v0.12.1): 83ef4226d5d6519ca9c99a5de13b1b5ca223a6ad
alphabet 2 (v0.12.1): 6250927beaa9aa5a00171379dcb7187b0c91d17d
alphabet 3 (v0.12.1): 1d6a2519ba41a139b2ced1bfd5013938271a7578
alphabet 4 (v0.12.1): b65fc7a3c31cf57a90d7eb1c0e9909e4ca69133c
alphabet 5 (v0.12.1): f95b6ff8cd3b027c9911c18115518ad8c5d2f591
alphabet 6 (v0.12.1): 5b17c579bf56884fd68af152432b3b5aee7aee76
audit (v0.12.1): 85fe181f4aa3cbdc94023d97c69001ece0730398
balance (v0.12.1): dc1ec98d9d0c5f9dfade16144defe08cffc5ca55
container (v0.12.1): 1b6e68d299b570e1cb7e86eadfdc06aa2e8e0cc5
neofsid (v0.12.1): 0a64ce753653cc97c0467e1334d9d3678ca8c682
netmap (v0.12.1): 7c5bdb23e36cc7cce95bf42f3ab9e452c2501df1
reputation (v0.12.1): 7ad824fd1eeb1565be2cee3889214b9aa605d2fc
```
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-28 09:35:52 +03:00
Evgenii Stratonikov
751147793f
[ #927 ] neofs-adm: provide better error message if endpoint is missing
...
Note that we cannot mark `--rpc-endpoint` flag as required because
it can be taken from config.
Before:
```
Error: can't create N3 client: failed to get network magic: Post "": unsupported protocol scheme ""
```
Now:
```
Error: can't create N3 client: missing endpoint
```
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 17:47:29 +03:00
Evgenii Stratonikov
f1202a5738
[ #927 ] neofs-adm: fix dump-config command
...
```
Error: can't to initialize context: can't read alphabet wallets dir: open : no such file or directory
```
It needs neither contracts nor wallets, just N3 client.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 17:47:29 +03:00
Evgenii Stratonikov
c93c5e726c
[ #927 ] neofs-adm: add fee flags to morph init
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 17:47:29 +03:00
Evgenii Stratonikov
26e11a732d
[ #927 ] neofs-adm: provide container alias fee on deploy
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 17:47:29 +03:00
Evgenii Stratonikov
f836e7c1dc
[ #888 ] neofs-adm: use constant for update methods
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-12 15:50:22 +03:00
Evgenii Stratonikov
31b3c71457
[ #888 ] neofs-adm: allow to work with multiple NNS versions
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-12 15:50:22 +03:00
Evgenii Stratonikov
6571f9214f
[ #888 ] neofs-adm: update container contract deploy parameters
...
It supports NNS domain and zone now.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-12 15:50:22 +03:00
Evgenii Stratonikov
8ddd0aab55
[ #888 ] neofs-adm: set contract hashes on read
...
Non-alphabet contract are always deployed from committee
so it makes sense to calculate hashes in one place.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-12 15:50:22 +03:00
Evgenii Stratonikov
6bcd4811e2
[ #888 ] neofs-adm: update NNS wrappers
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-12 15:50:22 +03:00
Evgenii Stratonikov
bca41f87af
[ #888 ] neofs-adm: deploy NNS contract first
...
Container contract uses actual NNS interface. This also aleviates some
pain related to update as neofs-adm code itself uses current NNS
version.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-12 15:50:22 +03:00
Evgenii Stratonikov
1177f0ca78
[ #888 ] neofs-adm: deploy contracts with Global scope
...
Container contract now calls NNS contract to register TLD for nice
names. This must be witnessed by a committee.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-12 15:50:22 +03:00
Evgenii Stratonikov
ec27a96b8c
[ #888 ] neofs-adm: dump NNS contract hash
...
This can be useful for debugging.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-12 15:50:22 +03:00
Evgenii Stratonikov
4ccb3d05d8
[ #835 ] neofs-adm: rename contract update method
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-09-30 20:57:24 +03:00
Alex Vanin
3e5c7e0ade
[ #836 ] neofs-adm: Fix proxy contract deploy arguments
...
Proxy contract does not include notary flag because
contract is useless without notary subsystem.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-09-23 09:55:46 +03:00
Alex Vanin
4c30757439
[ #836 ] neofs-adm: Do not define contract owner
...
Contract owners are removed in neofs-contract v0.11.0.
Now side chain committee has rights to update contracts.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-09-23 09:55:46 +03:00
Alex Vanin
ce8a906bb5
[ #834 ] neofs-adm: Update NNS contract during contract update
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-09-22 18:23:59 +03:00
Alex Vanin
d996004d80
[ #834 ] neofs-adm: Use committee signature when updating alphabet contract
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-09-22 18:23:59 +03:00
Alex Vanin
6b3a9e6fcc
[ #834 ] neofs-adm: Update contract update if it exists
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-09-22 18:23:59 +03:00
Alex Vanin
60636d4c1d
[ #834 ] neofs-adm: Throw error if deploy produce non-HALT state
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-09-22 18:23:59 +03:00
Leonard Lyubich
4b7cc6e293
[ #758 ] cmd/neofs-adm: Implement command to refill storage node's GAS
...
Add `refill-gas` sub-command to `morph` command which provides the ability
to refill storage node's GAS.
Command performs some actions from `generate-storage-wallet` runner, so
common code is moved to a separate function `refillGas`.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-08-25 17:07:23 +03:00
Evgenii Stratonikov
f9d9f33461
neofs-adm: use nnsResolveHash
instead of custom code
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-24 12:35:52 +03:00
Evgenii Stratonikov
72b8d919fe
[ #755 ] neofs-adm: allow to filter containers by ID
...
`--cid <cid1> --cid <cid2>` as well as `--cid <cid1>,<cid2>` is supported.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-24 12:35:52 +03:00
Evgenii Stratonikov
00a299c1a4
[ #755 ] neofs-adm: add contract hash flag to dump-containers
...
`--container-contract` flag must be used for deployments without NNS.
Our current testnet sidechain is like this, for example.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-24 12:35:52 +03:00
Evgenii Stratonikov
5072b703bc
[ #755 ] neofs-adm: allow to restore containers
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-24 12:35:52 +03:00
Evgenii Stratonikov
a013dcbab5
[ #755 ] neofs-adm: allow to dump active containers
...
`morph dump-containers` will dump all containers from the
contaner contract. JSON format is chosen to allow manual intervention.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-24 12:35:52 +03:00
Evgenii Stratonikov
58e8d6e1fd
[ #755 ] neofs-adm: print NNS records during initialization
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-24 12:35:52 +03:00
Evgenii Stratonikov
8178c5e69b
[ #757 ] neofs-adm: ensure notary contract is enabled
...
This is the only case we support, it makes sense to fail early.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-19 17:46:10 +03:00
Evgenii Stratonikov
33c3f18b4f
[ #748 ] neofs-adm: allow to update contracts
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-10 12:03:10 +03:00
Pavel Karpy
aa0955f15d
[ #747 ] neofs-adm: Support ~
for paths in config
...
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-08-05 14:44:42 +03:00
Alex Vanin
d8e47e60a7
[ #738 ] neofs-adm: Use constants and reduce code in dump-config
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-08-03 21:03:36 +03:00
Alex Vanin
ddbfb09560
[ #738 ] neofs-adm: Add command to dump NeoFS network config
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-08-03 21:03:36 +03:00
Alex Vanin
37cc702271
[ #738 ] neofs-adm: Set more network configuration values
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-08-03 21:03:36 +03:00
Evgenii Stratonikov
e2cef00497
[ #732 ] neofs-adm: read contract path only on init
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-02 14:28:23 +03:00
Evgenii Stratonikov
a2f6e07b1d
[ #732 ] neofs-adm: read alphabet contract once
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-02 14:28:23 +03:00
Evgenii Stratonikov
8e71773c4a
[ #732 ] neofs-adm: fetch single accounts during the initialization
...
Simplify code and perform error checking before the actual work.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-02 14:28:23 +03:00
Evgenii Stratonikov
018256def8
[ #732 ] neofs-adm: remove debug output
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-02 14:28:23 +03:00
Evgenii Stratonikov
c81008764a
[ #732 ] neofs-adm: fetch native hashes once
...
Retrieve list of native contracts during initialization
in a single query.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-02 14:28:23 +03:00
Evgenii Stratonikov
6a40adcfca
[ #732 ] neofs-adm: get contract path on initialization
...
Simplifies code a bit.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-08-02 14:28:23 +03:00
Evgenii Stratonikov
c332188341
[ #685 ] neofs-adm: generate storage node wallets
...
Initial GAS can be provided both in config and as a CLI argument.
Generating wallet with 0 GAS is currently prohibited.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-30 14:09:51 +03:00
Evgenii Stratonikov
90259b5cc7
[ #685 ] neofs-adm: reduce amount of logs
...
If `init` is run on a dirty network (i.e. with some stages already
done), no transactions are really sent so clean up logs a bit.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-30 14:09:51 +03:00
Evgenii Stratonikov
b95c16879d
[ #686 ] neofs-adm: implement morph force-new-epoch
...
Allow to force epoch change.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-30 14:08:56 +03:00
Evgenii Stratonikov
9c1fb0b55e
[ #728 ] neofs-adm: update to neofs-contract@v0.10.1
...
Add config parameters to netmap and neofs contracts.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-30 12:45:21 +03:00
Evgenii Stratonikov
2290109849
[ #726 ] neofs-adm: use NNSIsAvailable
from neo-go
...
There is no need in writing another wrapper.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-29 10:50:32 +03:00
Evgenii Stratonikov
9e56012760
[ #726 ] neofs-adm: set alphabet contract addresses in NNS
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-29 10:50:32 +03:00
Evgenii Stratonikov
4d65e138f5
[ #726 ] neofs-adm: allow to dump deployed contract hashes
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-29 10:50:32 +03:00
Evgenii Stratonikov
9ef2579afa
[ #726 ] neofs-adm: remove alphabet contract from contract list
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-29 10:50:32 +03:00
Evgenii Stratonikov
cf5f8a8f78
[ #684 ] neofs-adm: transfer gas to the proxy contract
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-26 16:04:05 +03:00
Evgenii Stratonikov
c78350846a
[ #687 ] neofs-adm: set aliases for contract hashes in NNS
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-26 16:04:05 +03:00
Evgenii Stratonikov
df1b26c708
[ #687 ] neofs-adm: register candidates
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-26 16:04:05 +03:00
Evgenii Stratonikov
0efc7b7fee
[ #687 ] neofs-adm: deploy NeoFS contracts
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-26 16:04:05 +03:00
Evgenii Stratonikov
8ea67ec565
[ #687 ] neofs-adm: check for initialization stage completion
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-26 16:04:05 +03:00
Evgenii Stratonikov
c3f7ccaee6
[ #687 ] neofs-adm: set alphabet and notary nodes
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-26 16:04:05 +03:00
Evgenii Stratonikov
425c1db5c0
[ #687 ] neofs-adm: transfer funds to consensus wallets
...
This is the first stage requiring running blockchain.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-26 16:04:05 +03:00
Evgenii Stratonikov
a2cb9cbc49
[ #684 ] neofs-adm: add labels to multisig accounts
...
Also check that correct multisig is generated.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-21 15:23:16 +03:00
Evgenii Stratonikov
be6b8ca179
[ #684 ] neofs-adm: add size validation to generate-alphabet
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-21 15:23:16 +03:00
Evgenii Stratonikov
459fe40758
[ #684 ] neofs-adm: add tests for generate-alphabet
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-21 15:23:16 +03:00
Evgenii Stratonikov
5ca5d9ccf9
[ #684 ] neofs-adm: create wallet right after password input
...
It is pretty annoying to get an error about non-existent directory
after entering 7 passwords.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-21 15:23:16 +03:00
Evgenii Stratonikov
4ebc6f796f
[ #684 ] neofs-adm: generate consensus wallets
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-07-21 15:23:16 +03:00
Alex Vanin
6bf01a0a22
[ #683 ] cmd/neofs-adm: Add CLI flags for morph commands
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-07-13 11:29:39 +03:00