Skip to content

Commit 9a66094

Browse files
committed
getDroplet returns Promise.reject
1 parent 012a988 commit 9a66094

1 file changed

Lines changed: 9 additions & 10 deletions

File tree

src/cloud/digitalocean/provisioner.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,13 @@ class Provisioner {
7171
}).then((keys: KeyPair) => {
7272
// Get SSH keys
7373
this.state_.ssh = keys;
74-
return this.getDroplet_(name);
74+
return this.getDroplet_(name).catch((e: Error) => {
75+
// Droplet does not exist so continue creating new server
76+
return Promise.resolve<void>();
77+
});
7578
}).then((resp: any) => {
76-
if (resp.droplet) {
79+
if (resp) {
80+
// Droplet exists so return error
7781
return Promise.reject({
7882
'errcode': 'VM_AE',
7983
'message': 'Droplet ' + name + ' already exists'
@@ -132,12 +136,6 @@ class Provisioner {
132136
// Find and delete the server with the same name
133137
return this.getDroplet_(name);
134138
}).then((resp :any) => {
135-
if (!resp.droplet) {
136-
return Promise.reject({
137-
'errcode': 'VM_DNE',
138-
'message': 'Droplet ' + name + ' doesnt exist'
139-
});
140-
}
141139
this.state_.cloud = {};
142140
this.state_.cloud.vm = resp.droplet;
143141
return this.doRequest_('DELETE', 'droplets/' + resp.droplet.id);
@@ -170,8 +168,9 @@ class Provisioner {
170168
});
171169
}
172170
}
173-
return Promise.resolve({
174-
droplet: undefined
171+
return Promise.reject({
172+
'errcode': 'VM_DNE',
173+
'message': 'Droplet ' + name + ' doesnt exist'
175174
});
176175
});
177176
}

0 commit comments

Comments
 (0)