config: ignore missing server_id from the stack
When blacklisting nodes on the overcloud, we don't want to generated a configuration with these servers. This patch ignore the server when server_id can't be found in the stack when generating the configuration of the overcloud. A warning is shown so the operator knows this server isn't part of the configuration, probably due to blacklisting. If getting the server name fails for another reason than a KeyError, we fail the configuration generation and raise an exception with the error message. Change-Id: Ie7660894050e5eca251aaf8c10f0cc7e7d837dfc Closes-Bug: #1793605
This commit is contained in:
parent
17b8424d20
commit
272bd17c30
@ -0,0 +1,7 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
Fixes `bug 1793605 <https://bugs.launchpad.net/tripleo/+bug/1793605>`__ so
|
||||
when nodes are blacklisted, they are not included in the Overcloud config.
|
||||
A warning will show that the server_id that was ignored if the it can't
|
||||
be found in the stack.
|
@ -305,9 +305,23 @@ class Config(object):
|
||||
[i for i in config_dict['inputs']
|
||||
if i['name'] == 'deploy_server_id'].pop()
|
||||
deploy_server_id_input['value'] = server_id
|
||||
server_deployments.setdefault(
|
||||
server_names[server_id],
|
||||
[]).append(config_dict)
|
||||
|
||||
# We don't want to fail if server_id can't be found, as it's
|
||||
# most probably due to blacklisted nodes. However we fail for
|
||||
# other errors.
|
||||
try:
|
||||
server_deployments.setdefault(
|
||||
server_names[server_id],
|
||||
[]).append(config_dict)
|
||||
except KeyError:
|
||||
self.log.warning('Server with id %s is ignored from config '
|
||||
'(may be blacklisted)' % server_id)
|
||||
# continue the loop as this server_id is probably excluded
|
||||
continue
|
||||
except Exception as err:
|
||||
err_msg = ('Error retrieving server name from this server_id: '
|
||||
'%s with this error: %s' % server_id, err)
|
||||
raise Exception(err_msg)
|
||||
|
||||
role = self.get_role_from_server_id(stack, server_id)
|
||||
role_deployments = role_deployment_names.setdefault(role, {})
|
||||
|
Loading…
Reference in New Issue
Block a user