docs: def get_server_capabilities(self):
          """Returns the server capabilities
  
          raises: IloError on an error from iLO.
          """
          capabilities = {}
  
          sushy_system = self._get_sushy_system(PROLIANT_SYSTEM_ID)
          sushy_manager = self._get_sushy_manager(PROLIANT_MANAGER_ID)
          try:
              count = len(sushy_system.pci_devices.gpu_devices)
              boot_mode = rf_utils.get_supported_boot_mode(
                  sushy_system.supported_boot_mode)
              capabilities.update(
                  {'pci_gpu_devices': count,
                   'ilo_firmware_version': sushy_manager.firmware_version,
                   'rom_firmware_version': sushy_system.rom_version,
                   'server_model': sushy_system.model,
                   'nic_capacity': sushy_system.pci_devices.max_nic_capacity,
                   'boot_mode_bios': boot_mode.boot_mode_bios,
                   'boot_mode_uefi': boot_mode.boot_mode_uefi})
  
              tpm_state = sushy_system.bios_settings.tpm_state
              all_key_to_value_expression_tuples = [
                  ('sriov_enabled',
                   sushy_system.bios_settings.sriov == sys_cons.SRIOV_ENABLED),
                  ('cpu_vt',
                   sushy_system.bios_settings.cpu_vt == (
                       sys_cons.CPUVT_ENABLED)),
                  ('trusted_boot',
                   (tpm_state == sys_cons.TPM_PRESENT_ENABLED
                    or tpm_state == sys_cons.TPM_PRESENT_DISABLED)),
                  ('secure_boot', self._has_secure_boot()),
                  ('iscsi_boot',
                   (sushy_system.bios_settings.iscsi_resource.
                    is_iscsi_boot_supported())),
                  ('hardware_supports_raid',
                   len(sushy_system.smart_storage.array_controllers.
                       members_identities) > 0),
                  ('has_ssd',
                   common_storage.has_ssd(sushy_system)),
                  ('has_rotational',
                   common_storage.has_rotational(sushy_system)),
                  ('has_nvme_ssd',
                   common_storage.has_nvme_ssd(sushy_system))
                  ]
  
              all_key_to_value_expression_tuples += (
                  [('logical_raid_level_' + x, True)
                   for x in sushy_system.smart_storage.logical_raid_levels])
  
              all_key_to_value_expression_tuples += (
                  [('drive_rotational_' + str(x) + '_rpm', True)
                   for x in
                   common_storage.get_drive_rotational_speed_rpm(sushy_system)])
  
              capabilities.update(
                  {key: 'true'
                   for (key, value) in all_key_to_value_expression_tuples
                   if value})
  
              memory_data = sushy_system.memory.details()
  
              if memory_data.has_nvdimm_n:
                  capabilities.update(
                      {'persistent_memory': (
                       json.dumps(memory_data.has_persistent_memory)),
                       'nvdimm_n': (
                       json.dumps(memory_data.has_nvdimm_n)),
                       'logical_nvdimm_n': (
                       json.dumps(memory_data.has_logical_nvdimm_n))})
  
          except sushy.exceptions.SushyError as e:
              msg = (self._("The Redfish controller is unable to get "
                            "resource or its members. Error "
                            "%(error)s)") % {'error': str(e)})
              LOG.debug(msg)
              raise exception.IloError(msg)
          return capabilities