Skip to content

Commit 0782d9f

Browse files
committed
Bypass gateway to access gateway
1 parent 98e3a64 commit 0782d9f

File tree

6 files changed

+57
-21
lines changed

6 files changed

+57
-21
lines changed

commands/cp.go

+16-6
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,14 @@ func TarFromSource(apiClient *api.ScalewayAPI, source string) (*io.ReadCloser, e
8484
remoteCommand = append(remoteCommand, base)
8585

8686
// Resolve gateway
87-
gateway, err := api.ResolveGateway(apiClient, cpGateway)
88-
if err != nil {
89-
log.Fatalf("Cannot resolve Gateway '%s': %v", cpGateway, err)
87+
var gateway string
88+
if cpGateway == serverID || cpGateway == serverParts[0] {
89+
gateway = ""
90+
} else {
91+
gateway, err = api.ResolveGateway(apiClient, cpGateway)
92+
if err != nil {
93+
log.Fatalf("Cannot resolve Gateway '%s': %v", cpGateway, err)
94+
}
9095
}
9196

9297
// execCmd contains the ssh connection + the remoteCommand
@@ -173,9 +178,14 @@ func UntarToDest(apiClient *api.ScalewayAPI, sourceStream *io.ReadCloser, destin
173178
remoteCommand = append(remoteCommand, "-xf", "-")
174179

175180
// Resolve gateway
176-
gateway, err := api.ResolveGateway(apiClient, cpGateway)
177-
if err != nil {
178-
log.Fatalf("Cannot resolve Gateway '%s': %v", cpGateway, err)
181+
var gateway string
182+
if cpGateway == serverID || cpGateway == serverParts[0] {
183+
gateway = ""
184+
} else {
185+
gateway, err = api.ResolveGateway(apiClient, cpGateway)
186+
if err != nil {
187+
log.Fatalf("Cannot resolve Gateway '%s': %v", cpGateway, err)
188+
}
179189
}
180190

181191
// execCmd contains the ssh connection + the remoteCommand

commands/exec.go

+9-3
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,15 @@ func runExec(cmd *types.Command, args []string) {
5858
serverID := cmd.API.GetServerID(args[0])
5959

6060
// Resolve gateway
61-
gateway, err := api.ResolveGateway(cmd.API, execGateway)
62-
if err != nil {
63-
log.Fatalf("Cannot resolve Gateway '%s': %v", execGateway, err)
61+
var gateway string
62+
var err error
63+
if execGateway == serverID || execGateway == args[0] {
64+
gateway = ""
65+
} else {
66+
gateway, err = api.ResolveGateway(cmd.API, execGateway)
67+
if err != nil {
68+
log.Fatalf("Cannot resolve Gateway '%s': %v", execGateway, err)
69+
}
6470
}
6571

6672
var server *api.ScalewayServer

commands/kill.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,14 @@ func runKill(cmd *types.Command, args []string) {
4949
}
5050

5151
// Resolve gateway
52-
gateway, err := api.ResolveGateway(cmd.API, killGateway)
53-
if err != nil {
54-
log.Fatalf("Cannot resolve Gateway '%s': %v", killGateway, err)
52+
var gateway string
53+
if killGateway == serverID || killGateway == args[0] {
54+
gateway = ""
55+
} else {
56+
gateway, err = api.ResolveGateway(cmd.API, killGateway)
57+
if err != nil {
58+
log.Fatalf("Cannot resolve Gateway '%s': %v", killGateway, err)
59+
}
5560
}
5661

5762
execCmd := append(utils.NewSSHExecCmd(server.PublicAddress.IP, server.PrivateIP, true, nil, []string{command}, gateway))

commands/logs.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,14 @@ func runLogs(cmd *types.Command, args []string) {
4545
// FIXME: switch to serial history when API is ready
4646

4747
// Resolve gateway
48-
gateway, err := api.ResolveGateway(cmd.API, logsGateway)
49-
if err != nil {
50-
log.Fatalf("Cannot resolve Gateway '%s': %v", logsGateway, err)
48+
var gateway string
49+
if logsGateway == serverID || logsGateway == args[0] {
50+
gateway = ""
51+
} else {
52+
gateway, err = api.ResolveGateway(cmd.API, logsGateway)
53+
if err != nil {
54+
log.Fatalf("Cannot resolve Gateway '%s': %v", logsGateway, err)
55+
}
5156
}
5257

5358
command := []string{"dmesg"}

commands/port.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,14 @@ func runPort(cmd *types.Command, args []string) {
4343
}
4444

4545
// Resolve gateway
46-
gateway, err := api.ResolveGateway(cmd.API, portGateway)
47-
if err != nil {
48-
log.Fatalf("Cannot resolve Gateway '%s': %v", portGateway, err)
46+
var gateway string
47+
if portGateway == serverID || portGateway == args[0] {
48+
gateway = ""
49+
} else {
50+
gateway, err = api.ResolveGateway(cmd.API, portGateway)
51+
if err != nil {
52+
log.Fatalf("Cannot resolve Gateway '%s': %v", portGateway, err)
53+
}
4954
}
5055

5156
command := []string{"netstat -lutn 2>/dev/null | grep LISTEN"}

commands/top.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,14 @@ func runTop(cmd *types.Command, args []string) {
4848
}
4949

5050
// Resolve gateway
51-
gateway, err := api.ResolveGateway(cmd.API, topGateway)
52-
if err != nil {
53-
log.Fatalf("Cannot resolve Gateway '%s': %v", topGateway, err)
51+
var gateway string
52+
if topGateway == serverID || topGateway == args[0] {
53+
gateway = ""
54+
} else {
55+
gateway, err = api.ResolveGateway(cmd.API, topGateway)
56+
if err != nil {
57+
log.Fatalf("Cannot resolve Gateway '%s': %v", topGateway, err)
58+
}
5459
}
5560

5661
execCmd := utils.NewSSHExecCmd(server.PublicAddress.IP, server.PrivateIP, true, nil, []string{command}, gateway)

0 commit comments

Comments
 (0)