1. 16 Jan, 2023 2 commits
  2. 13 Jan, 2023 1 commit
  3. 06 Jan, 2023 1 commit
  4. 05 Jan, 2023 1 commit
  5. 21 Dec, 2022 1 commit
    • Paweł Wieczorek's avatar
      Merge branch... · 8eff9e65
      Paweł Wieczorek authored
      Merge branch 'collabora/staging-lava-dispatcher-mirror-timeout-exception-to-last-exception-class' into 'collabora/staging'
      lava_dispatcher: RetryAction use last exception class for final exception
      See merge request !124
  6. 20 Dec, 2022 1 commit
  7. 16 Dec, 2022 1 commit
    • Edmund Smith's avatar
      User and group APIs for automated management · ed2529dc
      Edmund Smith authored
      This adds two new XMLRPC user management APIs:
      - system.get_all_users to find out which users are present on this
        LAVA instance.
      - system.set_user_active to lock and unlock accounts on the LAVA
      Both APIs require a token from a user with staff access.
      The background here is our ongoing attempt to integrate LAVA more
      fully into a SSO environment, where OIDC only takes us so far in terms
      of things like account locking and access by use of user tokens.
      Signed-off-by: Edmund Smith's avatarEd Smith <ed.smith@collabora.com>
  8. 15 Dec, 2022 4 commits
  9. 13 Dec, 2022 1 commit
    • Igor Ponomarev's avatar
      lava_dispatcher: Rework ShellLogger and add unit test for it · 61bef67a
      Igor Ponomarev authored
      The rework has following properties:
      1). Add support for \r\n and \r line separators. Some software
      uses \r as line separators and before that LAVA would simply
      log entire output as one big line if the software used \r.
      LAVA would also stall all output until it could read the new
      2). Make logs preserve unprintable characters such as new lines,
      carriage return and ANSI terminal escape sequences. This allows
      for better compatibility with other software that relies on those
      characters such as Gitlab. The unprintable characters are stripped
      from output before the logs are displayed in the LAVA's web UI.
      Unit test will check various logger inputs with different new
      line separators and fragmented inputs. (for example, if \r\n gets
      split between the write calls)
  10. 07 Dec, 2022 1 commit
  11. 29 Nov, 2022 1 commit
  12. 28 Nov, 2022 2 commits
  13. 26 Nov, 2022 6 commits
    • Edmund Smith's avatar
      Add docker login to all container actions · dff590a7
      Edmund Smith authored
      Add login support to containers, but there's no single location to
      update the scheme, the container mixin just plucks it out of the
      standard parameters.
    • Edmund Smith's avatar
      Add docker login support to test:docker · 49677e86
      Edmund Smith authored
      This uses the standard utilities, so is simply a matter
      of updating the parameters used.
    • Edmund Smith's avatar
      Add docker login support for boot:qemu · 7726bffe
      Edmund Smith authored
      This action uses the standard utilities, so this amounts to passing
      amended parameters to enable the necessary stanza in the schema, and
      to parse it.
    • Edmund Smith's avatar
      Add login support to deploy:docker · a35507a5
      Edmund Smith authored
      This does not use the standard utility, so support for invoking
      `docker login` appropriately must be coded separately. This also
      enables the necessary stanza in the schema.
    • Edmund Smith's avatar
      Add docker login support to the base utility for Docker commands · fc88ceba
      Edmund Smith authored
      This change means that all LAVA actions that rely on this utility to
      interact with docker can add support for `docker login` by
      initializing the utility object appropriately. Actions must separately
      enable the schema support for the login stanza.
    • Edmund Smith's avatar
      Add schema support for docker login · 141ee3c4
      Edmund Smith authored
      Most actions rely on the same utility function to describe the docker
      parameters they take in their schema. This extends that function so
      that, optionally, an extra stanza for login details is recognised. By
      default, the stanza is not recognised, it must be opted into.
      The reason this stanza is optional is that it will take time to
      implement docker login support in all the necessary places. This
      allows us to implement it for a subset of LAVA actions, whilst keeping
      the schema checking accurate for actions which do not yet have login
  14. 25 Nov, 2022 1 commit
  15. 24 Nov, 2022 3 commits
    • Edmund Smith's avatar
      Run django migrations as the correct target user · abaeaa9f
      Edmund Smith authored
      Running them as root leaves blank unwritable logs if they don't
      already exist, as is the case for the docker image. It seemed safer to
      run the commands as the correct user (to avoid future permission
      problems) than to simply bughunt the files that are currently created
      that have the wrong owners.
    • Edmund Smith's avatar
      Parse YAML from environment variable settings · 09d67059
      Edmund Smith authored
      This means you can set values to something other than strings, for
      example boolean, numeric and even dictionary settings. The failover
      is so that invalid values are treated as they were before.
    • Edmund Smith's avatar
      Add an API for setting the groups a user is a member of · b57e17ea
      Edmund Smith authored
      Lava uses XMLRPC for its system management endpoints, which is secured
      via HTTP basic authentication. This adds `system.set_user_groups`
      taking a string email address for the user, and an array of string
      group names which will be the exact set of groups of which the user is
      a member.
      This endpoint requires a token from a user with staff permissions in
      order to access it.
  16. 18 Nov, 2022 1 commit
  17. 14 Nov, 2022 2 commits
  18. 10 Nov, 2022 2 commits
    • Igor Ponomarev's avatar
      lava_rest_app: Reworked API v0.3 · 3f0fd24e
      Igor Ponomarev authored
      No longer is a copy paste of v0.2
      Now is a very limited API that only has the new methods.
      Previous API version was difficult to update and keep in sync with
    • Igor Ponomarev's avatar
      lava_rest_app: use sandbox jinja2 environment for user provided template · e35db5cf
      Igor Ponomarev authored
      Fix remote code execution at /api/v0.2/devices/validate/ and
      /api/v0.3-experimental/devices/validate/ endpoints.
      Jinja2 templates created from a user input are open to code
      injection. By switching to sandboxed jinja2 environment only
      a restricted set of function calls will be available
      when rendering a template.
  19. 09 Nov, 2022 8 commits