Merge "Initial support to collect node facts like UUID"

This commit is contained in:
Jenkins 2015-10-05 21:59:35 +00:00 committed by Gerrit Code Review
commit aeefdc9f74
2 changed files with 34 additions and 2 deletions

View File

@ -82,6 +82,7 @@ def main():
name=dict(required=False), name=dict(required=False),
mac=dict(required=False), mac=dict(required=False),
ironic_url=dict(required=False), ironic_url=dict(required=False),
skip_items=dict(required=False, type='list'),
) )
module_kwargs = openstack_module_kwargs() module_kwargs = openstack_module_kwargs()
module = AnsibleModule(argument_spec, **module_kwargs) module = AnsibleModule(argument_spec, **module_kwargs)
@ -114,13 +115,18 @@ def main():
if server: if server:
facts = dict(server) facts = dict(server)
new_driver_info = dict() new_driver_info = dict()
# Rebuild driver_info to remove any password # Rebuild driver_info to remove any password values
# fields as they can be masked. # as they will be masked.
for key, value in six.iteritems(facts['driver_info']): for key, value in six.iteritems(facts['driver_info']):
if 'password' not in key: if 'password' not in key:
new_driver_info[key] = value new_driver_info[key] = value
if new_driver_info: if new_driver_info:
facts['driver_info'] = new_driver_info facts['driver_info'] = new_driver_info
for item in module.params['skip_items']:
if item in facts:
del facts[item]
module.exit_json(changed=False, ansible_facts=facts) module.exit_json(changed=False, ansible_facts=facts)
else: else:

View File

@ -0,0 +1,26 @@
# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
# Note(TheJulia): This step allows us to collect things that
# ironic knows, that we do not know potentially, such as an UUID
# should a node have been created without one.
- name: "Collecting node facts"
os_ironic_facts:
auth_type: None
auth: None
ironic_url: "{{ ironic_url }}"
uuid: "{{ uuid | default() }}"
name: "{{ name | default() }}"
skip_items:
- instance_info