XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    How to revert VM to snapshot

    Scheduled Pinned Locked Moved REST API
    12 Posts 3 Posters 329 Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S Offline
      slavavrn
      last edited by

      Re: Automation script to revert and save snapshot

      I have the same question.
      I'm trying
      curl -k -X POST -b 'authenticationToken=<my-token-from-user-authentication-tokens>' 'https://<xen-local>/rest/v0/vm-snapshot/<snapshot-id>/actions'
      and i get
      []
      How do i revert to the snapshot?

      1 Reply Last reply Reply Quote 0
      • olivierlambertO Offline
        olivierlambert Vates 🪐 Co-Founder CEO
        last edited by

        Hi,

        You should use the integrated Swagger doc. Directly from your browser, eg:
        https://<xen-local>/rest/v0/docs/#/vms

        You will see in green all the actions possible. Revert isn't implemented yet in the REST API AFAIK.

        1 Reply Last reply Reply Quote 0
        • olivierlambertO Offline
          olivierlambert Vates 🪐 Co-Founder CEO
          last edited by

          Adding @lsouai-vates in the loop to check with the team to know when it's planned

          1 Reply Last reply Reply Quote 0
          • S Offline
            slavavrn
            last edited by

            Re: Automation script to revert and save snapshot

            Thanks.

            Can I be sure that all API capabilities are reflected in Swagger?

            So far, I've only found one method: creating a scheduled job, which can be launched via the API.
            curl -k -X POST -b 'authenticationToken=<my-token-from-user-authentication-tokens>' 'https://<xen-local>/rest/v0/schedules/<schedule-id>/actions/run'
            But that's a bit of a complicated process.

            1 Reply Last reply Reply Quote 1
            • olivierlambertO Offline
              olivierlambert Vates 🪐 Co-Founder CEO
              last edited by

              Swagger is auto generated from the API, so the doc cannot lag. That's the point of the Swagger doc/API.

              S 1 Reply Last reply Reply Quote 0
              • S Offline
                slavavrn @olivierlambert
                last edited by

                @olivierlambert
                But, for example, for VMS, there are the following actions:
                curl -k -X GET -H "Content-Type: application/json" -b authenticationToken=<my-token-from-user-authentication-tokens> 'https://<xen-local>/rest/v0/vms/<vm_id>/actions'
                [
                "/rest/v0/vms/<vm_id>/actions/clean_reboot",
                "/rest/v0/vms/<vm_id>/actions/clean_shutdown",
                "/rest/v0/vms/<vm_id>/actions/hard_reboot",
                "/rest/v0/vms/<vm_id>/actions/hard_shutdown",
                "/rest/v0/vms/<vm_id>/actions/snapshot",
                "/rest/v0/vms/<vm_id>/actions/start"
                ]
                but in swagger you can see only one action - start
                So, not everything available through the API is reflected in Swagger?Screenshot 2025-10-14 181918.png

                S 1 Reply Last reply Reply Quote 0
                • olivierlambertO Offline
                  olivierlambert Vates 🪐 Co-Founder CEO
                  last edited by olivierlambert

                  Because some endpoints aren't migrated to swagger yet (it needs to be correctly typed etc.). Each month we migrate more and more endpoint to it (it's almost done).

                  Adding @mathieuRA in the convo

                  1 Reply Last reply Reply Quote 0
                  • S Offline
                    slavavrn @slavavrn
                    last edited by

                    So, Swagger isn't 100% API compliant. That's what I was saying 🙂
                    Can I see the API endpoints myself? Is the code open source?
                    https://github.com/vatesfr/xen-orchestra/blob/master/packages/xo-server/src/api/vm.mjs#L1088
                    Did I find the correct entry point?
                    Maybe I should use xo-cli to perform the revert operation? Or does the cli also access the API and can't provide more functionality?

                    1 Reply Last reply Reply Quote 0
                    • olivierlambertO Offline
                      olivierlambert Vates 🪐 Co-Founder CEO
                      last edited by

                      I will let @mathieuRA to answer

                      S 1 Reply Last reply Reply Quote 0
                      • S Offline
                        slavavrn @olivierlambert
                        last edited by

                        @olivierlambert There is no information on this issue yet?

                        MathieuRAM 1 Reply Last reply Reply Quote 0
                        • MathieuRAM Offline
                          MathieuRA Vates 🪐 XO Team @slavavrn
                          last edited by MathieuRA

                          Hi @slavavrn
                          FYI, all endpoints are now documented in Swagger.

                          The REST API code is available here.

                          The revert snapshot action is not yet accessible via the REST API, but you can use it with xo-cli.

                          See
                          xo-cli vm.revert snapshot=<snapshot-id>

                          1 Reply Last reply Reply Quote 1
                          • olivierlambertO Offline
                            olivierlambert Vates 🪐 Co-Founder CEO
                            last edited by

                            Thanks @MathieuRA !

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post