Skip to content

Commit a4e1c53

Browse files
committed
BugFix: Better error handling for azure
Azure didn't handle error handling for cases when NIC wasn't created properly. This commit fixes that by embedding appropriate error messages when errors occur in Azure driver machine creation logic.
1 parent 83af400 commit a4e1c53

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

pkg/driver/driver_azure.go

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ func (d *AzureDriver) Create() (string, string, error) {
7676
"",
7777
)
7878
err = onErrorFail(err, fmt.Sprintf("subnetClient.Get failed for subnet %q", subnet.Name))
79+
if err != nil {
80+
return "Error", "Error", err
81+
}
7982

8083
enableIPForwarding := true
8184
nicParameters := network.Interface{
@@ -94,11 +97,20 @@ func (d *AzureDriver) Create() (string, string, error) {
9497
},
9598
Tags: &tagList,
9699
}
97-
cancel := make(chan struct{})
100+
101+
var cancel chan struct{}
102+
98103
_, errChan := interfacesClient.CreateOrUpdate(resourceGroup, nicName, nicParameters, cancel)
99104
err = onErrorFail(<-errChan, fmt.Sprintf("interfacesClient.CreateOrUpdate for NIC '%s' failed", nicName))
105+
if err != nil {
106+
return "Error", "Error", err
107+
}
108+
100109
nicParameters, err = interfacesClient.Get(resourceGroup, nicName, "")
101110
err = onErrorFail(err, fmt.Sprintf("interfaces.Get for NIC '%s' failed", nicName))
111+
if err != nil {
112+
return "Error", "Error", err
113+
}
102114

103115
vm := compute.VirtualMachine{
104116
Location: &location,
@@ -155,9 +167,13 @@ func (d *AzureDriver) Create() (string, string, error) {
155167
},
156168
Tags: &tagList,
157169
}
170+
171+
cancel = nil
158172
_, errChan = vmClient.CreateOrUpdate(resourceGroup, vmName, vm, cancel)
159173
err = onErrorFail(<-errChan, "createVM failed")
160-
//glog.Infof("Created machine '%s' successfully\n", vmName)
174+
if err != nil {
175+
return "Error", "Error", err
176+
}
161177

162178
return d.encodeMachineID(location, vmName), vmName, err
163179
}

0 commit comments

Comments
 (0)