11package azure
22
33import (
4+ "errors"
45 "fmt"
56 "net"
67 "os"
@@ -175,7 +176,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
175176 }
176177
177178 if (d .SubscriptionID == "" || d .SubscriptionCert == "" ) && d .PublishSettingsFilePath == "" {
178- return fmt . Errorf ("Please specify azure subscription params using options: --azure-subscription-id and --azure-subscription-cert or --azure-publish-settings-file" )
179+ return errors . New ("Please specify azure subscription params using options: --azure-subscription-id and --azure-subscription-cert or --azure-publish-settings-file" )
179180 }
180181
181182 if image == "" {
@@ -188,7 +189,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
188189 d .Size = flags .String ("azure-size" )
189190
190191 if strings .ToLower (username ) == "docker" {
191- return fmt . Errorf ("'docker' is not valid user name for docker host. Please specify another user name" )
192+ return errors . New ("'docker' is not valid user name for docker host. Please specify another user name" )
192193 }
193194
194195 d .SSHUser = username
@@ -214,7 +215,7 @@ func (d *Driver) PreCreateCheck() error {
214215 }
215216
216217 if ! available {
217- return fmt . Errorf (response )
218+ return errors . New (response )
218219 }
219220
220221 return nil
@@ -237,12 +238,7 @@ func (d *Driver) Create() error {
237238 }
238239
239240 log .Debug ("Adding Linux provisioning..." )
240- user := d .GetSSHUsername ()
241- port , err := d .GetSSHPort ()
242- if err != nil {
243- return err
244- }
245- vmConfig , err = vmClient .AddAzureLinuxProvisioningConfig (vmConfig , user , d .UserPassword , d .azureCertPath (), port )
241+ vmConfig , err = vmClient .AddAzureLinuxProvisioningConfig (vmConfig , d .GetSSHUsername (), d .UserPassword , d .azureCertPath (), d .SSHPort )
246242 if err != nil {
247243 return err
248244 }
@@ -259,12 +255,7 @@ func (d *Driver) Create() error {
259255
260256 log .Info ("Waiting for SSH..." )
261257 log .Debugf ("Host: %s SSH Port: %d" , d .getHostname (), d .SSHPort )
262-
263- if err := ssh .WaitForTCP (fmt .Sprintf ("%s:%d" , d .getHostname (), d .SSHPort )); err != nil {
264- return err
265- }
266-
267- return nil
258+ return ssh .WaitForTCP (fmt .Sprintf ("%s:%d" , d .getHostname (), d .SSHPort ))
268259}
269260
270261func (d * Driver ) GetURL () (string , error ) {
@@ -277,15 +268,14 @@ func (d *Driver) GetIP() (string, error) {
277268}
278269
279270func (d * Driver ) GetState () (state.State , error ) {
280- err := d .setUserSubscription ()
281- if err != nil {
271+ if err := d .setUserSubscription (); err != nil {
282272 return state .Error , err
283273 }
284274
285275 dockerVM , err := vmClient .GetVMDeployment (d .MachineName , d .MachineName )
286276 if err != nil {
287277 if strings .Contains (err .Error (), "Code: ResourceNotFound" ) {
288- return state .Error , fmt . Errorf ("Azure host was not found. Please check your Azure subscription." )
278+ return state .Error , errors . New ("Azure host was not found. Please check your Azure subscription." )
289279 }
290280
291281 return state .Error , err
@@ -305,138 +295,97 @@ func (d *Driver) GetState() (state.State, error) {
305295}
306296
307297func (d * Driver ) Start () error {
308- err := d .setUserSubscription ()
309- if err != nil {
298+ if err := d .setUserSubscription (); err != nil {
310299 return err
311300 }
312301
313- vmState , err := d .GetState ()
314- if err != nil {
302+ if vmState , err := d .GetState (); err != nil {
315303 return err
316- }
317- if vmState == state .Running || vmState == state .Starting {
304+ } else if vmState == state .Running || vmState == state .Starting {
318305 log .Infof ("Host is already running or starting" )
319306 return nil
320307 }
321308
322309 log .Debugf ("starting %s" , d .MachineName )
323310
324- err = vmClient .StartRole (d .MachineName , d .MachineName , d .MachineName )
325- if err != nil {
311+ if err := vmClient .StartRole (d .MachineName , d .MachineName , d .MachineName ); err != nil {
326312 return err
327313 }
328- err = d .waitForSSH ()
329- if err != nil {
330- return err
331- }
332- err = d .waitForDocker ()
333- if err != nil {
314+ if err := d .waitForSSH (); err != nil {
334315 return err
335316 }
336- return nil
317+ return d . waitForDocker ()
337318}
338319
339320func (d * Driver ) Stop () error {
340- err := d .setUserSubscription ()
341- if err != nil {
321+ if err := d .setUserSubscription (); err != nil {
342322 return err
343323 }
344- vmState , err := d . GetState ()
345- if err != nil {
324+
325+ if vmState , err := d . GetState (); err != nil {
346326 return err
347- }
348- if vmState == state .Stopped {
327+ } else if vmState == state .Stopped {
349328 log .Infof ("Host is already stopped" )
350329 return nil
351330 }
352331
353332 log .Debugf ("stopping %s" , d .MachineName )
354333
355- err = vmClient .ShutdownRole (d .MachineName , d .MachineName , d .MachineName )
356- if err != nil {
357- return err
358- }
359- return nil
334+ return vmClient .ShutdownRole (d .MachineName , d .MachineName , d .MachineName )
360335}
361336
362337func (d * Driver ) Remove () error {
363- err := d .setUserSubscription ()
364- if err != nil {
338+ if err := d .setUserSubscription (); err != nil {
365339 return err
366340 }
367- available , _ , err := vmClient .CheckHostedServiceNameAvailability (d .MachineName )
368- if err != nil {
341+ if available , _ , err := vmClient .CheckHostedServiceNameAvailability (d .MachineName ); err != nil {
369342 return err
370- }
371- if available {
343+ } else if available {
372344 return nil
373345 }
374346
375347 log .Debugf ("removing %s" , d .MachineName )
376348
377- err = vmClient .DeleteHostedService (d .MachineName )
378- if err != nil {
379- return err
380- }
381-
382- return nil
349+ return vmClient .DeleteHostedService (d .MachineName )
383350}
384351
385352func (d * Driver ) Restart () error {
386353 err := d .setUserSubscription ()
387354 if err != nil {
388355 return err
389356 }
390- vmState , err := d .GetState ()
391- if err != nil {
357+ if vmState , err := d .GetState (); err != nil {
392358 return err
393- }
394- if vmState == state .Stopped {
395- return fmt .Errorf ("Host is already stopped, use start command to run it" )
359+ } else if vmState == state .Stopped {
360+ return errors .New ("Host is already stopped, use start command to run it" )
396361 }
397362
398363 log .Debugf ("restarting %s" , d .MachineName )
399364
400- err = vmClient .RestartRole (d .MachineName , d .MachineName , d .MachineName )
401- if err != nil {
402- return err
403- }
404- err = d .waitForSSH ()
405- if err != nil {
365+ if err := vmClient .RestartRole (d .MachineName , d .MachineName , d .MachineName ); err != nil {
406366 return err
407367 }
408- err = d .waitForDocker ()
409- if err != nil {
368+ if err := d .waitForSSH (); err != nil {
410369 return err
411370 }
412- return nil
371+ return d . waitForDocker ()
413372}
414373
415374func (d * Driver ) Kill () error {
416- err := d .setUserSubscription ()
417- if err != nil {
375+ if err := d .setUserSubscription (); err != nil {
418376 return err
419377 }
420- vmState , err := d . GetState ()
421- if err != nil {
378+
379+ if vmState , err := d . GetState (); err != nil {
422380 return err
423- }
424- if vmState == state .Stopped {
381+ } else if vmState == state .Stopped {
425382 log .Infof ("Host is already stopped" )
426383 return nil
427384 }
428385
429386 log .Debugf ("killing %s" , d .MachineName )
430387
431- err = vmClient .ShutdownRole (d .MachineName , d .MachineName , d .MachineName )
432- if err != nil {
433- return err
434- }
435- return nil
436- }
437-
438- func (d * Driver ) GetDockerConfigDir () string {
439- return dockerConfigDir
388+ return vmClient .ShutdownRole (d .MachineName , d .MachineName , d .MachineName )
440389}
441390
442391func generateVMName () string {
@@ -445,34 +394,26 @@ func generateVMName() string {
445394}
446395
447396func (d * Driver ) setUserSubscription () error {
448- if len (d .PublishSettingsFilePath ) != 0 {
449- err := azure .ImportPublishSettingsFile (d .PublishSettingsFilePath )
450- if err != nil {
451- return err
452- }
453- return nil
397+ if d .PublishSettingsFilePath != "" {
398+ return azure .ImportPublishSettingsFile (d .PublishSettingsFilePath )
454399 }
455- err := azure .ImportPublishSettings (d .SubscriptionID , d .SubscriptionCert )
456- if err != nil {
457- return err
458- }
459- return nil
400+ return azure .ImportPublishSettings (d .SubscriptionID , d .SubscriptionCert )
460401}
461402
462403func (d * Driver ) addDockerEndpoint (vmConfig * vmClient.Role ) error {
463404 configSets := vmConfig .ConfigurationSets .ConfigurationSet
464405 if len (configSets ) == 0 {
465- return fmt . Errorf ("no configuration set" )
406+ return errors . New ("no configuration set" )
466407 }
467408 for i := 0 ; i < len (configSets ); i ++ {
468409 if configSets [i ].ConfigurationSetType != "NetworkConfiguration" {
469410 continue
470411 }
471- ep := vmClient.InputEndpoint {}
472- ep . Name = "docker"
473- ep . Protocol = "tcp"
474- ep . Port = d .DockerPort
475- ep . LocalPort = d .DockerPort
412+ ep := vmClient.InputEndpoint {
413+ Name : "docker" ,
414+ Protocol : "tcp" ,
415+ Port : d .DockerPort ,
416+ LocalPort : d .DockerPort }
476417 configSets [i ].InputEndpoints .InputEndpoint = append (configSets [i ].InputEndpoints .InputEndpoint , ep )
477418 log .Debugf ("added Docker endpoint (port %d) to configuration" , d .DockerPort )
478419 }
@@ -481,12 +422,7 @@ func (d *Driver) addDockerEndpoint(vmConfig *vmClient.Role) error {
481422
482423func (d * Driver ) waitForSSH () error {
483424 log .Infof ("Waiting for SSH..." )
484- err := ssh .WaitForTCP (fmt .Sprintf ("%s:%v" , d .getHostname (), d .SSHPort ))
485- if err != nil {
486- return err
487- }
488-
489- return nil
425+ return ssh .WaitForTCP (fmt .Sprintf ("%s:%v" , d .getHostname (), d .SSHPort ))
490426}
491427
492428func (d * Driver ) waitForDocker () error {
@@ -495,7 +431,7 @@ func (d *Driver) waitForDocker() error {
495431 url := fmt .Sprintf ("%s:%v" , d .getHostname (), d .DockerPort )
496432 success := waitForDockerEndpoint (url , maxRepeats )
497433 if ! success {
498- return fmt . Errorf ("Can not run docker daemon on remote machine. Please try again." )
434+ return errors . New ("Can not run docker daemon on remote machine. Please try again." )
499435 }
500436 return nil
501437}
@@ -519,22 +455,16 @@ func waitForDockerEndpoint(url string, maxRepeats int) bool {
519455}
520456
521457func (d * Driver ) generateCertForAzure () error {
522- keyPath := d .GetSSHKeyPath ()
523-
524- if err := ssh .GenerateSSHKey (keyPath ); err != nil {
458+ if err := ssh .GenerateSSHKey (d .sshKeyPath ()); err != nil {
525459 return err
526460 }
527461
528- cmd := exec .Command ("openssl" , "req" , "-x509" , "-key" , keyPath , "-nodes" , "-days" , "365" , "-newkey" , "rsa:2048" , "-out" , d .azureCertPath (), "-subj" , "/C=AU/ST=Some-State/O=InternetWidgitsPtyLtd/CN=\\ *" )
529- if err := cmd .Run (); err != nil {
530- return err
531- }
532-
533- return nil
462+ cmd := exec .Command ("openssl" , "req" , "-x509" , "-key" , d .sshKeyPath (), "-nodes" , "-days" , "365" , "-newkey" , "rsa:2048" , "-out" , d .azureCertPath (), "-subj" , "/C=AU/ST=Some-State/O=InternetWidgitsPtyLtd/CN=\\ *" )
463+ return cmd .Run ()
534464}
535465
536- func (d * Driver ) publicSSHKeyPath () string {
537- return d . GetSSHKeyPath () + ".pub"
466+ func (d * Driver ) sshKeyPath () string {
467+ return filepath . Join ( d . storePath , "id_rsa" )
538468}
539469
540470func (d * Driver ) azureCertPath () string {
0 commit comments