Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: xapi-project/xen-api
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v25.31.0
Choose a base ref
...
head repository: xapi-project/xen-api
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v25.32.0
Choose a head ref
  • 20 commits
  • 126 files changed
  • 8 contributors

Commits on Sep 22, 2025

  1. XSI-1969 more thorough resource cleanup

    In XSI-1969 we deal with an inconsistent Xapi DB and fail to recognise a
    PCI as SRIOV. Be more lenient and recognise stale PCI refs as SRIOV.
    Also remove a VM from a VGPU explictly on resouce cleanup.
    
    Signed-off-by: Christian Lindig <christian.lindig@citrix.com>
    lindig committed Sep 22, 2025
    Configuration menu
    Copy the full SHA
    fabb45e View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2025

  1. XSI-1969 more thorough resource cleanup (#6682)

    In XSI-1969 we deal with an inconsistent Xapi DB and fail to recognise a
    PCI as SRIOV. Be more lenient and recognise stale PCI refs as SRIOV.
    Also remove a VM from a VGPU explictly on resouce cleanup.
    lindig authored Sep 29, 2025
    Configuration menu
    Copy the full SHA
    b2f572d View commit details
    Browse the repository at this point in the history
  2. CP-54163: xapi: Add secure boot field to host

    The secure boot status can be read from the fifth byte of file
    /sys/firmware/efi/efivars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c
    
    This adds a secure_boot field to the host datamodel, which is set
    during dbsync to the value held in the above file.
    
    Signed-off-by: Christian Pardillo Laursen <christian.pardillolaursen@cloud.com>
    cplaursen committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    06e8b6b View commit details
    Browse the repository at this point in the history
  3. xapi: Add secure boot field to host datamodel (#6687)

    The secure boot status can be read from the fifth byte of file
    /sys/firmware/efi/efivars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c
    
    This adds a secure_boot field to the host datamodel, which is set during
    dbsync to the value held in the above file.
    edwintorok authored Sep 29, 2025
    Configuration menu
    Copy the full SHA
    75db25c View commit details
    Browse the repository at this point in the history
  4. http-lib: Add filename hint to file response

    When serving files, a filename can be hinted to the client, so they can
    download the with the correct filename instead of showing the contents
    on the screen. For example, with `curl -JO`.
    
    Don't change behaviour unless explicitly requested, users like the xapi
    fileserver serve html files which are not meant to be downloaded.
    
    See https://httpwg.org/specs/rfc6266.html#rfc.section.4.2
    
    Signed-off-by: Pau Ruiz Safont <pau.safont@vates.tech>
    psafont committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    c074150 View commit details
    Browse the repository at this point in the history
  5. system_status: Clean up imports, add an interface

    Signed-off-by: Pau Ruiz Safont <pau.safont@vates.tech>
    psafont committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    9b4d671 View commit details
    Browse the repository at this point in the history
  6. system_status: Reduce logging

    There were several unuseful debug messages, reduce loglines to the error
    ones that may help debug an error situation.
    
    Signed-off-by: Pau Ruiz Safont <pau.safont@vates.tech>
    psafont committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    7d78716 View commit details
    Browse the repository at this point in the history
  7. system_status: reify the output types for xen-bugtool

    This allows to fix the case where the call to the endpoint failed
    without parameters. Now the correct mimetypes are offered for each of
    the filetypes, and the filename offered when using tar has the correct
    extension.
    
    Signed-off-by: Pau Ruiz Safont <pau.safont@vates.tech>
    psafont committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    3474fb1 View commit details
    Browse the repository at this point in the history
  8. system_status: Group bugtool command-handling into a module

    Allows to see the relation between its parameters, and show the
    differences in how xen-bugtool is invoked
    
    Signed-off-by: Pau Ruiz Safont <pau.safont@vates.tech>
    psafont committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    874502a View commit details
    Browse the repository at this point in the history
  9. system_status: consolidate error-handling

    Previously both methods to collect the file handled errors in a slightly
    different way. Use the same code for both to be consistent
    
    Signed-off-by: Pau Ruiz Safont <pau.safont@vates.tech>
    psafont committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    f27fba6 View commit details
    Browse the repository at this point in the history
  10. system_status: suggest consistent filenames to clients

    Now the filenames are ordered by date and hostname
    
    Examples:
    ```
    content-disposition: attachment; filename="system_status-2025-09-29T13:23:13Z-metavega.tar"
    content-disposition: attachment; filename="system_status-2025-09-29T13:24:30Z-metavega.zip"
    ```
    
    Signed-off-by: Pau Ruiz Safont <pau.safont@vates.tech>
    psafont committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    b51352f View commit details
    Browse the repository at this point in the history
  11. system_status: add URL parameter to show xen-bugtool entries

    This allows the clients to request only the entries they are interested
    in.
    
    This is done by adding `?list` to the URL:
    
    ```
    $ curl -k -i -H "cookie: session_id=OpaqueRef:XXX" https://metavega/system-status?list
    HTTP/1.1 200 OK
    content-length: 6373
    connection: close
    cache-control: no-cache, no-store
    Server: xapi/25.27
    content-type: application/xml
    
    [...]
    ```
    
    Signed-off-by: Pau Ruiz Safont <pau.safont@vates.tech>
    psafont committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    792f8a2 View commit details
    Browse the repository at this point in the history
  12. Fix missing-dependency alerts for unix and str on OCaml 5

    OCaml 5 is particularly picky here and wants all those dependencies
    explicitly (and tediously) declared, otherwise it will print
    `ocaml_deprecated_auto_include` alerts. In the case of `unix`, it is
    used nearly everywhere.
    
    Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
    robhoes committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    293a30b View commit details
    Browse the repository at this point in the history

Commits on Sep 30, 2025

  1. Fix test for OCaml 5

    The format of the error that this test checks for is printed a little
    differently by the OCaml 5 compiler (the name of the tag is now quoted).
    Adapt the test a little to make it work both for OCaml 4 and 5.
    
    Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
    robhoes committed Sep 30, 2025
    Configuration menu
    Copy the full SHA
    b74cda9 View commit details
    Browse the repository at this point in the history
  2. Remove unused Xenctrlext function

    Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
    robhoes committed Sep 30, 2025
    Configuration menu
    Copy the full SHA
    1c36d6b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0f0775b View commit details
    Browse the repository at this point in the history
  4. system_status: enhance useability of the API call (#6690)

    Now there's no failure when called without parameters, suggests a nice
    filename with the correct extension, advertises the content-type of the
    file served, and adds an option to list all the allowed entries
    supported by xen-bugtool in an xml format.
    psafont authored Sep 30, 2025
    Configuration menu
    Copy the full SHA
    f8031f5 View commit details
    Browse the repository at this point in the history
  5. idl: Remove apparently unused gen_test.ml

    Signed-off-by: Andrii Sultanov <andriy.sultanov@vates.tech>
    last-genius committed Sep 30, 2025
    Configuration menu
    Copy the full SHA
    0849336 View commit details
    Browse the repository at this point in the history
  6. idl/gen_client: Don't specify argument values when they're equal to d…

    …efaults
    
    This enables client.ml to skip specifying an arbitrary number of rightmost
    arguments if they're all equal to their default values (since arguments are
    positional, once an argument is not skipped, no arguments to its left can be
    skipped).
    
    Generated code for e.g. host.disable looks like the following:
    
      let session_id = rpc_of_ref_session session_id in
      let host = rpc_of_ref_host host in
      let auto_enable = rpc_of_bool auto_enable in
    
      let needed_args, _ = List.fold_right2
        (fun param default (acc, skipped)->
          (* Since arguments are positional, we can only skip specifying an
             argument that's equal to its default value if all the arguments to
             its right were also not specified *)
          if skipped then
            (match default with
            | Some default_value when param = default_value -> (acc, true)
            | _ -> (param::acc, false))
          else
            (param :: acc, false)
        ) [ session_id; host; auto_enable ] [ None; None; Some (Rpc.Bool true) ] ([], true)
      in
    
      rpc_wrapper rpc "host.disable" needed_args >>= fun x -> return (ignore x)
    
    This fixes an issue with client.ml always specifying values for new parameters
    that older server.ml did not know about (which happens during an RPU).
    
    Fixes: cf5be62 ("host.disable: Add auto_enabled parameter for persistency")
    
    Signed-off-by: Andrii Sultanov <andriy.sultanov@vates.tech>
    last-genius committed Sep 30, 2025
    Configuration menu
    Copy the full SHA
    197c319 View commit details
    Browse the repository at this point in the history
  7. idl/gen_client: Don't specify argument values when they're equal to…

    … defaults (#6693)
    
    #6652 added a new parameter
    to `Host.disable`. Since the method is used during an RPU, when a new
    client calls an older server unaware of the parameter, this broke it.
    Add a test reproducing what happens during an RPU and fix the issue in
    `client.ml`.
    
    ---
    
    Adds an older `server.ml` and `client.ml` from xapi 25.30.0 (with
    `server.ml`
    modified to compile after the XSA-474 interface changes), before
    `Host.disable`
    gained the `auto_enable` parameter.
    
    Adds compatibility tests verifying that an older client can talk to a
    newer
    server and the other way around.
    
    Before the fix, both `test_compatibility_with_old_server_*` fail,
    showing that
    `auto_enable` in `Host.disable` is an unexpected parameter. This failure
    is
    triggered on RPUs, when a newer xapi talks to an older one:
    
    [exception] Server_error(MESSAGE_PARAMETER_COUNT_MISMATCH, [
    host.disable; 1; 2 ])
    
    So allow `client.ml` to skip specifying an arbitrary number of rightmost
    arguments if they're all equal to their default values (since arguments
    are
    positional, once an argument is not skipped, no arguments to its left
    can be
    skipped).
    
    Generated code for `host.disable` looks like the following:
    
    ```
    let session_id = rpc_of_ref_session session_id in
    let host = rpc_of_ref_host host in
    let auto_enable = rpc_of_bool auto_enable in
    
    let needed_args, _ = List.fold_right2
     (fun param default (acc, skipped)->
       (* Since arguments are positional, we can only skip specifying an
          argument that's equal to its default value if all the arguments to
          its right were also not specified *)
       if skipped then
         (match default with
         | Some default_value when param = default_value -> (acc, true)
         | _ -> (param::acc, false))
       else
         (param :: acc, false)
     ) [ session_id; host; auto_enable ] [ None; None; Some (Rpc.Bool true) ] ([], true)
    in
    
    rpc_wrapper rpc "host.disable" needed_args >>= fun x -> return (ignore x)
    ```
    
    This fixes an issue with `client.ml` always specifying values for new
    parameters
    that older `server.ml` did not know about (which happens during an RPU).
    
    This makes `test_compatibility_with_old_server_default` pass, so drop
    the
    `try with` for it. `test_compatibility_with_old_server_non_default`
    still fails,
    indicating that everything works as intended.
    
    Fixes: cf5be62 ("host.disable: Add auto_enabled parameter for
    persistency")
    last-genius authored Sep 30, 2025
    Configuration menu
    Copy the full SHA
    bc0ba4e View commit details
    Browse the repository at this point in the history
Loading