Skip to content

Commit a9ab8e8

Browse files
committed
move cli logic to internal pkg
1 parent b5435a6 commit a9ab8e8

File tree

14 files changed

+383
-339
lines changed

14 files changed

+383
-339
lines changed

node-registrar/client/README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,9 @@ func main() {
102102
}
103103
seed = hex.EncodeToString(s)
104104
fmt.Println("New Seed (Hex):", seed)
105-
106-
cli, err := client.NewRegistrarClient(registrarURL, s)
105+
106+
privateKey := ed25519.NewKeyFromSeed(s)
107+
cli, err := client.NewRegistrarClient(registrarURL, privateKey)
107108
if err != nil {
108109
panic(err)
109110
}

registrar-cli/cmd/create_account.go

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

44
import (
5-
"crypto/ed25519"
6-
"crypto/rand"
7-
"encoding/hex"
8-
"fmt"
9-
105
"github.com/rs/zerolog/log"
116
"github.com/spf13/cobra"
12-
"github.com/threefoldtech/tfgrid4-sdk-go/node-registrar/client"
7+
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
138
)
149

1510
// createAccountCmd represents the cancel command
1611
var createAccountCmd = &cobra.Command{
1712
Use: "account",
1813
Short: "create new account in node registrar",
19-
RunE: func(cmd *cobra.Command, args []string) error {
20-
seed, err := cmd.Flags().GetString("seed")
21-
if err != nil {
22-
return err
23-
}
24-
25-
network, err := cmd.Flags().GetString("network")
26-
if err != nil {
27-
return err
28-
}
29-
30-
relays, err := cmd.Flags().GetStringArray("relays")
14+
RunE: func(cobraCmd *cobra.Command, args []string) error {
15+
seed, err := cobraCmd.Flags().GetString("seed")
3116
if err != nil {
3217
return err
3318
}
3419

35-
rmbEncKey, err := cmd.Flags().GetString("rmb-enc-key")
20+
network, err := cobraCmd.Flags().GetString("network")
3621
if err != nil {
3722
return err
3823
}
3924

40-
u, ok := urls[network]
41-
if !ok {
42-
return fmt.Errorf("invalid network %s", network)
43-
}
44-
45-
if len(seed) == 0 {
46-
seed, err = generateRandomSeed()
47-
if err != nil {
48-
return err
49-
}
50-
log.Info().Msgf("New Seed (Hex): %s", seed)
51-
}
52-
53-
seedBytes, err := hex.DecodeString(seed)
25+
relays, err := cobraCmd.Flags().GetStringArray("relays")
5426
if err != nil {
5527
return err
5628
}
5729

58-
privateKey := ed25519.NewKeyFromSeed(seedBytes)
59-
publicKey := privateKey.Public().(ed25519.PublicKey)
60-
61-
log.Info().Msgf("public key (Hex): %s", hex.EncodeToString(publicKey))
62-
63-
cli, err := client.NewRegistrarClient(u, privateKey)
30+
rmbEncKey, err := cobraCmd.Flags().GetString("rmb-enc-key")
6431
if err != nil {
6532
return err
6633
}
6734

68-
account, err := cli.CreateAccount(relays, rmbEncKey)
35+
account, err := cmd.CreaeteAccount(seed, network, relays, rmbEncKey)
6936
if err != nil {
7037
return err
7138
}
@@ -83,14 +50,3 @@ func init() {
8350
createAccountCmd.Flags().StringArrayP("relays", "r", nil, "relays urls")
8451
createAccountCmd.Flags().StringP("rmb-enc-key", "k", "", "rmb encryption key")
8552
}
86-
87-
func generateRandomSeed() (string, error) {
88-
s := make([]byte, 32)
89-
_, err := rand.Read(s)
90-
if err != nil {
91-
return "", err
92-
}
93-
94-
seed := hex.EncodeToString(s)
95-
return seed, nil
96-
}

registrar-cli/cmd/create_farm.go

Lines changed: 8 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,66 +2,42 @@
22
package cmd
33

44
import (
5-
"crypto/ed25519"
6-
"encoding/hex"
7-
"fmt"
8-
95
"github.com/rs/zerolog/log"
106
"github.com/spf13/cobra"
11-
"github.com/threefoldtech/tfgrid4-sdk-go/node-registrar/client"
7+
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
128
)
139

1410
// createFarmCmd represents the cancel command
1511
var createFarmCmd = &cobra.Command{
1612
Use: "farm",
1713
Short: "create new farm in node registrar",
18-
RunE: func(cmd *cobra.Command, args []string) error {
19-
seed, err := cmd.Flags().GetString("seed")
14+
RunE: func(cobraCmd *cobra.Command, args []string) error {
15+
seed, err := cobraCmd.Flags().GetString("seed")
2016
if err != nil {
2117
return err
2218
}
2319

24-
network, err := cmd.Flags().GetString("network")
20+
network, err := cobraCmd.Flags().GetString("network")
2521
if err != nil {
2622
return err
2723
}
2824

29-
farmName, err := cmd.Flags().GetString("farm-name")
30-
if err != nil {
31-
return err
32-
}
33-
34-
dedicated, err := cmd.Flags().GetBool("dedicated")
35-
if err != nil {
36-
return err
37-
}
38-
39-
u, ok := urls[network]
40-
if !ok {
41-
return fmt.Errorf("invalid network %s", network)
42-
}
43-
44-
if len(seed) == 0 {
45-
return fmt.Errorf("can not initialize registrar client with no seed")
46-
}
47-
48-
seedBytes, err := hex.DecodeString(seed)
25+
farmName, err := cobraCmd.Flags().GetString("farm-name")
4926
if err != nil {
5027
return err
5128
}
5229

53-
privateKey := ed25519.NewKeyFromSeed(seedBytes)
54-
cli, err := client.NewRegistrarClient(u, privateKey)
30+
dedicated, err := cobraCmd.Flags().GetBool("dedicated")
5531
if err != nil {
5632
return err
5733
}
5834

59-
farm, err := cli.CreateFarm(farmName, dedicated)
35+
farmID, err := cmd.CreaeteFarm(seed, network, farmName, dedicated)
6036
if err != nil {
6137
return err
6238
}
6339

64-
log.Info().Uint64("farmID", farm).Msg("farm is created successfully")
40+
log.Info().Uint64("farmID", farmID).Msg("farm is created successfully")
6541

6642
return nil
6743
},

registrar-cli/cmd/get_account.go

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

44
import (
5-
"crypto/ed25519"
6-
"encoding/hex"
7-
"fmt"
8-
95
"github.com/rs/zerolog/log"
106
"github.com/spf13/cobra"
11-
"github.com/threefoldtech/tfgrid4-sdk-go/node-registrar/client"
7+
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
128
)
139

1410
// getAccountCmd represents the cancel command
1511
var getAccountCmd = &cobra.Command{
1612
Use: "account",
1713
Short: "get account from node registrar",
18-
RunE: func(cmd *cobra.Command, args []string) error {
19-
network, err := cmd.Flags().GetString("network")
14+
RunE: func(cobraCmd *cobra.Command, args []string) error {
15+
network, err := cobraCmd.Flags().GetString("network")
2016
if err != nil {
2117
return err
2218
}
2319

24-
twinID, err := cmd.Flags().GetUint64("twin-id")
20+
twinID, err := cobraCmd.Flags().GetUint64("twin-id")
2521
if err != nil {
2622
return err
2723
}
2824

29-
pk, err := cmd.Flags().GetString("public-key")
25+
pk, err := cobraCmd.Flags().GetString("public-key")
3026
if err != nil {
3127
return err
3228
}
3329

34-
u, ok := urls[network]
35-
if !ok {
36-
return fmt.Errorf("invalid network %s", network)
37-
}
38-
39-
seed, err := generateRandomSeed()
30+
account, err := cmd.GetAccount(network, twinID, pk)
4031
if err != nil {
4132
return err
4233
}
4334

44-
seedBytes, err := hex.DecodeString(seed)
45-
if err != nil {
46-
return err
47-
}
48-
49-
publicKey, err := hex.DecodeString(pk)
50-
if err != nil {
51-
return err
52-
}
53-
54-
privateKey := ed25519.NewKeyFromSeed(seedBytes)
55-
cli, err := client.NewRegistrarClient(u, privateKey)
56-
if err != nil {
57-
return err
58-
}
59-
60-
if twinID != 0 {
61-
account, err := cli.GetAccount(twinID)
62-
if err != nil {
63-
return err
64-
}
65-
log.Info().Any("account", account).Send()
66-
67-
} else if len(publicKey) != 0 {
68-
account, err := cli.GetAccountByPK(publicKey)
69-
if err != nil {
70-
return err
71-
}
72-
log.Info().Any("account", account).Send()
73-
} else {
74-
return fmt.Errorf("you need to provide either twin id or public key to load an account")
75-
}
35+
log.Info().Any("account", account).Send()
7636

7737
return nil
7838
},

registrar-cli/cmd/get_farm.go

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,60 +2,38 @@
22
package cmd
33

44
import (
5-
"encoding/hex"
65
"fmt"
76

87
"github.com/rs/zerolog/log"
98
"github.com/spf13/cobra"
10-
"github.com/threefoldtech/tfgrid4-sdk-go/node-registrar/client"
9+
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
1110
)
1211

1312
// getFarmCmd represents the cancel command
1413
var getFarmCmd = &cobra.Command{
1514
Use: "farm",
1615
Short: "get farm from node registrar",
17-
RunE: func(cmd *cobra.Command, args []string) error {
18-
network, err := cmd.Flags().GetString("network")
16+
RunE: func(cobraCmd *cobra.Command, args []string) error {
17+
network, err := cobraCmd.Flags().GetString("network")
1918
if err != nil {
2019
return err
2120
}
2221

23-
farmID, err := cmd.Flags().GetUint64("farm-id")
22+
farmID, err := cobraCmd.Flags().GetUint64("farm-id")
2423
if err != nil {
2524
return err
2625
}
2726

28-
u, ok := urls[network]
29-
if !ok {
30-
return fmt.Errorf("invalid network %s", network)
27+
if farmID == 0 {
28+
return fmt.Errorf("you need to provide farm id to load a farm")
3129
}
3230

33-
seed, err := generateRandomSeed()
31+
farm, err := cmd.GetFarm(network, farmID)
3432
if err != nil {
3533
return err
3634
}
3735

38-
seedBytes, err := hex.DecodeString(seed)
39-
if err != nil {
40-
return err
41-
}
42-
43-
cli, err := client.NewRegistrarClient(u, seedBytes)
44-
if err != nil {
45-
return err
46-
}
47-
48-
if farmID != 0 {
49-
farm, err := cli.GetFarm(farmID)
50-
if err != nil {
51-
return err
52-
}
53-
log.Info().Any("farm", farm).Send()
54-
55-
} else {
56-
return fmt.Errorf("you need to provide either farm id to load a farm")
57-
}
58-
36+
log.Info().Any("farm", farm).Send()
5937
return nil
6038
},
6139
}

0 commit comments

Comments
 (0)