Skip to content

Commit 096e46c

Browse files
committed
refactor registrar cli
1 parent 7ac63a9 commit 096e46c

File tree

12 files changed

+87
-61
lines changed

12 files changed

+87
-61
lines changed

go.work.sum

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,25 +38,22 @@ github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8
3838
github.com/swaggo/swag v1.16.4 h1:clWJtd9LStiG3VeijiCfOVODP6VpHtKdQy9ELFG3s1A=
3939
github.com/swaggo/swag v1.16.4/go.mod h1:VBsHJRsDvfYvqoiMKnsdwhNV9LEMHgEDZcyVYX0sxPg=
4040
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
41+
github.com/vedhavyas/go-subkey v1.0.3 h1:iKR33BB/akKmcR2PMlXPBeeODjWLM90EL98OrOGs8CA=
42+
github.com/vedhavyas/go-subkey v1.0.3/go.mod h1:CloUaFQSSTdWnINfBRFjVMkWXZANW+nd8+TI5jYcl6Y=
4143
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
4244
golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
43-
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
4445
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
46+
golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
4547
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
4648
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
4749
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
4850
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
49-
golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
5051
golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
51-
golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
5252
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
5353
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
5454
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
55-
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
5655
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
5756
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
58-
golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
59-
golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
6057
golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM=
6158
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
6259
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,49 @@
11
# New Farm Tool
22

33
## Overview
4+
45
This tool allows users to create a farm account on a specified network.
56

67
## Installation
8+
79
1. Clone the repository:
10+
811
```sh
912
git clone https://github.com/threefoldtech/tfgrid4-sdk-go
1013
```
14+
1115
2. Navigate to the project directory:
16+
1217
```sh
1318
cd tfgrid4-sdk-go/node-registrar/tools/farm
1419
```
20+
1521
3. Build the application:
22+
1623
```sh
1724
go build -o new-farm main.go
1825
```
1926

2027
## Usage
28+
2129
```sh
22-
./new-farm -seed <seed> -network <network> -farm_name <farm_name>
30+
./new-farm -seed <seed> -network <network> -farm-name <farm-name>
2331
```
2432

2533
### Parameters
34+
2635
- `-seed` (required): A hexadecimal string used as a private key seed.
2736
- `-network` (required): Specifies the network (`dev`, `qa`, `test`, `main`).
28-
- `-farm_name` (required): The name of the farm to create.
37+
- `-farm-name` (required): The name of the farm to create.
2938

3039
### Example Usage
40+
3141
```sh
32-
./new-farm -seed aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899 -network dev -farm_name MyFarm
42+
./new-farm -seed aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899 -network dev -farm-name MyFarm
3343
```
44+
3445
The `FarmID` (e.g., `11`) is returned upon successful farm creation.
3546

3647
## Next Step
3748

38-
Once this is done, you can create a V4 bootstrap image using the V4 Zero-OS Boot Generator: https://v4.bootstrap.grid.tf/.
49+
Once this is done, you can create a V4 bootstrap image using the V4 Zero-OS Boot Generator: <https://v4.bootstrap.grid.tf/>.

node-registrar/tools/farm/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func main() {
2929

3030
flag.StringVar(&seed, "seed", "", "seed")
3131
flag.StringVar(&network, "network", "", "network (dev, qa, test, main)")
32-
flag.StringVar(&name, "farm_name", "", "farm name")
32+
flag.StringVar(&name, "farm-name", "", "farm name")
3333
flag.Parse()
3434

3535
u, ok := urls[network]

registrar-cli/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Account command represents events on account on Threefold grid4
6161
➜ ./registrar-cli account get --network dev --twin-id 33
6262
5:00PM INF account={"public_key":"w5TYTeB/rCskd1iNrOKaFlpGn+Cp28gFZobTNABUv50=","relays":[],"rmb_enc_key":"","twin_id":33}
6363
64-
➜ ./registrar-cli account get --network dev --public-key <public-key>
64+
➜ ./registrar-cli account get --network dev --public-key <public-key>
6565
5:01PM INF account={"public_key":"w5TYTeB/rCskd1iNrOKaFlpGn+Cp28gFZobTNABUv50=","relays":[],"rmb_enc_key":"","twin_id":33}
6666
```
6767

@@ -92,7 +92,7 @@ Farm command represents events on farms on Threefold grid4
9292

9393
**Flags**:
9494

95-
- `--farm_name` (required): The name of the farm to create.
95+
- `--farm-name` (required): The name of the farm to create.
9696
- `--network` (required): Specifies the network (`dev`, `qa`, `test`, `main`).
9797
- `--mnemonic` (required): Account mnemonic.
9898
- `--dedicated` (optional default: false): is the farm dedicated.
@@ -125,7 +125,7 @@ Farm command represents events on farms on Threefold grid4
125125
- `--network` (required): Specifies the network (`dev`, `qa`, `test`, `main`).
126126
- `--mnemonic` (required): Account mnemonic.
127127
- `--farm-id` (optional): id of the farm needed to be loaded.
128-
- `--farm_name` (optional): The new name of the farm.
128+
- `--farm-name` (optional): The new name of the farm.
129129
- `--dedicated` (optional): update the farm to dedicated.
130130

131131
**Example Usage**:

registrar-cli/cmd/account_create.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package cmd
33

44
import (
5+
"github.com/pkg/errors"
56
"github.com/rs/zerolog/log"
67
"github.com/spf13/cobra"
78
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
@@ -14,12 +15,12 @@ var accountCreateCmd = &cobra.Command{
1415
RunE: func(cobraCmd *cobra.Command, args []string) error {
1516
mnemonic, err := cobraCmd.Flags().GetString("mnemonic")
1617
if err != nil {
17-
return err
18+
return errors.Wrap(err, "failed to get mnemonic flag")
1819
}
1920

2021
network, err := cobraCmd.Flags().GetString("network")
2122
if err != nil {
22-
return err
23+
return errors.Wrap(err, "failed to get network flag")
2324
}
2425

2526
relays, err := cobraCmd.Flags().GetStringArray("relays")
@@ -34,12 +35,10 @@ var accountCreateCmd = &cobra.Command{
3435

3536
account, mnemonic, err := cmd.CreateAccount(network, relays, rmbEncKey, mnemonic)
3637
if err != nil {
37-
return err
38+
return errors.Wrap(err, "failed to create account")
3839
}
3940
log.Info().Str("mnemonic", mnemonic).Msg("new account is created with mnemonic")
40-
4141
log.Info().Uint64("twinID", account.TwinID).Msg("account is created successfully")
42-
4342
return nil
4443
},
4544
}

registrar-cli/cmd/account_get.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package cmd
33

44
import (
5+
"github.com/pkg/errors"
56
"github.com/rs/zerolog/log"
67
"github.com/spf13/cobra"
78
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
@@ -14,26 +15,25 @@ var accountGetCmd = &cobra.Command{
1415
RunE: func(cobraCmd *cobra.Command, args []string) error {
1516
network, err := cobraCmd.Flags().GetString("network")
1617
if err != nil {
17-
return err
18+
return errors.Wrap(err, "failed to get network flag")
1819
}
1920

2021
twinID, err := cobraCmd.Flags().GetUint64("twin-id")
2122
if err != nil {
22-
return err
23+
return errors.Wrap(err, "failed to get twin-id flag")
2324
}
2425

2526
pk, err := cobraCmd.Flags().GetString("public-key")
2627
if err != nil {
27-
return err
28+
return errors.Wrap(err, "failed to get public-key flag")
2829
}
2930

3031
account, err := cmd.GetAccount(network, twinID, pk)
3132
if err != nil {
32-
return err
33+
return errors.Wrap(err, "failed to get account")
3334
}
3435

3536
log.Info().Any("account", account).Send()
36-
3737
return nil
3838
},
3939
}

registrar-cli/cmd/farm_create.go

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package cmd
33

44
import (
5+
"github.com/pkg/errors"
56
"github.com/rs/zerolog/log"
67
"github.com/spf13/cobra"
78
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
@@ -14,36 +15,48 @@ var farmCreateCmd = &cobra.Command{
1415
RunE: func(cobraCmd *cobra.Command, args []string) error {
1516
mnemonic, err := cobraCmd.Flags().GetString("mnemonic")
1617
if err != nil {
17-
return err
18+
return errors.Wrap(err, "failed to get mnemonic flag")
1819
}
1920

2021
network, err := cobraCmd.Flags().GetString("network")
2122
if err != nil {
22-
return err
23+
return errors.Wrap(err, "failed to get network flag")
2324
}
2425

2526
farmName, err := cobraCmd.Flags().GetString("farm-name")
2627
if err != nil {
27-
return err
28+
return errors.Wrap(err, "failed to get farm-name flag")
2829
}
2930

30-
stellarAddrss, err := cobraCmd.Flags().GetString("stellar-address")
31+
stellarAddress, err := cobraCmd.Flags().GetString("stellar-address")
3132
if err != nil {
32-
return err
33+
return errors.Wrap(err, "failed to get stellar-address flag")
3334
}
3435

3536
dedicated, err := cobraCmd.Flags().GetBool("dedicated")
3637
if err != nil {
37-
return err
38+
return errors.Wrap(err, "failed to get dedicated flag")
3839
}
3940

40-
farmID, err := cmd.CreateFarm(mnemonic, network, farmName, stellarAddrss, dedicated)
41+
// Validate required inputs
42+
if farmName == "" {
43+
return errors.New("farm name is required (use --farm-name flag)")
44+
}
45+
46+
if network == "" {
47+
return errors.New("network is required (use --network flag)")
48+
}
49+
50+
if mnemonic == "" {
51+
return errors.New("mnemonic is required (use --mnemonic flag)")
52+
}
53+
54+
farmID, err := cmd.CreateFarm(mnemonic, network, farmName, stellarAddress, dedicated)
4155
if err != nil {
42-
return err
56+
return errors.Wrap(err, "failed to create farm")
4357
}
4458

4559
log.Info().Uint64("farmID", farmID).Msg("farm is created successfully")
46-
4760
return nil
4861
},
4962
}

registrar-cli/cmd/farm_get.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
package cmd
33

44
import (
5-
"fmt"
6-
5+
"github.com/pkg/errors"
76
"github.com/rs/zerolog/log"
87
"github.com/spf13/cobra"
98
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
@@ -16,21 +15,21 @@ var farmGetCmd = &cobra.Command{
1615
RunE: func(cobraCmd *cobra.Command, args []string) error {
1716
network, err := cobraCmd.Flags().GetString("network")
1817
if err != nil {
19-
return err
18+
return errors.Wrap(err, "failed to get network flag")
2019
}
2120

2221
farmID, err := cobraCmd.Flags().GetUint64("farm-id")
2322
if err != nil {
24-
return err
23+
return errors.Wrap(err, "failed to get farm-id flag")
2524
}
2625

2726
if farmID == 0 {
28-
return fmt.Errorf("you need to provide farm id to load a farm")
27+
return errors.New("farm id is required (use --farm-id flag with a non-zero value)")
2928
}
3029

3130
farm, err := cmd.GetFarm(network, farmID)
3231
if err != nil {
33-
return err
32+
return errors.Wrap(err, "failed to get farm")
3433
}
3534

3635
log.Info().Any("farm", farm).Send()

registrar-cli/cmd/farm_update.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package cmd
33

44
import (
5+
"github.com/pkg/errors"
56
"github.com/rs/zerolog/log"
67
"github.com/spf13/cobra"
78
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
@@ -14,41 +15,40 @@ var farmUpdateCmd = &cobra.Command{
1415
RunE: func(cobraCmd *cobra.Command, args []string) error {
1516
mnemonic, err := cobraCmd.Flags().GetString("mnemonic")
1617
if err != nil {
17-
return err
18+
return errors.Wrap(err, "failed to get mnemonic flag")
1819
}
1920

2021
network, err := cobraCmd.Flags().GetString("network")
2122
if err != nil {
22-
return err
23+
return errors.Wrap(err, "failed to get network flag")
2324
}
2425

2526
farmID, err := cobraCmd.Flags().GetUint64("farm-id")
2627
if err != nil {
27-
return err
28+
return errors.Wrap(err, "failed to get farm-id flag")
2829
}
2930

3031
farmName, err := cobraCmd.Flags().GetString("farm-name")
3132
if err != nil {
32-
return err
33+
return errors.Wrap(err, "failed to get farm-name flag")
3334
}
3435

35-
stellarAddrss, err := cobraCmd.Flags().GetString("stellar-address")
36+
stellarAddress, err := cobraCmd.Flags().GetString("stellar-address")
3637
if err != nil {
37-
return err
38+
return errors.Wrap(err, "failed to get stellar-address flag")
3839
}
3940

4041
dedicated, err := cobraCmd.Flags().GetBool("dedicated")
4142
if err != nil {
42-
return err
43+
return errors.Wrap(err, "failed to get dedicated flag")
4344
}
4445

45-
err = cmd.UpdateFarm(farmID, mnemonic, network, farmName, stellarAddrss, dedicated)
46+
err = cmd.UpdateFarm(farmID, mnemonic, network, farmName, stellarAddress, dedicated)
4647
if err != nil {
47-
return err
48+
return errors.Wrap(err, "failed to update farm")
4849
}
4950

5051
log.Info().Msg("farm is updated successfully")
51-
5252
return nil
5353
},
5454
}

registrar-cli/cmd/node_get.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package cmd
33

44
import (
5+
"github.com/pkg/errors"
56
"github.com/rs/zerolog/log"
67
"github.com/spf13/cobra"
78
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
@@ -14,26 +15,25 @@ var nodeGetCmd = &cobra.Command{
1415
RunE: func(cobraCmd *cobra.Command, args []string) error {
1516
network, err := cobraCmd.Flags().GetString("network")
1617
if err != nil {
17-
return err
18+
return errors.Wrap(err, "failed to get network flag")
1819
}
1920

2021
nodeID, err := cobraCmd.Flags().GetUint64("node-id")
2122
if err != nil {
22-
return err
23+
return errors.Wrap(err, "failed to get node-id flag")
2324
}
2425

2526
twinID, err := cobraCmd.Flags().GetUint64("twin-id")
2627
if err != nil {
27-
return err
28+
return errors.Wrap(err, "failed to get twin-id flag")
2829
}
2930

3031
node, err := cmd.GetNode(network, nodeID, twinID)
3132
if err != nil {
32-
return err
33+
return errors.Wrap(err, "failed to get node")
3334
}
3435

3536
log.Info().Any("node", node).Send()
36-
3737
return nil
3838
},
3939
}

0 commit comments

Comments
 (0)