https://bugzilla.redhat.com/show_bug.cgi?id=766661
Exec[deltacloud-core-startup-wait] naively sleeps for one second in
order to allow deltacloud-core to completely start up. However in
observation sometimes deltacloud-core can take upwards of 20 seconds
to start. This patch modifies the exec to instead poll to ensure
deltacloud-core is listening on localhost:3002.
---
recipes/aeolus/manifests/deltacloud.pp | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/recipes/aeolus/manifests/deltacloud.pp
b/recipes/aeolus/manifests/deltacloud.pp
index cb442d1..08cd671 100644
--- a/recipes/aeolus/manifests/deltacloud.pp
+++ b/recipes/aeolus/manifests/deltacloud.pp
@@ -34,11 +34,12 @@ class aeolus::deltacloud::core {
hasstatus => true,
require => [Package['deltacloud-core'],
File["/var/log/deltacloud-core"]]}
- # Need to pause for a second for deltacloud-core to complete startup
+ # Need to poll for deltacloud-core to complete startup
# otherwise one may see connect issues when adding providers
exec{"deltacloud-core-startup-wait":
- cwd => '/bin',
- command => "/bin/sleep 1",
+ command => "/usr/bin/nc -z localhost 3002",
+ tries => 60,
+ try_sleep => 1,
require => Service["deltacloud-core"]}
}
--
1.7.7.5