Skip to content

Commit 58de06d

Browse files
committed
merge master
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2 parents b442515 + aae1cb3 commit 58de06d

File tree

1 file changed

+50
-120
lines changed

1 file changed

+50
-120
lines changed

drivers/azure/azure.go

Lines changed: 50 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package azure
22

33
import (
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

270261
func (d *Driver) GetURL() (string, error) {
@@ -277,15 +268,14 @@ func (d *Driver) GetIP() (string, error) {
277268
}
278269

279270
func (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

307297
func (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

339320
func (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

362337
func (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

385352
func (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

415374
func (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

442391
func generateVMName() string {
@@ -445,34 +394,26 @@ func generateVMName() string {
445394
}
446395

447396
func (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

462403
func (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

482423
func (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

492428
func (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

521457
func (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

540470
func (d *Driver) azureCertPath() string {

0 commit comments

Comments
 (0)