* Windows Privileges - moved util code to it's own C# util
* Rename Enabler class to PrivilegeEnabler to remove ambiguity
* rename Utils to PrivilegeUtil
* fix missing util name changes
This documents two common issues related to rebooting Windows systems.
- Updates can take a long time being applied during reboot
- Reboots can cause the WinRM service to start before system has settled
Reporting of install failures was improperly guarded behind a list of
packages to install when the first element changed in a list was found.
This lead to the dnf module silently failing at times when it should not
fail.
Fixes issue 49759
This work enables to add sit tunnel via nmcli module
Signed-off-by: Susant Sahani susant@redhat.com
SUMMARY
ISSUE TYPE
Feature Pull Request
COMPONENT NAME
nmcli
ANSIBLE VERSION
2.8
ADDITIONAL INFORMATION
- nmcli:
state: present
type: sit
conn_name: sit_test1
autoconnect: yes
ip_tunnel_dev: enp0s8
ip_tunnel_local: 192.168.1.2
ip_tunnel_remote: 192.168.1.5
* win become: refactor and add support for passwordless become
* make tests more stable
* fix up dep message for Load-CommandUtils
* Add further check for System impersonation token
* re-add support for become with accounts that have no password
* doc fixes and slight code improvements
* fix doc sanity issue
* replace math round with ceiling to report the actually installed RAM for ansible_memtotal_mb
* add new variable ansible_memtotal to display TotalPhysicalMemory in bytes
add new variable ansible_swap_min to display initial pagefile size
add new variable ansible_swap_max to display maximum pagefile size
removed the variable ansible_swaptotal_mb
* output ansible_swap_min & ansible_swap_max value in bytes
* re-add the ansible_swaptotal_mb fact and fix the conversion of the TotalSwapSpaceSize value from kilobytes to MB
* indentation fix, replace tab with spaces
* Create Windows facts for ansible_virtualization_role and ansible_virtualization_type
* Create Windows facts for ansible_virtualization_role and ansible_virtualization_type
Updated formatting
* Removed executable flag on setup.ps1
* Changed Get-WMIObject to Get-CimInstance as Get-WMIObject has been deprecated and fails testing.
* Changed new variables to snake_case and also changed Get-CimInstance to Get-LazyCimInstance
* removed -class from Get-LazyCimInstance call as failed test.
this example shows two things not shown here already->
- dynamically looking up hosted zone id using the route53_zone module (vs knowing the ID we can use the name)
- showing an example of start_record_name which takes an entire record, not just a partial name
* Docs: Add a separate "seealso" section to the module docs
to list related modules and/or related references. This clears up the notes
section for things that are actual notes.
So you can add a section in your module documentation and four types of
references are possible.
seealso:
# Reference by module name
- module: aci_tenant
# Reference by module name, including description
- module: aci_tenant
description: ACI module to create tenants on a Cisco ACI fabric.
# Reference by rST documentation anchor
- ref: aci_guide
description: Detailed information on how to manage your ACI infrastructure using Ansible.
# Reference by Internet resource
- name: APIC Management Information Model reference
description: Complete reference of the APIC object model.
link: https://developer.cisco.com/docs/apic-mim-ref/
This PR also includes:
- Implements ansible-doc support
- Implements schema support for the seealso options
- Updates to the development documentation
- Rename filter convert_symbols_to_format to rst_ify, cfr the existing html_ify and tty_ify filters
- This makes the existing template a lot easier to read and fixes the confusion I had myself rereading the template (again).
- We fixed the possible suboption types (which was limited to 'bool' only)
* Use latest stable instead of devel docs
* Fix for 36950. Added support for missing options capabilities and root_device in properties of os_ironic.py ansible module
* Updated docstring to pass documentation validation
* Updated review comments from juliakreger
* version_added: "2.8"
- Require username and password for unregistering and avoid "cannot marshal None unless allow_none is enabled" error when using an activation key and no channels specified.
- Update test fixtures and add changelog
Co-authored-by: WhyIsThisOpen <WhyIsThisOpen@users.noreply.github.com>
* k8s: add k8s_kind arg to KubernetesRawModule
Single–kind k8s modules (e.g. k8s_service) do not have a module
parameter called 'kind' and need to pass a static 'kind' on
KubernetesRawModule class creation. Hence this change.
* k8s: make 'validate' and 'wait' mod params optional
Not all k8s modules utilizing KubernetesRawModule will use these.
* k8s_service: new k8s module for handling Services
* Pluribus Networks pn access list ip module with unit test cases
* Changes according to ansibot standards in unit test modules
* Remove unwanted variables
* Removed unwanted super call
Previously we returned only nested attributes of the lists not of the
structs, this patch fixes it.
Signed-off-by: Ondra Machacek <omachace@redhat.com>
* [docker] Consolidating Python Boolean conversion for Docker API (#49563)
* [docker] Consolidating docker option min version checks (#49564)
* [docker] Moving option min version checks out of docker_swarm (#49564)
Also renaming Boolean cleanup function and fixing docker_container minimum
version check for network interfaces.
* Cleanup from PR feedback
* Bare minimum rip out cliconf
* nxapi changeover
* Update documentation, move options
* Memoize device_info
* Gratuitous rename to underscore use of local api implementation
Fixup eos module_utils like nxos
* Streamline version and image scans
* Expose get_capabilities through module_utils
* Add load_config to module_utils
* Support rpcs using both args and kwargs
* Add get_config for nxos
* Add get_diff
* module context, pulled from nxapi
We could probably do this correctly later
* Fix eos issues
* Limit connection._sub_plugin to only one plugin
* set ansible_os_family from name variable in os-release for clearlinux system
Signed-off-by: Josue David Hernandez Gutierrez <josue.d.hernandez.gutierrez@intel.com>
* Add os_family for clear linux and clear linux mixes
Signed-off-by: Josue David Hernandez Gutierrez <josue.d.hernandez.gutierrez@intel.com>
* inventory plugins: try auto before ini
auto plugin should run before ini to avoid ini being able to parse
some plugin configuration YAML files successfully.
* Update comment
comment was added by 2ffe3c42bb but
related code was later removed by
506e6a0b2d.
Use a simple multiprocessing pipe to delay exiting the parent process
until after the child has been doubly forked.
Using a simple IPC to allow the forked process to start avoids the
control node waiting unnecessarily for lightly loaded systems.
* Fix various bugs related in reboot
- Use format strings for consistency and improve debug log messages
- Use local variables instead of class attributes in order to be thread safe
- Run setup module to get distribution and version
- Run find module to get full path of shutdown command
- Use ansible_os_family and ansible_distribution to find commands and args
- Use same command for all Solaris/SunOS distributions
- Move delay calculations to properties
- Reliably check for module run failure
- Fix bug in run_test_command() that accidentally made the method work properly
- Use better exceptions rather than Exception
- Use dict literals rather than constructors
- Correct _check_delay() so it always returns a value, not None
- Don't store and return result in run_test_command() because it's not used anywhere
- add test for post reboot command that fails
- test negative values for delay parameters
* Consolidate handler tracking
- Remove unused code. ci_complete
- unit test fixes. ci_complete
- Restore previous behavior of matching a single handler
- when notifying a host for a handler, return True if it was added, False otherwise, to reduce copied logic
- rename funcitons for clarity. ci_complete
- Remove handler logic for static includes which was disabled previously
- use the generic `package` module, this way it will cover dnf and yum
- to not specify the x86_64 arch, the package manager will pull the fine
version anyway
- with_items with package is deprecated
- libnm-qt-devel is only in Fedora 27 and 28.
Template lookup plugin now support variable_start_string and
variable_end_string, just like template module.
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
fixes to ansible-doc
- change json to always be type dependent
- change changelog generation to loop over the options
- warn about ignoring module path
* read_csv: new module to read CSV files
* Add a doc reference to the csvfile lookup plugin
* Enable the use of custom dialect options
* Improve error handling
* Fix PEP8
* Fix more PEP8
* Simplify custom dialect code
* Add integration tests
* Fixes for CI
* Fix for python 2.6
* openstack: fix parameter handling when cloud provided as dict
If a cloud is provided as dictionary:
* Do not assert that 'interface' parameter is None. Instead,
assert that it is 'public'.
* Assert that 'auth_type' parameter is not set.
Fixes#42858
* os_user: Include domain parameter in user lookup
If a "domain" parameter is provided, use it in looking up
whether the user already exists.
Fixes#42901
* os_user: Include domain parameter in user deletion
If a "domain" parameter is provided, use it in deleting
the user also.
Fixes#42901
* ensure idempotency for user set to None
* Update `user` documentation and add changelog fragment
* clarify changelog fragments and parameters documentation
* use restructuredtext syntax in changelog fragment
* Add info about loop based on jinja2 loop var
* ansible_loop
* Update test count
* Add extended loop_control that defines whether ansible_loop should be added
* Extended needs to be defaulted
* Revert "Update test count"
This reverts commit f1e93ee469825f4cdcd90fb28667d29aa088275c.
* Add docs about loop_control.extended
* Add revindex and revindex0
* Document ansible_loop in special vars
* Add changelog fragment
* Add tests, change items to allitems so that dot notation works, fix logic error with previtem
* Fix python 3 compatibility in flatpak_remote module
* Fix flatpak module for recent versions of flatpak
* Add reminder for contributors to run integration tests manually
There has been several Python version compatibility regressions
introduced into the module which could have been avoided by the
integration tests.
- Module extends the existing RedfishUtils class and leverages its methods
- Acknowlegements to Bill Dodd (@billdodd) for creating original Proof-of-Concept
* Initial commit for firewall_vip46
* Initial commit for fortios_policy46
* Revert "Initial commit for fortios_policy46"
This reverts commit dd568b603965aabcbb9952b2ef2caf0bb9c571e9.
Have added some extra arguments to the postgresql_ext module to allow
configuring an SSL connection to the postgresql server and explicit
support for connecting via a unix socket. The arguments and method used
here for the connection are the same as used by the postgresql_database
module.
* Simplify permission changing code for rabbitmq_user module
* Add check for multiple permission dicts for same host to rabbitmq_user module
* Add docstring for _get_permission method of rabbitmq_user
* Fix method that compares vhost permissions in rabbitmq_user
* Add tests for rabbitmq_user module
* Add helper function for simulating collections.Counter functionality
Incorporating the abandoned work from PRs #35288 and #45552. Also adding in
the version checking from `docker_container.py`, which should be abstracted
out to `docker_common.py`.
There is no API or AWS command to list down latest available
runtimes. Updated documentation with AWS official lambda docs.
Fixes: #49552
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
It was super incomplete, and the interface was pretty strange; it had
built-in features to handle pretty bespoke workflows ("clean504",
e.g.) but was lacking lots of other useful features (like the ability
to create a webhook with a shared secret). Rather than try to update
the interface in a backwards compatible way, I've replaced it with the
more predictable, single-purpose github_webhook and
github_webhook_facts modules.
* Add github_webhook module
github_webhook lets you easily create, update and delete Github
webhooks.
This is part of a two-part replacement for github_hooks, which lacks a
number of important features and has a strange interface.
* Add github_webhook_facts module
github_webhook_facts gathers information about Github webhooks.
This is part of a two-part replacement for github_hooks, which lacks a
number of important features and has a strange interface.
* fix py3 scope for unique filter errors, enable filters integration tests on rhel8 beta
Signed-off-by: Adam Miller <admiller@redhat.com>
* add changelog
Signed-off-by: Adam Miller <admiller@redhat.com>
* Changed $IpAddress to $Gateway
* Tweaked win_route unit tests
Checks to see if new static route has the correct gateway
* Create win_route.yaml
* Fixed incorrect variable name
* Fix FactCache to conform to the dict API
* update needs to take a dict rather than a key and a value
* __init__ needs to allow for setting the intial dictionary
* Remove unneeded _display and _cache attributes
* Move ansible.plugins.cache.FactCache to
ansible.vars.fact_cache.FactCache because this isn't part of the cache
plugin API.
* Add backwards compatibility when calling update on the new FactCache
* Remove code for calling old FactCache. There's no way to call the old
FactCache so there's no need for backwards compatible code for calling
code. Backwards compatibility is handling things which are calling
the new FactCache.
* Port our code to the new FactCache location.
* Some types of 1Password items have a 'password' field alongside the 'fields' attribute, not inside it, so we need to search there as well.
* Add changelog fragement for onepassword_facts PR #47213.
* Fix for changes in clearlinux
clearlinux is now providing /etc/os-release file and ansible is identifying as NA
then this change allow ansible to find it
Signed-off-by: Josue David Hernandez Gutierrez <josue.d.hernandez.gutierrez@intel.com>
* Add changelog fragment for clearlinux changes
Signed-off-by: Josue David Hernandez Gutierrez <josue.d.hernandez.gutierrez@intel.com>
* Add parameters to module vmware_guest for conversion of disk to thin or thick when vm is cloned or deployed with template
* unit test for convert clone vm
Co-Authored-By: chris93111 <christopheferreira@ymail.com>
* Fix win_nssm credentials quoting
Fix credential quoting for win_nssm after changes to the way nssm command is invoked in Ansible 2.7.1.
* Updating nssm command to update credentials to use Argv-ToString to properly escape password variable.
* Adding changelog fragment for fix of #48728.
dzdo is basically a drop-in replacement for sudo and supports the same
command line options.
There is no become_flags set for dzdo like there is for sudo, so users
will have to set that separately to have exactly the same functionality.
* Create python3and2
Adding tests to see if dnf still works when python-2 and python-3 are installed.
* Update main.yml
Include the tests that run on python 2 and python 3, based on the package manager.
* Update dnf.py
Use python3-dnf by default, otherwise python2-dnf.
* Rename python3and2 to python3and2.yml
Rename.
* Add error message for k=v and YAML in a single task
Find the correct line, column, and position for k=v errors since they are different than the position reported initially.
Document bug in quoting syntax check.
* Change tense or error message
Since the error still exists, switch to present tense rather than past tense.
* Remove double spaces after periods in error messages.
http://www.slate.com/articles/technology/technology/2011/01/space_invaders.html
* Add changelog fragment
* Add tests for new error message
* Fix tests
* Add clarifying comments to unit test
* VMware: Fix module usages in module_utils
* Skip test for Python 2.6 as SSL context is not available in Python 2.6
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Implement test case prefix to filter test cases
* Cut line to not exceed 160 chars
* Replace tabs with spaces
* Add version_added field
* Include changelog file
The config parser on NX-OS does not deal with configs that do not end
with a linefeed correctly which leads to various issues when the config
is loaded from startup-config upon reboot. Therefore, ensure that the
config returned is terminated by a linefeed.
* Support for pids_limit parameter in docker_container module
This add pids_limit parameter support in docker_container module
Fixes#43337
Signed-off-by: Akshay <akshay@localhost.localdomain>
* Add changelog for pids_limit parameter
Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>
* Remove unnecessary lines of code
The map is needed if the names are different.
Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>
* Update pids_limit option tests
It also run for docker-py < 1.10.0
Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>
* add redshift_cross_region_snapshots module, unit tests.
* fix errors
* use ec2_argument_spec as the basis for the argument spec. fixed
metadata_version
* follow best practices by naming example tasks.
* code review changes
* fix linting errors
* Update version added
* Only one exit point.
* Refactoring account handling.
* Add diff support for acme_account.
* Insert public_account_key into acme_account_facts result and into acme_account diff.
* Add changelog.
* add new options for na_ontap_aggregate
* add gpl line
* remove dup option
* Put files in wrong directory
* change unit test to match the request from PR 48941
* Changed for review comments
* pep8
* Add WTI OOB and PDU Device status, control and configuration module
* removed accidental file inclusions
* removed accidental file
* remove unneeded legacy files
* Added the new module cpm_plugcontrol to control the plugs on WTI Power devices
* Add Windows example of raw command
Perform shutdown of Windows OS using Microsoft.PowerShell.Management module
* Capitalized cmdlet, remove quotes and improve description
This commit also cleans up some of the description sections.
* Use another example as suggested by jborean93
I was happy to merge this before I noticed jborean93 objected to the example :-/
* Fix whitespace issue
This change address a problem where the dict_merge function would fail
due to the value being a nested dict. This will now recursively pass
the value back through the dict_merge function.
os_server was trying to access `[sg.name for sg in
server.security_groups]`, but the items in `server.security_groups`
are dictionaries, so that should be `sg['name']`.
* lib/ansible/modules/identity/ipa/ipa_user.py:
- Check any existing `ipa_user` SSH public key fingerprints for the hash algorithm to use
- Generate `module_user` SSH public key fingerprint based on detected or default algorithm
* Pluribus Networks pn access list module
* Added shlex import which was missing and added correct author
* Added an extra space which is according to pep8
* templar: ensure that exceptions are handled
* Fix AttributeError: object has no attribute 'message'
'message' attribute is deprecated since Python 2.6 and not available
with Python 3.
Simple reproducer:
- hosts: localhost
vars:
not_json: "{{ 'test str' | from_json }}"
tasks:
- command: "echo {{ not_json }}"
* ignore empty lines in rabbitmqctl output
this fixes a bug with rabbitmq 3.7.5
rabbitmqctl can return empty lines, breaking the rabbitmq_parameter module
especially in a new vhost, the command rabbitmqctl list_parameters -q -p <vhost> will return an empty line
* Strip empty line in rabbitmqctl output
* Fix iosxr netconf plugin response namespace
* iosxr netconf plugin removes namespace by default
for all the responses as parsing of xml is easier
without namepsace in iosxr module. However to validate
the response received from device against yang model requires
namespace to be present in resposne.
* Add a parameter in iosxr netconf plugin to control if namespace
should be removed from response or not.
* Fix CI issues
* Fix review comment
* nxos_interface vlan and port-channel idempotence fix for mtu
* Fix MTU reconfiguration at each execution
* nxos_interface port-channel idempotence fix for mode (#44248)
* Fix trunk mode idempotence for port-channel
* Gather ethernet and port-channel code for mode management
* nxos_linkagg port-channel idempotence fix for channel-group's mode
The regex to retrieve channel-group's mode is not enough accurate.
Therefore, the swhitchport mode was matched instead of the
channel-group's mode.
* This fix add accuracy to match the right configuration command
* Add support for switchport mode dot1q-tunnel in nxos_interface
* Fix layer reconfiguration at each execution
* require git when trying to use it in ansible-galaxy cli
Previously we weren't setting `required=True` when calling
`get_bin_path` and the path would return `None`, this would cause
a traceback when attempting to ' '.join() to create a string
representation of the failed command for error output
Fixes#49200
Signed-off-by: Adam Miller <admiller@redhat.com>
* add changelog
Signed-off-by: Adam Miller <admiller@redhat.com>
* Changes to redfish-based parameters
Corrected (potentially) small scope variable to 'id'
Review to see if this is problematic
* Updated doc information with "version_added"
* Corrected 'username' in redfish_config file
- The role name and instance profile name _can_ be different
- Change the delimiter to `:` for keys that are discovered through the JSON parsing (which is not a valid delimiter for AWS IAM role names), this delimiter is still converted to underscore
- Now checks for the existence of that delimiter to remove the cases where the JSON keys are appended to the role name to find the role name
Different connection plugins return different data when throwing exceptions. The Paramiko connection plugin does not return a text sting, which caused an exception.
The ssh connection plugin returns multi-line errors, which makes the debug logs harder to read. Only return the last line in that case in order to make the logs more readable.
When experiencing a connection failure, reset the connection.
Add reset() to paramiko_ssh
Indicate thet conection state is False when running close(). This is needed by the ensure_connected() decorator to work properly.
Co-authored-by: Matt Martz <matt@sivel.net>
* test for openstack inventory constructed functionality
this adds unit tests for the compose, groups, and keyed_var features
of the openstack inventory plugin
* fix constructed functionality in openstack inventory plugin
The compose, groups, and keyed_groups functionality of the openstack
inventory plugin was broken:
- the plugin was not passing the correct variables to the
Constructable methods for compose and groups
- the plugin was simply never calling the appropriate method for
implementing keyed_groups
This commit fixes both issues.
Network platforms that don't have cliconf plugin will fail when
sending rpc calls for the reset_history and disable_response_logging
functions because those are defined in cliconf exclusively at this
time.
This patch adds checks for those attributes before making the call