Skip to content

Commit 5025d4f

Browse files
committed
fix #3 Follow docker <host>:<vm> in port forward
1 parent 0080c15 commit 5025d4f

File tree

2 files changed

+19
-20
lines changed

2 files changed

+19
-20
lines changed

vms/port.go

+7-8
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@ const rangeSep = "-"
1111

1212
// mapPorts build string as param to ssh for port forward
1313
//
14-
// sample input: 3000 4040:40040 8080-8088:9080-9088
14+
// sample input: 3000 40040:4040 9080-9088:8080-8088
1515
//
16-
// where <vm port>[:<local port>]
16+
// Where [<local port>:]<vm port>
1717
//
18-
// output format: ["-L", "0.0.0.0:3000:localhost:3000"]
18+
// output format: ["-L", "0.0.0.0:<local port>:localhost:<vm port>"]
1919
//
20-
// remember, vm port comes first
2120
func getPortForwardArgs(ports string) ([]string, error) {
2221
a, err := mapPorts(ports)
2322
if err != nil {
@@ -45,12 +44,12 @@ func mapPorts(ports string) ([]string, error) {
4544

4645
for _, arg := range args {
4746
mapping := strings.Split(arg, ":")
48-
vmPort := mapping[0]
49-
var localPort string
47+
localPort := mapping[0]
48+
var vmPort string
5049
if len(mapping) == 1 {
51-
localPort = vmPort
50+
vmPort = localPort
5251
} else {
53-
localPort = mapping[1]
52+
vmPort = mapping[1]
5453
}
5554

5655
portMap, err := getPortMapping(vmPort, localPort)

vms/port_test.go

+12-12
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ func TestGetPortForwardArgs(t *testing.T) {
1919
args: struct{ ports string }{ports: "3000"},
2020
want: []string{"0.0.0.0:3000:localhost:3000"},
2121
wantErr: false},
22-
{name: "<vm port>:<local port>",
23-
args: struct{ ports string }{ports: "3000:4000"},
22+
{name: "<local port>:<vm port>",
23+
args: struct{ ports string }{ports: "4000:3000"},
2424
want: []string{"0.0.0.0:4000:localhost:3000"},
2525
wantErr: false},
26-
{name: "<vm port>:<local port> <vmport>",
27-
args: struct{ ports string }{ports: "3000:4000 8080"},
26+
{name: "<local port>:<vm port> <vmport>",
27+
args: struct{ ports string }{ports: "4000:3000 8080"},
2828
want: []string{"0.0.0.0:4000:localhost:3000", "0.0.0.0:8080:localhost:8080"},
2929
wantErr: false},
30-
{name: "<vmport> <vm port>:<local port>",
31-
args: struct{ ports string }{ports: "8080 3000:4000"},
30+
{name: "<vmport> <local port>:<vm port>",
31+
args: struct{ ports string }{ports: "8080 4000:3000"},
3232
want: []string{"0.0.0.0:8080:localhost:8080", "0.0.0.0:4000:localhost:3000"},
3333
wantErr: false},
3434
{name: "<vmport> <vm port> <vm port>",
@@ -39,16 +39,16 @@ func TestGetPortForwardArgs(t *testing.T) {
3939
args: struct{ ports string }{ports: "3000 4000-4001"},
4040
want: []string{"0.0.0.0:3000:localhost:3000", "0.0.0.0:4000:localhost:4000", "0.0.0.0:4001:localhost:4001"},
4141
wantErr: false},
42-
{name: "<vm port1>-<vm port2>:<local port1>-<local port2>",
43-
args: struct{ ports string }{ports: "4000-4001:8080-8081"},
42+
{name: "<local port1>-<local port2>:<vm port1>-<vm port2>",
43+
args: struct{ ports string }{ports: "8080-8081:4000-4001"},
4444
want: []string{"0.0.0.0:8080:localhost:4000", "0.0.0.0:8081:localhost:4001"},
4545
wantErr: false},
46-
{name: "<vm port1>-<vm port2>:<local port1>-<local port2> <vmport>",
47-
args: struct{ ports string }{ports: "4000-4001:8080-8081 9000"},
46+
{name: "<local port1>-<local port2>:<vm port1>-<vm port2> <vmport>",
47+
args: struct{ ports string }{ports: "8080-8081:4000-4001 9000"},
4848
want: []string{"0.0.0.0:8080:localhost:4000", "0.0.0.0:8081:localhost:4001", "0.0.0.0:9000:localhost:9000"},
4949
wantErr: false},
50-
{name: "invalid <vm port1>-<vm port2>:<local port1>-<local port2>",
51-
args: struct{ ports string }{ports: "4000-4001:8080-8082"},
50+
{name: "invalid <local port1>-<local port2>:<vm port1>-<vm port2>",
51+
args: struct{ ports string }{ports: "8080-8082:4000-4001"},
5252
want: nil,
5353
wantErr: true},
5454
}

0 commit comments

Comments
 (0)