Add documentation to setup.py and remove use of $params.fact_path in setup.ps1

This commit is contained in:
David O'Brien 2016-02-05 18:03:07 +01:00 committed by davidobrien1
parent 132b8e8f51
commit e4c2cb96ea
2 changed files with 37 additions and 5 deletions

View file

@ -54,12 +54,14 @@ notes:
install I(facter) and I(ohai) means you can avoid Ruby-dependencies on your install I(facter) and I(ohai) means you can avoid Ruby-dependencies on your
remote systems. (See also M(facter) and M(ohai).) remote systems. (See also M(facter) and M(ohai).)
- The filter option filters only the first level subkey below ansible_facts. - The filter option filters only the first level subkey below ansible_facts.
- If the target host is Windows, you will not currently have the ability to use - If the target host is Windows you can now use C(fact_path). Make sure that this path
C(fact_path) or C(filter) as this is provided by a simpler implementation of the module. exists on the target host. Files in this path MUST be PowerShell scripts (*.ps1) and
Different facts are returned for Windows hosts. their output must be formattable in JSON (Ansible will take care of this). Test the
output of your scripts.
author: author:
- "Ansible Core Team" - "Ansible Core Team"
- "Michael DeHaan" - "Michael DeHaan"
- "David O'Brien @david_obrien davidobrien1985"
''' '''
EXAMPLES = """ EXAMPLES = """
@ -74,6 +76,9 @@ ansible all -m setup -a 'filter=facter_*'
# Display only facts about certain interfaces. # Display only facts about certain interfaces.
ansible all -m setup -a 'filter=ansible_eth[0-2]' ansible all -m setup -a 'filter=ansible_eth[0-2]'
# Display facts from Windows hosts with custom facts stored in C(C:\\custom_facts).
ansible windows -m setup -a "fact_path='c:\\custom_facts'"
""" """

View file

@ -17,14 +17,41 @@
# WANT_JSON # WANT_JSON
# POWERSHELL_COMMON # POWERSHELL_COMMON
# $params is not currently used in this module # enabled $params (David O'Brien, 06/08/2015)
# $params = Parse-Args $args; $params = Parse-Args $args;
Function Get-CustomFacts {
[cmdletBinding()]
param (
[Parameter(mandatory=$false)]
$factpath = $null
)
if (-not (Test-Path -Path $factpath)) {
Fail-Json $result "The path $factpath does not exist. Typo?"
}
$FactsFiles = Get-ChildItem -Path $factpath | Where-Object -FilterScript {($PSItem.PSIsContainer -eq $false) -and ($PSItem.Extension -eq '.ps1')}
foreach ($FactsFile in $FactsFiles) {
$out = . $($FactsFile.FullName)
Set-Attr $result.ansible_facts "ansible_$(($FactsFile.Name).Split('.')[0])" $out
}
}
$result = New-Object psobject @{ $result = New-Object psobject @{
ansible_facts = New-Object psobject ansible_facts = New-Object psobject
changed = $false changed = $false
}; };
# failifempty = $false is default and thus implied
$factpath = Get-AnsibleParam -obj $params -name fact_path
if ($factpath -ne $null) {
# Get any custom facts
Get-CustomFacts -factpath $factpath
}
$win32_os = Get-CimInstance Win32_OperatingSystem $win32_os = Get-CimInstance Win32_OperatingSystem
$win32_cs = Get-CimInstance Win32_ComputerSystem $win32_cs = Get-CimInstance Win32_ComputerSystem
$osversion = [Environment]::OSVersion $osversion = [Environment]::OSVersion