Commit Graph

36 Commits (bf0e846a39a6ea1c312905ecbf794523da3107ea)

Author SHA1 Message Date
Bill Dodd 0d842ff539 redfish: refactor service_root variable (#56198) 2019-05-23 10:57:22 +02:00
Bill Dodd 1a6b95a8f1 redfish: Add If-Match ETag header to PATCH requests (#56150)
* add If-Match ETag header to PATCH requests

* add changelog fragment

* ensure header keys are lowercase

* fix dict comprehension for python 2.6 and earlier
2019-05-12 10:24:07 +02:00
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
Bill Dodd 671df7f3c7 include Redfish extended error message if available (#54480) 2019-04-04 08:25:19 +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 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
Jose Delarosa 0ed6b4f774 Remove systems_uri as parameter from get_psu_inventory method (#54262) 2019-03-26 15:17:40 +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
Pierre-yves Fontaniere 1dba160d9d Adds SKU to properties returned by get_system_inventory (#53464) 2019-03-08 16:22:43 +00: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
Xander Madsen 539cab89e1 Fix get_disk_inventory() not using Storage resource and add more prop… (#52939)
* Fix get_disk_inventory() not using Storage resource and add more properties to output

* don't include null entries

* Add the SimpleStorage resources as well

* Fix misspelling of disk_result
2019-03-06 12:39:06 +00:00
Xander Madsen 96549bf6ff Remove mistaken commits from other pull request. (#52928) 2019-03-01 10:13:08 +00:00
Xander Madsen 9f7eb8ee53 Resolved conflicts with mistaken commits in earlier history (#52953) 2019-03-01 10:11:46 +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
Bill Dodd 63f7536594 get standard properties for each firmware entry (#51028) 2019-01-19 21:27:57 +00:00
Dhanuka 94a1d86d70 redfish_utils: fix reference to local variable 'systems_service' (#50298)
* fixes issue 50296

* fixes the indentation of the return statement

* Adds a conditional test into `_find_systems_resource()` to check the existence
of the Members of System resource

* updates the error message

* harden the conditional test

* Add a changelog
2019-01-11 14:16:20 +00:00
Dhanuka 44e2cbe7b7 Update `Unknown error` to specific error message (#50129)
* Update `Unknown error` to specific error message

outputs the Exception received rather than just 'Unknown error'
fixes: issue/49713

* Update `Unknown error` to specific error message

improves the error message
2018-12-20 12:13:24 +00: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
Toshio Kuratomi 3fba006207 Update bare exceptions to specify Exception.
This will keep us from accidentally catching program-exiting exceptions
like KeyboardInterupt and SystemExit.
2018-12-16 15:03:19 -08:00
Bill Dodd 303c3494e6 remove non-standard CreateBiosConfigJob command (#48740) 2018-12-06 15:05:31 -05:00
Jose Delarosa d459c2c582 Fix idempotency issues 2 (#49333)
* Fix idempotency issues in set_manager_attributes

* Add changed status in set_bios_default_settings
2018-12-06 18:52:31 +00:00
Jose Delarosa 2b74a17996 Do not reboot after updating BIOS configuration 2018-11-12 16:24:13 -05: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 81640a2c67 Provide flexibility when retrieving facts (#46148)
* Provide flexibility when retrieving facts

* Check if keys exist before trying to read
2018-10-11 14:17:13 -04:00
Jose Delarosa e701b5a412 Fixes HTTP redirect issue (#45513) 2018-09-20 15:23:51 +03: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