Skip to content

Commit 1192208

Browse files
committed
FIX docker-archive-public#2171 Fix faulty flag and add tests for SetConfigFromFlags
Signed-off-by: David Gageot <david@gageot.net>
1 parent d07e4e2 commit 1192208

File tree

15 files changed

+383
-1
lines changed

15 files changed

+383
-1
lines changed

drivers/amazonec2/amazonec2.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
150150
Usage: "AWS spot instance bid price (in dollar)",
151151
Value: defaultSpotPrice,
152152
},
153-
mcnflag.StringFlag{
153+
mcnflag.BoolFlag{
154154
Name: "amazonec2-private-address-only",
155155
Usage: "Only use a private IP address",
156156
},

drivers/amazonec2/amazonec2_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77

88
"github.com/docker/machine/commands/mcndirs"
99
"github.com/docker/machine/drivers/amazonec2/amz"
10+
"github.com/docker/machine/libmachine/drivers"
11+
"github.com/stretchr/testify/assert"
1012
)
1113

1214
const (
@@ -235,3 +237,22 @@ func TestValidateAwsRegionInvalid(t *testing.T) {
235237
}
236238
}
237239
}
240+
241+
func TestSetConfigFromFlags(t *testing.T) {
242+
driver, err := getTestDriver()
243+
if err != nil {
244+
t.Fatal(err)
245+
}
246+
247+
checkFlags := &drivers.CheckDriverOptions{
248+
FlagsValues: map[string]interface{}{
249+
"amazonec2-region": "us-west-2",
250+
},
251+
CreateFlags: driver.GetCreateFlags(),
252+
}
253+
254+
driver.SetConfigFromFlags(checkFlags)
255+
256+
assert.NoError(t, err)
257+
assert.Empty(t, checkFlags.InvalidFlags)
258+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package digitalocean
2+
3+
import (
4+
"testing"
5+
6+
"github.com/docker/machine/libmachine/drivers"
7+
"github.com/stretchr/testify/assert"
8+
)
9+
10+
func TestSetConfigFromFlags(t *testing.T) {
11+
driver := NewDriver("default", "path")
12+
13+
checkFlags := &drivers.CheckDriverOptions{
14+
FlagsValues: map[string]interface{}{
15+
"digitalocean-access-token": "TOKEN",
16+
},
17+
CreateFlags: driver.GetCreateFlags(),
18+
}
19+
20+
err := driver.SetConfigFromFlags(checkFlags)
21+
22+
assert.NoError(t, err)
23+
assert.Empty(t, checkFlags.InvalidFlags)
24+
}

drivers/exoscale/exoscale_test.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package exoscale
2+
3+
import (
4+
"testing"
5+
6+
"github.com/docker/machine/libmachine/drivers"
7+
"github.com/stretchr/testify/assert"
8+
)
9+
10+
func TestSetConfigFromFlags(t *testing.T) {
11+
driver := NewDriver("default", "path")
12+
13+
checkFlags := &drivers.CheckDriverOptions{
14+
FlagsValues: map[string]interface{}{
15+
"exoscale-api-key": "API_KEY",
16+
"exoscale-api-secret-key": "API_SECRET_KEY",
17+
},
18+
CreateFlags: driver.GetCreateFlags(),
19+
}
20+
21+
err := driver.SetConfigFromFlags(checkFlags)
22+
23+
assert.NoError(t, err)
24+
assert.Empty(t, checkFlags.InvalidFlags)
25+
}

drivers/generic/generic_test.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package generic
2+
3+
import (
4+
"testing"
5+
6+
"github.com/docker/machine/libmachine/drivers"
7+
"github.com/stretchr/testify/assert"
8+
)
9+
10+
func TestSetConfigFromFlags(t *testing.T) {
11+
driver := NewDriver("default", "path")
12+
13+
checkFlags := &drivers.CheckDriverOptions{
14+
FlagsValues: map[string]interface{}{
15+
"generic-ip-address": "localhost",
16+
"generic-ssh-key": "path",
17+
},
18+
CreateFlags: driver.GetCreateFlags(),
19+
}
20+
21+
err := driver.SetConfigFromFlags(checkFlags)
22+
23+
assert.NoError(t, err)
24+
assert.Empty(t, checkFlags.InvalidFlags)
25+
}

drivers/google/google_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package google
2+
3+
import (
4+
"testing"
5+
6+
"github.com/docker/machine/libmachine/drivers"
7+
"github.com/stretchr/testify/assert"
8+
)
9+
10+
func TestSetConfigFromFlags(t *testing.T) {
11+
driver := NewDriver("default", "path")
12+
13+
checkFlags := &drivers.CheckDriverOptions{
14+
FlagsValues: map[string]interface{}{
15+
"google-project": "PROJECT",
16+
},
17+
CreateFlags: driver.GetCreateFlags(),
18+
}
19+
20+
err := driver.SetConfigFromFlags(checkFlags)
21+
22+
assert.NoError(t, err)
23+
assert.Empty(t, checkFlags.InvalidFlags)
24+
}

drivers/hyperv/hyperv_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package hyperv
2+
3+
import (
4+
"testing"
5+
6+
"github.com/docker/machine/libmachine/drivers"
7+
"github.com/stretchr/testify/assert"
8+
)
9+
10+
func TestSetConfigFromFlags(t *testing.T) {
11+
driver := NewDriver("default", "path")
12+
13+
checkFlags := &drivers.CheckDriverOptions{
14+
FlagsValues: map[string]interface{}{},
15+
CreateFlags: driver.GetCreateFlags(),
16+
}
17+
18+
err := driver.SetConfigFromFlags(checkFlags)
19+
20+
assert.NoError(t, err)
21+
assert.Empty(t, checkFlags.InvalidFlags)
22+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package openstack
2+
3+
import (
4+
"testing"
5+
6+
"github.com/docker/machine/libmachine/drivers"
7+
"github.com/stretchr/testify/assert"
8+
)
9+
10+
func TestSetConfigFromFlags(t *testing.T) {
11+
driver := NewDriver("default", "path")
12+
13+
checkFlags := &drivers.CheckDriverOptions{
14+
FlagsValues: map[string]interface{}{
15+
"openstack-auth-url": "http://url",
16+
"openstack-username": "user",
17+
"openstack-password": "pwd",
18+
"openstack-tenant-id": "ID",
19+
"openstack-flavor-id": "ID",
20+
"openstack-image-id": "ID",
21+
},
22+
CreateFlags: driver.GetCreateFlags(),
23+
}
24+
25+
err := driver.SetConfigFromFlags(checkFlags)
26+
27+
assert.NoError(t, err)
28+
assert.Empty(t, checkFlags.InvalidFlags)
29+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package rackspace
2+
3+
import (
4+
"testing"
5+
6+
"github.com/docker/machine/libmachine/drivers"
7+
"github.com/stretchr/testify/assert"
8+
)
9+
10+
func TestSetConfigFromFlags(t *testing.T) {
11+
driver := NewDriver("default", "path")
12+
13+
checkFlags := &drivers.CheckDriverOptions{
14+
FlagsValues: map[string]interface{}{
15+
"rackspace-region": "REGION",
16+
"rackspace-username": "user",
17+
"rackspace-api-key": "KEY",
18+
"rackspace-endpoint-type": "publicURL",
19+
},
20+
CreateFlags: driver.GetCreateFlags(),
21+
}
22+
23+
err := driver.SetConfigFromFlags(checkFlags)
24+
25+
assert.NoError(t, err)
26+
assert.Empty(t, checkFlags.InvalidFlags)
27+
}

drivers/softlayer/driver_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"testing"
77

88
"github.com/docker/machine/commands/mcndirs"
9+
"github.com/docker/machine/libmachine/drivers"
910
"github.com/stretchr/testify/assert"
1011
)
1112

@@ -101,3 +102,23 @@ func TestHostnameDefaultsToMachineName(t *testing.T) {
101102
assert.Equal(t, machineTestName, d.deviceConfig.Hostname)
102103
}
103104
}
105+
106+
func TestSetConfigFromFlags(t *testing.T) {
107+
driver := NewDriver("default", "path")
108+
109+
checkFlags := &drivers.CheckDriverOptions{
110+
FlagsValues: map[string]interface{}{
111+
"softlayer-api-key": "KEY",
112+
"softlayer-user": "user",
113+
"softlayer-api-endpoint": "ENDPOINT",
114+
"softlayer-domain": "DOMAIN",
115+
"softlayer-region": "REGION",
116+
},
117+
CreateFlags: driver.GetCreateFlags(),
118+
}
119+
120+
err := driver.SetConfigFromFlags(checkFlags)
121+
122+
assert.NoError(t, err)
123+
assert.Empty(t, checkFlags.InvalidFlags)
124+
}

0 commit comments

Comments
 (0)