Skip to content

Commit 4644b05

Browse files
committed
fix(hive): resolve merge conflicts and clean up hive commands
1 parent fd64ad9 commit 4644b05

12 files changed

Lines changed: 51 additions & 86 deletions

File tree

cmd/db/db.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ var DBCmd = &cobra.Command{
1111
func init() {
1212
DBCmd.AddCommand(dbShareCmd)
1313
DBCmd.AddCommand(dbGetCmd)
14-
}
14+
}

cmd/directory/directory.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ var DirectoryCmd = &cobra.Command{
77
Short: "Manage directories",
88
}
99

10-
func init(){
10+
func init() {
1111
DirectoryCmd.AddCommand(directoryShareCmd)
1212
DirectoryCmd.AddCommand(directoryGetCmd)
1313
}

cmd/env/share.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ var envShareCmd = &cobra.Command{
2828
log.Fatal(err)
2929
}
3030

31-
share, err := sdk.CreateShare(root, &sdk.ShareRequest{
31+
share, err := sdk.CreateShare(root, &sdk.ShareRequest{
3232
BackendMode: sdk.TcpTunnelBackendMode,
33-
ShareMode: sdk.PrivateShareMode,
34-
Target: "env",
33+
ShareMode: sdk.PrivateShareMode,
34+
Target: "env",
3535
})
3636

3737
if err != nil {
@@ -47,23 +47,23 @@ var envShareCmd = &cobra.Command{
4747

4848
c := make(chan os.Signal, 1)
4949
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
50-
go func(){
51-
<- c
50+
go func() {
51+
<-c
5252
if err := sdk.DeleteShare(root, share); err != nil {
5353
log.Printf("error deleting share: %v", err)
5454
}
5555
_ = listener.Close()
5656
os.Exit(0)
5757
}()
5858

59-
go func(){
60-
for{
59+
go func() {
60+
for {
6161
conn, err := listener.Accept()
6262
if err != nil {
6363
log.Printf("error accepting connection: %v", err)
6464
return
6565
}
66-
go func(c net.Conn){
66+
go func(c net.Conn) {
6767
defer c.Close()
6868
_, _ = c.Write(envFile)
6969
}(conn)
@@ -72,6 +72,5 @@ var envShareCmd = &cobra.Command{
7272

7373
select {}
7474

75-
7675
},
7776
}

cmd/hive/connect.go

Lines changed: 29 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"net/http"
1010
"os"
1111
"os/signal"
12-
"sync"
1312
"syscall"
1413

1514
"github.com/openziti/zrok/environment"
@@ -18,14 +17,13 @@ import (
1817
"github.com/spf13/cobra"
1918
)
2019

20+
// Service struct must match Hive Controller response
2121
type Service struct {
2222
Name string `json:"name"`
2323
Port string `json:"port"`
2424
Token string `json:"token"`
2525
}
2626

27-
var controllerURL string
28-
2927
var hiveConnectCmd = &cobra.Command{
3028
Use: "connect --hive <token>",
3129
Short: "Connect to all services in a Hive",
@@ -35,21 +33,14 @@ var hiveConnectCmd = &cobra.Command{
3533
log.Fatal("must provide --hive token")
3634
}
3735

38-
if controllerURL == "" {
39-
controllerURL = "http://localhost:8081"
40-
}
41-
36+
// Load zrok root identity
4237
root, err := environment.LoadRoot()
4338
if err != nil {
4439
log.Fatal(err)
4540
}
4641

47-
<<<<<<< HEAD
48-
url := fmt.Sprintf("%s/hives/services?hive=%s", controllerURL, hiveToken)
49-
=======
5042
// Fetch services from Hive Controller
5143
url := fmt.Sprintf("%s/hives/services?hive=%s", BaseURL, hiveToken)
52-
>>>>>>> eb03ba59dbe0f48a9a05c705ffbfd12b477ec1dd
5344
resp, err := http.Get(url)
5445
if err != nil {
5546
log.Fatalf("error querying hive controller: %v", err)
@@ -71,77 +62,61 @@ var hiveConnectCmd = &cobra.Command{
7162
return
7263
}
7364

74-
var wg sync.WaitGroup
75-
var listeners []net.Listener
76-
65+
// Start listeners for each service
7766
for _, svc := range services {
78-
wg.Add(1)
79-
go func(s Service) {
80-
defer wg.Done()
81-
l, err := startLocalListener(s, root)
82-
if err == nil {
83-
listeners = append(listeners, l)
84-
}
85-
}(svc)
67+
go startLocalListener(svc, root)
8668
}
8769

88-
// graceful shutdown
70+
// Keep running until Ctrl+C
71+
log.Println("Connected to Hive! Press Ctrl+C to exit.")
8972
c := make(chan os.Signal, 1)
9073
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
9174
<-c
92-
93-
log.Println("Shutting down listeners...")
94-
for _, l := range listeners {
95-
_ = l.Close()
96-
}
9775
},
9876
}
9977

100-
func startLocalListener(svc Service, root env_core.Root) (net.Listener, error) {
78+
func startLocalListener(svc Service, root env_core.Root) {
79+
// Create Access for this service
10180
acc, err := sdk.CreateAccess(root, &sdk.AccessRequest{ShareToken: svc.Token})
10281
if err != nil {
10382
log.Printf("[%s] create access error: %v", svc.Name, err)
104-
return nil, err
83+
return
10584
}
10685
defer sdk.DeleteAccess(root, acc)
10786

10887
listener, err := net.Listen("tcp", "127.0.0.1:"+svc.Port)
10988
if err != nil {
11089
log.Printf("[%s] listener error: %v", svc.Name, err)
111-
return nil, err
90+
return
11291
}
92+
defer listener.Close()
11393

11494
log.Printf("Service '%s' ready at http://127.0.0.1:%s", svc.Name, svc.Port)
11595

116-
go func() {
117-
for {
118-
client, err := listener.Accept()
96+
for {
97+
client, err := listener.Accept()
98+
if err != nil {
99+
log.Printf("[%s] accept error: %v", svc.Name, err)
100+
continue
101+
}
102+
103+
go func(c net.Conn) {
104+
defer c.Close()
105+
106+
remote, err := sdk.NewDialer(svc.Token, root)
119107
if err != nil {
120-
log.Printf("[%s] accept error: %v", svc.Name, err)
108+
log.Printf("[%s] dial error: %v", svc.Name, err)
121109
return
122110
}
111+
defer remote.Close()
123112

124-
go func(c net.Conn) {
125-
defer c.Close()
126-
127-
remote, err := sdk.NewDialer(svc.Token, root)
128-
if err != nil {
129-
log.Printf("[%s] dial error: %v", svc.Name, err)
130-
return
131-
}
132-
defer remote.Close()
133-
134-
log.Printf("[%s] client connected", svc.Name)
135-
go io.Copy(remote, c)
136-
io.Copy(c, remote)
137-
}(client)
138-
}
139-
}()
140-
141-
return listener, nil
113+
log.Printf("[%s] client connected", svc.Name)
114+
go io.Copy(remote, c)
115+
io.Copy(c, remote)
116+
}(client)
117+
}
142118
}
143119

144120
func init() {
145121
hiveConnectCmd.Flags().String("hive", "", "hive invite token")
146-
hiveConnectCmd.Flags().StringVar(&controllerURL, "controller", "http://localhost:8081", "Hive controller URL")
147122
}

cmd/hive/contribute.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@ var hiveContributeCmd = &cobra.Command{
2424
log.Fatal("must provide --service, --port, and --hive")
2525
}
2626

27-
if controllerURL == "" {
28-
controllerURL = "http://localhost:8081"
29-
}
30-
3127
root, err := environment.LoadRoot()
3228
if err != nil {
3329
log.Fatal(err)
@@ -41,14 +37,9 @@ var hiveContributeCmd = &cobra.Command{
4137
if err != nil {
4238
log.Fatal(err)
4339
}
44-
<<<<<<< HEAD
4540

46-
url := fmt.Sprintf("%s/hives/contribute?hive=%s&service=%s&port=%s&token=%s",
47-
controllerURL, hiveToken, service, port, share.Token)
48-
=======
4941
url := fmt.Sprintf("%s/hives/contribute?hive=%s&service=%s&port=%s&token=%s",
5042
BaseURL, hiveToken, service, port, share.Token)
51-
>>>>>>> eb03ba59dbe0f48a9a05c705ffbfd12b477ec1dd
5243
_, err = http.Post(url, "text/plain", nil)
5344
if err != nil {
5445
log.Fatal(err)
@@ -101,10 +92,8 @@ func Pipe(a, b net.Conn) {
10192
<-done
10293
}
10394

104-
10595
func init() {
10696
hiveContributeCmd.Flags().String("service", "", "service name (e.g. api, frontend)")
10797
hiveContributeCmd.Flags().String("port", "", "local port to share")
10898
hiveContributeCmd.Flags().String("hive", "", "hive invite token")
109-
hiveContributeCmd.Flags().StringVar(&controllerURL, "controller", "http://localhost:8081", "Hive controller URL")
11099
}

cmd/hive/create.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package hive
22

33
import (
4+
"fmt"
45
"io"
56
"log"
67
"net/http"
@@ -15,15 +16,16 @@ var hiveCreateCmd = &cobra.Command{
1516
Run: func(cmd *cobra.Command, args []string) {
1617
name := args[0]
1718

18-
resp, err := http.Get("http://localhost:8081/hives/create?name=" + name)
19+
// Use BaseURL for consistency
20+
resp, err := http.Get(fmt.Sprintf("%s/hives/create?name=%s", BaseURL, name))
1921
if err != nil {
2022
log.Fatal(err)
2123
}
2224
defer resp.Body.Close()
25+
2326
tokenBytes, _ := io.ReadAll(resp.Body)
2427
token := string(tokenBytes)
2528

2629
log.Printf("Hive '%s' created! Invite token: %s", name, token)
27-
2830
},
2931
}

cmd/hive/hive.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ package hive
22

33
import "github.com/spf13/cobra"
44

5+
// Centralized BaseURL
56
var BaseURL = "https://tazidgt171sl.share.zrok.io"
67

8+
// Root "hive" command
79
var HiveCmd = &cobra.Command{
810
Use: "hive",
911
Short: "Ephemeral staging environments for your team",

cmd/pair/get.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package pair
22

33
import (
4+
"io"
45
"log"
56
"net"
6-
"io"
77

88
"github.com/openziti/zrok/environment"
99
"github.com/openziti/zrok/sdk/golang/sdk"

cmd/pair/share.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@ var pairShareCmd = &cobra.Command{
3838
}
3939
defer listener.Close()
4040

41-
for{
41+
for {
4242
conn, err := listener.Accept()
4343
if err != nil {
4444
log.Printf("error accepting incoming connection: %v", err)
4545
continue
4646
}
4747

48-
go func(remote net.Conn){
48+
go func(remote net.Conn) {
4949
local, err := net.Dial("tcp", "127.0.0.1:"+port)
5050
if err != nil {
5151
log.Printf("error connecting to local service: %v", err)

cmd/registry/share.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package registry
22

3-
4-
53
import (
64
"io"
75
"log"

0 commit comments

Comments
 (0)