Allow engine and metadata server start in any order

When the metadata server starts first, it will wait for the engine to come up
and only then registers it's hostname and port and becomes available.

Signed-off-by: Tomas Sedovic <tomas@sedovic.cz>
This commit is contained in:
Tomas Sedovic 2012-05-17 16:49:15 +02:00
parent a18fb604cc
commit 67203a5497
1 changed files with 9 additions and 3 deletions

View File

@ -45,9 +45,15 @@ LOG = logging.getLogger('heat.metadata')
def send_address_to_engine(host, port):
con = context.get_admin_context()
resp = rpc.call(con, 'engine',
{'method': 'metadata_register_address',
'args': {'url': 'http://%s:%s' % (host, port)}})
while True:
try:
resp = rpc.call(con, 'engine',
{'method': 'metadata_register_address',
'args': {'url': 'http://%s:%s' % (host, port)}})
LOG.info('registered the hostname and port with the engine.')
return
except rpc.common.Timeout:
LOG.info('Could not connect to the engine, retrying...')
if __name__ == '__main__':