X Tutup
Skip to content

Commit b68f114

Browse files
committed
Merge branch 'origin/master' into driver-refactor
2 parents 58de06d + f0cbb81 commit b68f114

File tree

2 files changed

+90
-1
lines changed

2 files changed

+90
-1
lines changed

drivers/softlayer/driver.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
238238
PrivateNet: flags.Bool("softlayer-private-net-only"),
239239
LocalDisk: flags.Bool("softlayer-local-disk"),
240240
HourlyBilling: flags.Bool("softlayer-hourly-billing"),
241-
Image: "UBUNTU_LATEST",
241+
Image: flags.String("softlayer-image"),
242242
Region: flags.String("softlayer-region"),
243243
}
244244
return validateDeviceConfig(d.deviceConfig)

drivers/softlayer/driver_test.go

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,90 @@
11
package softlayer
2+
3+
import (
4+
"io/ioutil"
5+
"os"
6+
"testing"
7+
)
8+
9+
const (
10+
testStoreDir = ".store-test"
11+
machineTestName = "test-host"
12+
machineTestCaCert = "test-cert"
13+
machineTestPrivateKey = "test-key"
14+
)
15+
16+
type DriverOptionsMock struct {
17+
Data map[string]interface{}
18+
}
19+
20+
func (d DriverOptionsMock) String(key string) string {
21+
if value, ok := d.Data[key]; ok {
22+
return value.(string)
23+
}
24+
return ""
25+
}
26+
27+
func (d DriverOptionsMock) Int(key string) int {
28+
if value, ok := d.Data[key]; ok {
29+
return value.(int)
30+
}
31+
return 0
32+
}
33+
34+
func (d DriverOptionsMock) Bool(key string) bool {
35+
if value, ok := d.Data[key]; ok {
36+
return value.(bool)
37+
}
38+
return false
39+
}
40+
41+
func cleanup() error {
42+
return os.RemoveAll(testStoreDir)
43+
}
44+
45+
func getTestStorePath() (string, error) {
46+
tmpDir, err := ioutil.TempDir("", "machine-test-")
47+
if err != nil {
48+
return "", err
49+
}
50+
os.Setenv("MACHINE_STORAGE_PATH", tmpDir)
51+
return tmpDir, nil
52+
}
53+
54+
func getDefaultTestDriverFlags() *DriverOptionsMock {
55+
return &DriverOptionsMock{
56+
Data: map[string]interface{}{
57+
"name": "test",
58+
"url": "unix:///var/run/docker.sock",
59+
"softlayer-api-key": "12345",
60+
"softlayer-user": "abcdefg",
61+
"softlayer-api-endpoint": "https://api.softlayer.com/rest/v3",
62+
"softlayer-image": "MY_TEST_IMAGE",
63+
},
64+
}
65+
}
66+
67+
func getTestDriver() (*Driver, error) {
68+
storePath, err := getTestStorePath()
69+
if err != nil {
70+
return nil, err
71+
}
72+
defer cleanup()
73+
74+
d, err := NewDriver(machineTestName, storePath, machineTestCaCert, machineTestPrivateKey)
75+
if err != nil {
76+
return nil, err
77+
}
78+
d.SetConfigFromFlags(getDefaultTestDriverFlags())
79+
drv := d.(*Driver)
80+
return drv, nil
81+
}
82+
83+
func TestSetConfigFromFlagsSetsImage(t *testing.T) {
84+
d, _ := getTestDriver()
85+
86+
img := d.deviceConfig.Image
87+
if img != "MY_TEST_IMAGE" {
88+
t.Fatalf("expected 'MY_TEST_IMAGE'; received %s", img)
89+
}
90+
}

0 commit comments

Comments
 (0)
X Tutup