mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-07 05:42:50 +00:00
meta: refresh_inventory and several inventory fixes
This commit is contained in:
1
lib/ansible/plugins/inventory/README.md
Normal file
1
lib/ansible/plugins/inventory/README.md
Normal file
@@ -0,0 +1 @@
|
||||
These are not currently in use, but this is what the future of inventory will become after 2.0
|
||||
@@ -22,11 +22,14 @@ from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
import os
|
||||
from ansible import constants as C
|
||||
|
||||
from . aggregate import InventoryAggregateParser
|
||||
|
||||
class InventoryDirectoryParser(InventoryAggregateParser):
|
||||
|
||||
CONDITION="is_dir(%s)"
|
||||
|
||||
def __init__(self, inven_directory):
|
||||
directory = inven_directory
|
||||
names = os.listdir(inven_directory)
|
||||
@@ -35,7 +38,7 @@ class InventoryDirectoryParser(InventoryAggregateParser):
|
||||
# Clean up the list of filenames
|
||||
for filename in names:
|
||||
# Skip files that end with certain extensions or characters
|
||||
if any(filename.endswith(ext) for ext in ("~", ".orig", ".bak", ".ini", ".retry", ".pyc", ".pyo")):
|
||||
if any(filename.endswith(ext) for ext in C.DEFAULT_INVENTORY_IGNORE):
|
||||
continue
|
||||
# Skip hidden files
|
||||
if filename.startswith('.') and not filename.startswith('.{0}'.format(os.path.sep)):
|
||||
|
||||
@@ -23,10 +23,13 @@ __metaclass__ = type
|
||||
|
||||
import os
|
||||
|
||||
from ansible import constants as C
|
||||
from . import InventoryParser
|
||||
|
||||
class InventoryIniParser(InventoryAggregateParser):
|
||||
|
||||
CONDITION="is_file(%s)"
|
||||
|
||||
def __init__(self, inven_directory):
|
||||
directory = inven_directory
|
||||
names = os.listdir(inven_directory)
|
||||
@@ -35,7 +38,7 @@ class InventoryIniParser(InventoryAggregateParser):
|
||||
# Clean up the list of filenames
|
||||
for filename in names:
|
||||
# Skip files that end with certain extensions or characters
|
||||
if any(filename.endswith(ext) for ext in ("~", ".orig", ".bak", ".ini", ".retry", ".pyc", ".pyo")):
|
||||
if any(filename.endswith(ext) for ext in C.DEFAULT_INVENTORY_IGNORE):
|
||||
continue
|
||||
# Skip hidden files
|
||||
if filename.startswith('.') and not filename.startswith('.{0}'.format(os.path.sep)):
|
||||
|
||||
31
lib/ansible/plugins/inventory/script.py
Normal file
31
lib/ansible/plugins/inventory/script.py
Normal file
@@ -0,0 +1,31 @@
|
||||
# (c) 2012-2014, Michael DeHaan <michael.dehaan@gmail.com>
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible 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.
|
||||
#
|
||||
# Ansible 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 Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#############################################
|
||||
|
||||
# Make coding more python3-ish
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
import os
|
||||
|
||||
from ansible import constants as C
|
||||
from . import InventoryParser
|
||||
|
||||
class InventoryScriptParser(InventoryParser):
|
||||
|
||||
CONDITION="is_file(%s) and is_executable(%s)"
|
||||
Reference in New Issue
Block a user