docs: def _execute_sum(sum_file_path, mount_point, components=None):
      """Executes the SUM based firmware update command.
  
      This method executes the SUM based firmware update command to update the
      components specified, if not, it performs update on all the firmware
      components on th server.
  
      :param sum_file_path: A string with the path to the SUM binary to be
          executed
      :param components: A list of components to be updated. If it is None, all
          the firmware components are updated.
      :param mount_point: Location in which SPP iso is mounted.
      :returns: A string with the statistics of the updated/failed components.
      :raises: SUMOperationError, when the SUM based firmware update operation
          on the node fails.
      """
      cmd = ' --c ' + ' --c '.join(components) if components else ''
  
      try:
          if SUM_LOCATION in sum_file_path:
              location = os.path.join(mount_point, 'packages')
  
              # NOTE: 'launch_sum.sh' binary is part of SPP ISO and it is
              # available in the SPP mount point (eg:'/mount/launch_sum.sh').
              # 'launch_sum.sh' binary calls the 'smartupdate' binary by passing
              # the arguments.
              processutils.execute('./launch_sum.sh', '--s', '--romonly',
                                   '--use_location', location, cmd,
                                   cwd=mount_point)
          else:
              processutils.execute(sum_file_path, '--s', '--romonly', cmd)
      except processutils.ProcessExecutionError as e:
          result = _parse_sum_ouput(e.exit_code)
          if result:
              return result
          else:
              raise exception.SUMOperationError(reason=str(e))