ansible-role-puppet/library/puppet_get_hiera_file_list

71 lines
2.0 KiB
Python

#!/usr/bin/python
# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
#
# This module is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this software. If not, see <http://www.gnu.org/licenses/>.
DOCUMENTATION = '''
---
module: puppet_get_hiera_file_list
short_description: Create a list of hiera file paths
description:
- Create a list of hiera file paths
options:
fqdn:
description:
- The ansible fqdn
required: true
groups:
description:
- The groups the host is in
required: true
location:
description:
- Base hiera location in which to look for files
required: true
requirements: [ ]
author: Monty Taylor
'''
def main():
module = AnsibleModule(
argument_spec=dict(
# See AnsibleModule._CHECK_ARGUMENT_TYPES_DISPATCHER for the
# names of valid types
fqdn=dict(required=True, type='str'),
groups=dict(required=True, type='list'),
location=dict(required=True, type='str'),
),
)
p = module.params
paths = ['group/%s.yaml' % f for f in p['groups'] ]
paths.append('common.yaml')
paths.append('fqdn/%s.yaml' % p['fqdn'])
good_paths = []
for path in paths:
full_path = os.path.join(p['location'], path)
if os.path.exists(full_path):
good_paths.append(path)
module.exit_json(paths=good_paths)
# import module snippets
from ansible.module_utils.basic import *
if __name__ == '__main__':
main()