When `vmware_datastore_facts` does not fine any datastore, it raises an error.
This is not consistent with the other _facts modules. It should just return
an empty list instead.
In a multi-host context, `changed_list` will record all the changes
done on any host. So as soon as ONE host is changed, it will be `True`.
A host can potentially already have a parameter set, in this case
`change_option_list` will be empty.
This commit uses `change_option_list` instead of `changed_list` to
decided if a given host should be updated.
* Fix loading namespaced doc_fragments
The syntax for specifying a different fragment name was already
using '.' as a separator, so the code needed to be tweaked to
avoid choking on names like `testns.testcoll.fragname` and
`testns.testcoll.fragname.altvar`.
`get_plugin_class()` returns 'docfragment' for the fragment loader;
mangling `subdir` provides consistent alignment with the normal plugin
directory names and avoids needing special handling of plugin types
with 'module' in the name.
* Add changelog entry
* Modified vcenter_license to accept vSAN license and assign to
the given cluster.
* review comments
Fixes: #55711
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Add GetBootOverride as possible Systems command
* Add conditional to call get_boot_override if command == GetBootOverride
* Implement get_boot_override() in redfish_utils
* Implement get_multi_boot_override() and modify get_boot_override() to support the multi wrapper
* Update GetBootOverride to use get_multi_boot_override
* Add example for new command in docstring
* fix indent
* Update lib/ansible/module_utils/redfish_utils.py
Co-Authored-By: xmadsen <xander.madsen@gmail.com>
* Add GetChassisPower as viable Chassis command in redfish_facts
* Add conditional to catch command == 'GetChassisPower'
* Implement get_chassis_power() retrieving Watts-related and other useful power data from each Chassis
* Add RelatedItem property and remove MemberId property
* Check for length of data['PowerControl'] to be > 0 before checking index 0 of the list.
* Fix return statement being inside loop and result key not being 'entries' as is expected
* Update lib/ansible/module_utils/redfish_utils.py
Co-Authored-By: xmadsen <xander.madsen@gmail.com>
* Update lib/ansible/module_utils/redfish_utils.py
Co-Authored-By: xmadsen <xander.madsen@gmail.com>
* Update redfish_facts.py
The `nxos_vlan` module may raise with regex error `sre_constants.error: multiple repeat` in the non_structured codepath if the device has existing vlan names with certain regex control characters; e.g.
```
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Eth1/3
14 my-vlan-name-is-*** active
```
* `nxos_acl` may fail with `IndexError: list index out of range` while attempting to delete a non-existent ACL.
The failure occurs when the `acl` var is an empty list.
* nxos_acl: catch 501 'Structured output unsupported' when no ACLs present
With some older image versions, `show ip access-list | json` will raise a 501 error indicating `'Structured output unsupported'` when there are no access-lists configured. This change turns off the `check_rc` and then looks for the failure condition.
* Fix kwarg
* Fix lint issues
* Add new method to encode parameters in the URL
- I'm not really encoding, I'm sure this is broke
- There maybe an Ansible native way to do this
* Fix whitepace
* Added urlencode support
- Relies on urllib module
- Fixed string delimiter
* Enable URL params
- construct_params_list() creates a list of parameters to encode
- encode_url_params() does encoding in a simple manner
* Added proper methods for urlencoding
* Remove duplicate functions
* Remove blank line for PEP8
* add multi-node manipulation, delete on xpath match only and count capability to win_xml
* fix pep8 and yamllint errors identified by ci tests
* fixed bugs when handling multiple elements, multiple attribute nodes and handling for attribute nodes when using xpaths that only select attributes like //@lang. Added more tests and tweaked documentation.
* fixed line-too-long error
* fixed trailing space errors
* trailing whitespace expunged
* bump version_added to 2.9 for new changes
* fix PSAvoidUsingPositionalParameters sanity check failure
* refix sanity check as it broke the msg return value
* Check variables are defined before using combine filter
* Add tests for the combine filter
* Remove dependencies that should already be installed
* relocate the function to recursively check for undefined vars
add another test
* changelog
* Add GetSupportedFirmwareUpdateMethods to update category commands list
* Add condition when command == GetSupportedFirmwareUpdateMethods to call the forthcoming rf_utils function get_supported_firmware_update_methods
* Implement get_supporte_firmware_update_methods() in redfish_utils
* rename command to GetFirmwareUpdateCapabilities
* rename comand get_firmware_update_capabilities()
* Rename command get_firmware_update_capabilities()
* Group update protocols by the type of Action they are associated with.
* remove trailing whitespace
* Use safer method to get 'title' for each action type and its allowablevalues
* Add example to docstring for using GetFirmwareUpdateCapabilities
* fix line too long
* fix line too long and trailing whitespace
* Update redfish_utils.py
* remove trailing whitespace
* fix overindent
* Use self.update_uri instead of hard-coding '/redfish/v1' in get_firmware_update_capabilities()
* Add GetChassisThermals command to Chassis list
* Add GetChassisThermals conditional and point to rf_utils.get_chassis_thermals() function
* Implement get_chassis_thermals() in redfish_utils
* Remove trailing whitespace
* Add more properties, including RelatedItem tto distinguish entries' contexts from each other.
* Remove trailing whitespace
* Add custom action class for version info
* Use args from CLI as prog for ArgumentParser object
* Make prog a required parameter of create_base_parser() and update all uses to pass in the newly required parameter.
* Add unit test for checking ansible --version
* Update other related unit tests
The bare minimum example in the docs (i.e. only supplying name, state, and cluster) results in the error `state is present but all of the following are missing: task_definition, desired_count`.
The current code was not properly checking for the active state when
checking any_errors_fatal, so if the error occurred in a sub-block
or included file it is not properly detected.
Fixes#55515
* Support using importlib on py>=3 to avoid imp deprecation
* Add changelog fragment
* importlib coverage for py3
* Ansiballz execute should use importlib too
* recursive module_utils finder should utilize importlib too
* don't be dumb
* Fix up units
* Clean up tests
* Prefer importlib.util in plugin loader when available
* insert the module into sys.modules
* 3 before 2 for consistency
* ci_complete
* Address importlib.util.find_spec returning None
* prevents accidental templating on intra-action postprocessing of an untrusted module result
* makes the view of a module result within an action consistent with the way it would be stored for future use (eg facts, register)
* Make module not get all nets every time it's executed with net_id
* Add changelog fragment
* Update changelogs/fragments/meraki_static_route_api_calls.yml
Co-Authored-By: kbreit <kevin.breit@kevinbreit.net>
If more than one user-assigned identity is assigned to a host, then an identifier is required to specify which credentials are retrieved. This change uses the existing support for client_id to retrieve the user-assigned identity by client_id.