Configure haproxy keystone backend before keystone service

Configure haproxy keystone backend before keystone service
starts. This will fix ordering problem when we have keystone
resources created before keystone is available. Service
is already started before resources creation, so that
puppet provider will receive a couple of 503|504 HTTP
errors in the worst case and handle them.

Closes-bug: #1357386

Change-Id: I906fb01f678b0407e421a5db7f617901fed80f79
This commit is contained in:
Vladimir Kuklin
2014-08-15 19:32:45 +04:00
parent 81741445d4
commit 6a157f7e5c
2 changed files with 2 additions and 3 deletions

View File

@@ -54,7 +54,7 @@ class Puppet::Provider::Keystone < Puppet::Provider
rv = keystone('--os-token', admin_token, '--os-endpoint', admin_endpoint, args)
break
rescue Exception => e
if e.message =~ /(\(HTTP\s+400\))|(\[Errno 111\]\s+Connection\s+refused)|(503\s+Service\s+Unavailable)|(Max\s+retries\s+exceeded)|(Unable\sto\sestablish\sconnection\sto)/
if e.message =~ /(\(HTTP\s+400\))|(\[Errno 111\]\s+Connection\s+refused)|(503\s+Service\s+Unavailable)|(Max\s+retries\s+exceeded)|(Unable\sto\sestablish\sconnection\sto)|\(HTTP\s+50[34]\)/
notice("Can't connect to keystone backend. Waiting for retry...")
retries -= 1
sleep 2

View File

@@ -5,13 +5,12 @@ class openstack::ha::keystone {
order => '020',
listen_port => 5000,
public => true,
require_service => 'keystone',
}
openstack::ha::haproxy_service { 'keystone-2':
order => '030',
listen_port => 35357,
public => true,
require_service => 'keystone',
}
Openstack::Ha::Haproxy_service['keystone-1', 'keystone-2']->Service<| title=='keystone' |>
}