Commit graph

32 commits

Author SHA1 Message Date
XuLei Ren
46c44a4359 Add new command GetVolumeInventory / GetSessions / GetVirtualMedia (#55433) 2019-05-09 09:45:08 -04:00
Xander Madsen
3cebb79328 Feat/add GetChassisInventory to Chassis category of redfish_facts (#54269)
* Implement get_chassis_inventory() in redfish_utils

* Add GetChassisInventory command to redfish_facts
2019-05-02 16:00:43 +01:00
Xander Madsen
b108d01b0f Feat/add GetBootOverride to Systems category of redfish_facts (#54273)
* 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>
2019-05-02 14:08:16 +01:00
Bill Dodd
2614e823df Fix SetOneTimeBoot to use standard ComputerSystem 'Boot' property (#54201)
* fix SetOneTimeBoot to use standard ComputerSystem 'Boot' property

* add support for UefiTarget and UefiBootNext boot sources
2019-05-02 13:50:41 +01:00
Xander Madsen
eb7190264e Add GetChassisPower command to Chassis category of redfish_facts (#54314)
* 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
2019-05-02 13:48:57 +01:00
Xander Madsen
8cfc9e6d22 Add GetSupportedFirmwareUpdateMethods to redfish_facts/Update commands (#54268)
* 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()
2019-04-30 13:53:54 +01:00
Xander Madsen
1aec39a2d7 Add GetChassisThermals command to Chassis category of redfish_facts (#54399)
* 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
2019-04-30 13:46:24 +01:00
Jose Delarosa
f88b2cbe59 Use different headers for each HTTP method (#55193) 2019-04-15 11:04:18 +01:00
Xander Madsen
840ceb2777 Add GetMemoryInventory command to Systems category in redfish facts module (#54125)
* Add GetMemoryInventory command to CATEGORY_COMMANDS_ALL['Systems']

* Add elif command == GetMemoryInventory to Systems category, to use forthcoming get_memory_inventory() function from redfish_utils

* Add get_memory_inventory() function to redfish_utils.py, which does not include any Absent dimms

* Remove trailing whitespace

* Add get_multi_memory_inventory() function to aggregate get_memory_inventory

* Call new function get_multi_memory_inventory()

* Add memory example in docstring

* Fix comment referring to CPUs instead of DIMMs
2019-04-04 07:56:23 +01:00
Jose Delarosa
c9d183f1f7 Add new Redfish config module to handle Dell-specific OEM extensions (#54359)
* Add new Redfish config modules to handle Dell-specific OEM extensions

- Extends the existing RedfishUtils class and leverages its methods

* Removed extra password key

* Add timeout parameter

* Updates to DOCUMENTATION section

- Removed version_added from several parameters
- Added type to category parameter
2019-04-01 20:59:16 +01:00
Jose Delarosa
4890c69a3d Add new Redfish facts module to handle Dell-specific OEM extensions (#54360)
* Add new Redfish facts module to handle Dell-specific OEM extensions

- Extends the existing RedfishUtils class and leverages its methods

* Add timeout parameter

* Removed version_added for timeout paramater
2019-04-01 20:58:06 +01:00
Jose Delarosa
7ddddeb801 Fix error with get_manager_nic_inventory method (#54553)
* Fix error with get_manager_nic_inventory function

- Function was not updated when code to handle multiple systems was added

* More elegant way to put self.manager_uri in a list
2019-04-01 18:11:04 +01:00
Xander Madsen
31b02fdd58 Add IndicatorLED control commands to redfish_command module (#53752)
* Add Chassis commands IndicatorLedOn, IndicatorLedOff, and IndicatorLedBlink

* Add manage_indicator_led function to redfish_utils

* Add Chassis command category with IndicatorLedOn/Off/Blink commands to redfish_command

* Add IndicatorLedBlink example to EXAMPLES docstring, and make the category == 'Chassis' section more generic for future development
2019-03-28 20:58:46 +00:00
Bill Dodd
d8536e47d3 Expose timeout option to Redfish modules (#54130)
* added timeout option to Redfish modules

* Apply suggestions from code review

Removed 'required: false' and added 'type: int' to 'timeout' documentation string.

Co-Authored-By: billdodd <billdodd@gmail.com>
2019-03-26 17:19:24 +00:00
Bill Dodd
384f4f1cef fix AttributeError for 'systems_uri' (#54178) 2019-03-21 17:50:40 -04:00
panticz
c80baf7c58 redfish_facts: Extend CPU data example and output results (#54168)
* Extend CPU data example and output results

Add "Get CPU Model example" and output result from "Get CPU inventory". Also add example for output of the "Inventory information" to make it easier to use the examples for Ansible beginners.

+label: docsite_pr

* Remove white space from blank line
2019-03-21 15:22:52 +00:00
Dhanuka
da9b19cef7 redfish_utils: add support to automate multiple systems. (#50854)
* Add support to automate multiple systems

Currently `redfish_utils` module can support only one system.
These changes introduce the ability to support multiple systems.

* Update - add support to automate multiple systems

* Introduce `aggregate()` to avoid code duplication in `get_multi___` like
methods.

* Remove "set" related methods

* include systems URI in each aggregated entry

* rebased

* Fixes KeyError and merge errors
2019-03-12 06:58:42 +10:00
Xander Madsen
d0db99e023 Fix redfish_facts GetPsuInventory command not returning correct output (#52675)
* Move GetPsuInventory from Systems category to Chassis category

* Change get_psu_inventory to search through Chassis instead of Systems and PoweredBy for PowerSupplies

* Remove GetPsuInventory from Examples

* remove trailing whitespace

* Change boolean check from '!= None' to 'is not None'

* Don't include 'Absent' PSUs in get_psu_inventory()

* Add check to see if Power key is in Chassis before proceeding

* remove trailing whitespace

* Add continue step for when powersupply property is not found, and check if resulting entries is empty, returning message if nothing was found rather than an empty list
2019-03-06 12:43:23 +00:00
Bill Dodd
e0538610bf Update GetBiosBootOrder to use standard spec resources (#51764)
* update GetBiosBootOrder to use standard spec resources

* handle case where BootOrder is present but BootOptions is missing
2019-02-11 14:50:10 +00:00
Bill Dodd
3b20b186d7 remove non-standard GetManagerAttributes, SetManagerAttributes (#51898) 2019-02-11 14:33:15 +00:00
Dag Wieers
05c6ff79f9 Convert to reduced list of known types (#50010) 2018-12-19 07:25:30 +10:00
Xander Madsen
1e415899ad GetManagerNicInventory (#49961)
* Add GetManagerNicInventory command for Manager category, and tweak redfish_utils' get_nic_inventory to accommodate manager nic interfaces

* Remove get_manager_nic_inventory, since it is unnecessary while using get_manager in get_nic_inventory

* Rework get_nic_inventory() to take a resource_type as a string, which will be just the category parameter from redfish_facts, making it clearer

* remove extraneous blank line to conform with pep8

* Add GetManagerNicInventory example task to EXAMPLES docstring
2018-12-18 09:58:17 -06:00
Jose Delarosa
4d77d601ff Add new Redfish command module to handle iDRAC-specific extensions (#49572)
- Module extends the existing RedfishUtils class and leverages its methods
- Acknowlegements to Bill Dodd (@billdodd) for creating original Proof-of-Concept
2018-12-07 13:43:30 +00:00
Bill Dodd
303c3494e6 remove non-standard CreateBiosConfigJob command (#48740) 2018-12-06 15:05:31 -05:00
tomasg2012
07895538b5 Changes to redfish-based parameters (#48717)
* 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
2018-11-27 18:16:24 -05:00
John R Barker
3fcc564bbb
Bulk fix DOCUMENTATION.author (Part 1) (#48934)
* Bulk fix DOCUMENTATION.author
2018-11-20 19:31:35 +00:00
Jose Delarosa
1c37471274 Fix idempotency issues in set_bios_attributes
- Added check to see if attribute even exists, if not, it exits.
- Then checks if attribute is already set to value we want to update
  it to. If yes, then it exits and changed=False
- Otherwise updates the attribute and changed=True
2018-10-25 11:02:02 -04:00
Jose Delarosa
197059b4a2 Update the root URI to match the DMTF specification (#45295) 2018-09-11 19:15:59 -04:00
Jose Delarosa
fdb1d1146f Add module redfish_command (#43469)
* Add module redfish_command

Communicates with Out-Of-Band Controller through Redfish APIs
Sends a command to execute an action

* Wrapped all instances of result['msg'] inside to_native()

* Added more entries to Description section

* Minor fixes for PEP8 compliance

* Update the root URI to match the DMTF specification

* Display valid Categories or Commands in case invalid value given

* Updated returned values and description
2018-08-30 15:40:45 -04:00
Jose Delarosa
7f43f49b42 Add module redfish_config (#43470)
* Add module redfish_config

Communicates with Out-Of-Band Controller through Redfish APIs
Sends a configuration update to the Controller

* Wrapped all instances of result['msg'] inside to_native()

* Added more entries to Description section

* Minor fixes for PEP8 compliance

* Update the root URI to match the DMTF specification

* Display valid Categories or Commands in case invalid value given

* Updated returned values and description

* Add default values to bios and mgr variables
2018-08-30 15:38:57 -04:00
Joren Vrancken
b954917761 Surround top-level function and class definitions with two blank lines. 2018-07-31 12:06:56 -07:00
Jose Delarosa
779d273192 Add new module for Redfish APIs (#41656)
* Add new module for Redfish APIs

Communicates with Out-Of-Band Controller through Redfish APIs
Module gathers hardware information and sends back

* Removed unused library imports

* Removed token entry from headers

* Made 'command' optional and defined default value for each 'category'

* Replace 'result' with 'ansible_facts' for returned dict variable

* Removed unused variable definitions and library imports

* Renamed dicts where data is returned.

Should make it easier to sort through returned data that is placed
in one file.

* Defined dicts to specify available categories and commands in each one.

- Allows specifying default command for each category
- Allows specifying all commands for each category
- Removed Inventory category and moved commands to System category
- Renamed dicts where data is returned to allow to dump more than one in a file

* Remove choice[] since it's redundant

* Added flexibility when specifying categories

- If a category is not specified, it sets a default value
- Can handle more than one category
- Will accept value "all" for category which will set to all available
- Renamed category System to Systems to better reflect Redfish API

* Defined default category in a variable

* Made category argument a list

* Added examples

* Made command argument a list

* Replaced 'ansible_facts' with 'redfish_facts' for returned dict variable.

* Added default value for category in documentation

* Moving redfish_facts inside ansible_facts

* Updated how results dicts are constructed, where applicable

* Improved error messages

* Removed unused variables

* Undo commit 66a7dcd789726913bdb7a25e59cc3aa2125db95d due to variable 'e' oversight
2018-07-27 12:21:25 -04:00