Skip to content

Commit 46e2957

Browse files
committed
feat: send gateway dns and private address
1 parent 4105a98 commit 46e2957

File tree

3 files changed

+39
-11
lines changed

3 files changed

+39
-11
lines changed

models/structs.go

+14-11
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,20 @@ type IngressGwUsers struct {
3232

3333
// UserRemoteGws - struct to hold user's remote gws
3434
type UserRemoteGws struct {
35-
GwID string `json:"remote_access_gw_id"`
36-
GWName string `json:"gw_name"`
37-
Network string `json:"network"`
38-
Connected bool `json:"connected"`
39-
IsInternetGateway bool `json:"is_internet_gateway"`
40-
GwClient ExtClient `json:"gw_client"`
41-
GwPeerPublicKey string `json:"gw_peer_public_key"`
42-
GwListenPort int `json:"gw_listen_port"`
43-
Metadata string `json:"metadata"`
44-
AllowedEndpoints []string `json:"allowed_endpoints"`
45-
NetworkAddresses []string `json:"network_addresses"`
35+
GwID string `json:"remote_access_gw_id"`
36+
GWName string `json:"gw_name"`
37+
Network string `json:"network"`
38+
Connected bool `json:"connected"`
39+
IsInternetGateway bool `json:"is_internet_gateway"`
40+
GwClient ExtClient `json:"gw_client"`
41+
GwPeerPublicKey string `json:"gw_peer_public_key"`
42+
GwListenPort int `json:"gw_listen_port"`
43+
Metadata string `json:"metadata"`
44+
AllowedEndpoints []string `json:"allowed_endpoints"`
45+
NetworkAddresses []string `json:"network_addresses"`
46+
DnsAddress string `json:"dns_address"`
47+
Addresses string `json:"addresses"`
48+
Status NodeStatus `json:"status"`
4649
}
4750

4851
// UserRAGs - struct for user access gws

pro/controllers/users.go

+9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"github.com/gravitl/netmaker/pro/email"
2020
proLogic "github.com/gravitl/netmaker/pro/logic"
2121
"github.com/gravitl/netmaker/servercfg"
22+
"github.com/gravitl/netmaker/utils"
2223
"golang.org/x/exp/slog"
2324
)
2425

@@ -1034,6 +1035,8 @@ func getRemoteAccessGatewayConf(w http.ResponseWriter, r *http.Request) {
10341035
Metadata: node.Metadata,
10351036
AllowedEndpoints: getAllowedRagEndpoints(&node, host),
10361037
NetworkAddresses: []string{network.AddressRange, network.AddressRange6},
1038+
DnsAddress: node.IngressDNS,
1039+
Addresses: utils.NoEmptyStringToCsv(node.Address.String(), node.Address6.String()),
10371040
}
10381041

10391042
slog.Debug("returned user gw config", "user", user.UserName, "gws", userGw)
@@ -1120,6 +1123,9 @@ func getUserRemoteAccessGwsV1(w http.ResponseWriter, r *http.Request) {
11201123
Metadata: node.Metadata,
11211124
AllowedEndpoints: getAllowedRagEndpoints(&node, host),
11221125
NetworkAddresses: []string{network.AddressRange, network.AddressRange6},
1126+
Status: node.Status,
1127+
DnsAddress: node.IngressDNS,
1128+
Addresses: utils.NoEmptyStringToCsv(node.Address.String(), node.Address6.String()),
11231129
})
11241130
userGws[node.Network] = gws
11251131
delete(userGwNodes, node.ID.String())
@@ -1157,6 +1163,9 @@ func getUserRemoteAccessGwsV1(w http.ResponseWriter, r *http.Request) {
11571163
Metadata: node.Metadata,
11581164
AllowedEndpoints: getAllowedRagEndpoints(&node, host),
11591165
NetworkAddresses: []string{network.AddressRange, network.AddressRange6},
1166+
Status: node.Status,
1167+
DnsAddress: node.IngressDNS,
1168+
Addresses: utils.NoEmptyStringToCsv(node.Address.String(), node.Address6.String()),
11601169
})
11611170
userGws[node.Network] = gws
11621171
}

utils/utils.go

+16
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package utils
33
import (
44
"log/slog"
55
"runtime"
6+
"strings"
67
"time"
78
)
89

@@ -59,3 +60,18 @@ func TraceCaller() {
5960
slog.Debug("Called from function: %s\n", "func-name", funcName)
6061
slog.Debug("File: %s, Line: %d\n", "file", file, "line-no", line)
6162
}
63+
64+
// NoEmptyStringToCsv takes a bunch of strings, filters out empty ones and returns a csv version of the string
65+
func NoEmptyStringToCsv(strs ...string) string {
66+
var sb strings.Builder
67+
for _, str := range strs {
68+
trimmedStr := strings.TrimSpace(str)
69+
if trimmedStr != "" && trimmedStr != "<nil>" {
70+
if sb.Len() > 0 {
71+
sb.WriteString(", ")
72+
}
73+
sb.WriteString(str)
74+
}
75+
}
76+
return sb.String()
77+
}

0 commit comments

Comments
 (0)