File tree Expand file tree Collapse file tree 4 files changed +19
-9
lines changed Expand file tree Collapse file tree 4 files changed +19
-9
lines changed Original file line number Diff line number Diff line change 1
- VERSION = 0.2
1
+ VERSION = 0.3
2
2
3
3
default : fmt build test
4
4
Original file line number Diff line number Diff line change @@ -39,6 +39,8 @@ Environment: `DD_COMPUTE_REGION`.
39
39
* ` ddcloud-networkdomain ` - The name of the target CloudControl network domain.
40
40
* ` ddcloud-datacenter ` - The name of the CloudControl datacenter (e.g. NA1, AU9) in which the network domain is located.
41
41
* ` ddcloud-vlan ` - The name of the target CloudControl VLAN.
42
+ * ` ddcloud-image-name ` - The name of the OS image used to create the target machine.
43
+ Note that only OS images are supported for now, not customer images. Additionally, the OS must be a Linux distribution supported by docker-machine.
42
44
* ` ddcloud-ssh-user ` - The SSH username to use.
43
45
Default: "root".
44
46
Environment: ` DD_COMPUTE_SSH_USER `
Original file line number Diff line number Diff line change @@ -203,11 +203,6 @@ func (driver *Driver) getOSImage() (*compute.OSImage, error) {
203
203
func (driver * Driver ) resolveOSImage () error {
204
204
driver .ImageID = ""
205
205
206
- networkDomain , err := driver .getNetworkDomain ()
207
- if err != nil {
208
- return err
209
- }
210
-
211
206
client , err := driver .getCloudControlClient ()
212
207
if err != nil {
213
208
return err
@@ -218,9 +213,17 @@ func (driver *Driver) resolveOSImage() error {
218
213
return err
219
214
}
220
215
if image == nil {
221
- log .Errorf ("OS image '%s' was not found in data centre '%s'." , driver .ImageName , networkDomain .DatacenterID )
216
+ log .Errorf ("OS image '%s' was not found in data centre '%s'." , driver .ImageName , driver .DataCenterID )
217
+
218
+ return fmt .Errorf ("OS image '%s' was not found in data centre '%s'" , driver .ImageName , driver .DataCenterID )
219
+ }
222
220
223
- return fmt .Errorf ("OS image '%s' was not found in data centre '%s'" , driver .ImageName , networkDomain .DatacenterID )
221
+ if image .OperatingSystem .Family != "UNIX" {
222
+ return fmt .Errorf ("OS image '%s' in data centre '%s' is not from a supported OS family (expected 'UNIX', but found '%s')" ,
223
+ driver .ImageName ,
224
+ driver .DataCenterID ,
225
+ image .OperatingSystem .Family ,
226
+ )
224
227
}
225
228
226
229
driver .ImageID = image .ID
Original file line number Diff line number Diff line change @@ -116,6 +116,11 @@ func (driver *Driver) GetCreateFlags() []mcnflag.Flag {
116
116
Usage : "The name of the target CloudControl VLAN" ,
117
117
Value : "" ,
118
118
},
119
+ mcnflag.StringFlag {
120
+ Name : "ddcloud-image-name" ,
121
+ Usage : fmt .Sprintf (`The name of OS image used to create the target machine. Default: "%s"` , DefaultImageName ),
122
+ Value : DefaultImageName ,
123
+ },
119
124
mcnflag.StringFlag {
120
125
EnvVar : "DD_COMPUTE_SSH_USER" ,
121
126
Name : "ddcloud-ssh-user" ,
@@ -161,7 +166,7 @@ func (driver *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
161
166
driver .NetworkDomainName = flags .String ("ddcloud-networkdomain" )
162
167
driver .DataCenterID = flags .String ("ddcloud-datacenter" )
163
168
driver .VLANName = flags .String ("ddcloud-vlan" )
164
- driver .ImageName = DefaultImageName
169
+ driver .ImageName = flags . String ( "ddcloud-image-name" )
165
170
166
171
driver .SSHPort = flags .Int ("ddcloud-ssh-port" )
167
172
driver .SSHUser = flags .String ("ddcloud-ssh-user" )
You can’t perform that action at this time.
0 commit comments