From cea812c3a7391914f9b6225584bedccab77c5e61 Mon Sep 17 00:00:00 2001 From: Bryan Larsen Date: Thu, 11 Jul 2013 14:05:26 -0400 Subject: [PATCH] update_attr should wait for the full wait timeout before checking for a missing IP addres --- library/cloud/digital_ocean | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/library/cloud/digital_ocean b/library/cloud/digital_ocean index c2359ade5d..d020b07b8a 100644 --- a/library/cloud/digital_ocean +++ b/library/cloud/digital_ocean @@ -189,19 +189,13 @@ class Droplet(JsonfyMixIn): def is_powered_on(self): return self.status == 'active' - def update_attr(self, attrs=None, times=5): + def update_attr(self, attrs=None): if attrs: for k, v in attrs.iteritems(): setattr(self, k, v) else: json = self.manager.show_droplet(self.id) - if not json['ip_address']: - if times > 0: - time.sleep(2) - self.update_attr(times=times-1) - else: - raise TimeoutError('No ip is found.', self.id) - else: + if json['ip_address']: self.update_attr(json) def power_on(self): @@ -221,6 +215,8 @@ class Droplet(JsonfyMixIn): time.sleep(min(20, end_time-time.time())) self.update_attr() if self.is_powered_on(): + if not self.ip_address: + raise TimeoutError('No ip is found.', self.id) return raise TimeoutError('Wait for droplet running timeout', self.id)