1. 13 May, 2021 3 commits
  2. 12 May, 2021 1 commit
    • Harald Sitter's avatar
      add a test case for exit_status:1 · 007c28a5
      Harald Sitter authored
      json blobs like this would previously have been discard on account of
      code 1 (invalid command line) since all exit codes now factor into
      device validity we'll want to make sure that the monitor doesn't blow up
      if it encounters a device with code 1 and consequently incomplete json
      data
      
      relates to 1f4ccf54
      007c28a5
  3. 10 May, 2021 1 commit
    • Andreas Hartmetz's avatar
      Fix spurious assertion failure · 1f4ccf54
      Andreas Hartmetz authored
      I have a wacky device here for which smartctl gives the error:
      "/dev/sda: Unknown USB bridge [0x0781:0x5591 (0x100)]"
      
      This returned JSON data is missing some expected entries, which
      seems to give an invalid parsing result. In that case, skip it
      *before* checking for any consistency with further expectations.
      1f4ccf54
  4. 04 May, 2021 1 commit
  5. 03 May, 2021 1 commit
  6. 16 Apr, 2021 2 commits
  7. 15 Apr, 2021 4 commits
    • Kai Uwe Broulik's avatar
      [KCM] Give it an implicit size · ab86d00c
      Kai Uwe Broulik authored
      Ensures it has a sane default size when opened via `kcmshell5 smart`
      ab86d00c
    • Harald Sitter's avatar
      consider devices invalid (ignore them) that have smart disabled · b1914d5a
      Harald Sitter authored
      when SMART is disabled smartctl will exit0 but contain no smart_status
      which means default values get used and the device is considered
      invalid. since we don't know what the status is in this situation we'll
      consider the entire data set invalid and thereby hide the device.
      
      with the growing amount of potentially discarded (but present) data
      blobs it might soon make sense to think about rendering invalid devices
      in the KCM with an unknown state so people at least can find out that
      their drives aren't being monitored
      
      BUG: 435699
      FIXED-IN: 5.22.0
      b1914d5a
    • Harald Sitter's avatar
      use chrono literal for update interval · 6315fa2a
      Harald Sitter authored
      everytime I saw the old code my heart wept
      6315fa2a
    • Harald Sitter's avatar
      equip SMARTData with a validity check · 0da6ac9d
      Harald Sitter authored
      this fixes vbox drives getting reported as possibly breaking when indeed
      they simply lack any amount of smart data. currently I have no evidence
      that this is a more wide spread issue beyond vbox so the validity
      condition is fairly constrained.
      
      this also sees a slight refactor of smartctl which previously had error
      some weak failure handling, by moving that outside the kauth-dependent
      code we can actually test this though and smartmonitor is easily retro
      fitted for validity handling anyway
      0da6ac9d
  8. 13 Apr, 2021 3 commits
  9. 08 Apr, 2021 1 commit
  10. 06 Apr, 2021 1 commit
  11. 28 Mar, 2021 2 commits
  12. 16 Mar, 2021 1 commit
  13. 15 Mar, 2021 1 commit
    • Heiko Becker's avatar
      Fix build with -DWITH_SIMULATION=FALSE · ce26ca91
      Heiko Becker authored
      simulation.qrc isn't added to the build when WITH_SIMULATION is
      disabled and thus building errors out with "undefined reference to
      `qInitResources_simulation()'".
      ce26ca91
  14. 14 Mar, 2021 1 commit
  15. 10 Mar, 2021 2 commits
  16. 09 Mar, 2021 2 commits
    • Harald Sitter's avatar
      extra qml strings correctly · 7b82e090
      Harald Sitter authored
      since our l10n scripts run with the assumption that the code is c++ we'd
      not correctly support all javascripty strings that qml can do. notably
      template literals, but also ""+\n"" multi-line strings
      7b82e090
    • Harald Sitter's avatar
      report smartctl failure codes to the user · 3d10fed3
      Harald Sitter authored
      as it turns out there are a number of issues that do not result in an
      actually bad SMART status and would not get reported to the user. to
      keep the code lean we'll simply look at the exit code bits of smartctl
      as they more or less cover all failure scenarios anyway. we'll then
      translate those to pretty strings and expose them on the Device objects
      for consumption in the qml KCM as "instabilities". they are set visually
      apart from actual bad status through different icon and description
      because it's hard to say if an instability is in fact indicative of
      imminent hard-failure or merely a hiccup (e.g. power loss during a disk
      operation).
      
      BUG: 429804
      FIXED-in: 5.22
      3d10fed3
  17. 08 Mar, 2021 3 commits
    • Harald Sitter's avatar
      add some additional samples · dc6903b9
      Harald Sitter authored
      - missing-status failed to retrieve data because ioctl timed out
      - pass-freebsd is a passing check on freebsd (doesn't really differ from
      linux)
      dc6903b9
    • Harald Sitter's avatar
      always try to notify on device appearance · 98e1fddc
      Harald Sitter authored
      since a hotfix that changed when exactly devices appear the
      notifications have been broken as they'd never get emitted when the
      failed property was already true when the deviceAdded signal fired (i.e.
      pretty much always unless the state changed while the system was
      running)
      
      to fix this always try to notify on devices when they appear. if they
      aren't failing we aren't raising notifications anyway
      98e1fddc
    • Harald Sitter's avatar
      add a simulation mode based on the fixture pool · eada1e17
      Harald Sitter authored
      it's very tricky to actively test the UI because you can't just inject
      arbitrary SMART data blobs.
      
      this refactor seeks to remedy that by abstracting away the device
      notification from solid and based on that implement a complete
      simulation mode where both the device notifier (the bit enumerating
      solid) and the ctl (the bit doing kauth + smartctl) are replaced by
      mocking instances at runtime. these instances then use the data in the
      fixture pool instead of actually looking at the active hardware on the
      system. this effectively allows us to check how all the various fixtures
      are actually handled by the actual production code.
      
      for convenience more than anything this is on by default when building
      in debug mode. also for convenience the fixtures are rcc'd into the
      binary instead of looked up from disk (also relocatability is of course
      always a concern)
      
      (this actually reveals a problem with the notification tech: it doesn't
      notify on devices that are failing ri...
      eada1e17
  18. 02 Mar, 2021 1 commit
  19. 23 Feb, 2021 1 commit
  20. 11 Feb, 2021 1 commit
  21. 30 Jan, 2021 1 commit
  22. 24 Jan, 2021 2 commits
  23. 21 Jan, 2021 4 commits