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

    REST API: Attaching an existing .vhd to a stopped VM

    Scheduled Pinned Locked Moved REST API
    11 Posts 2 Posters 298 Views 1 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.
    • BytevenidosB Offline
      Bytevenidos
      last edited by Bytevenidos

      I am automating VM deployments using XOA's REST API. I am successfully deploying a VM from a template and uploading a VHD to one of my SRs. The final step in my automated deployment is attaching this existing VHD that i uploaded to the newly created, halted VM.

      I also need to select which .iso is inserted into the CD drive. Is that something configured at the template level? I thought I had done that prior to converting my template.

      I saw some discussions about attaching an existing VDI a year ago in the forums, so I am not sure if anyone has asked recently. I am not sure if attaching a disk to a stopped VM after it was newly created is an endpoint I might have missed.

      Is this handled under an action sub-URL?

      1 Reply Last reply Reply Quote 0
      • DanpD Offline
        Danp Pro Support Team
        last edited by

        You attach a VDI to a VM by creating a VBD. Take a look at the POST /vbds endpoint.

        BytevenidosB 2 Replies Last reply Reply Quote 0
        • BytevenidosB Offline
          Bytevenidos @Danp
          last edited by Bytevenidos

          @Danp Thanks! Also, I converted my VM to a template and it had the .iso in it prior to doing that but then when i spin it up from the REST API the .iso is gone?

          1 Reply Last reply Reply Quote 0
          • BytevenidosB Offline
            Bytevenidos @Danp
            last edited by Bytevenidos

            @Danp They're all GET methods no way to mount anything.

            bf010454-dd1e-4540-a86c-a7bda790b6d7-image.png

            DanpD 1 Reply Last reply Reply Quote 0
            • DanpD Offline
              Danp Pro Support Team @Bytevenidos
              last edited by

              @Bytevenidos Are you up-to-date? 🤔

              c6dd38f1-0d4d-46e1-93c7-9d3a0590723a-image.png

              BytevenidosB 2 Replies Last reply Reply Quote 0
              • BytevenidosB Offline
                Bytevenidos @Danp
                last edited by

                Updated now! 🤦

                @Danp 96f16a1e-20d5-4e97-b6f5-ba1a4023c2d3-image.png

                1 Reply Last reply Reply Quote 1
                • BytevenidosB Offline
                  Bytevenidos @Danp
                  last edited by

                  @Danp How about the CD-ROM with the .iso? Can i mount that on the VM using these also ?

                  DanpD 1 Reply Last reply Reply Quote 0
                  • DanpD Offline
                    Danp Pro Support Team @Bytevenidos
                    last edited by

                    @Bytevenidos I don't see an endpoint in the REST API for mounting an ISO. However, you should be able to mount the ISO during the VM creation. I will ask around about using the REST API to mount and eject ISOs.

                    BytevenidosB 1 Reply Last reply Reply Quote 0
                    • BytevenidosB Offline
                      Bytevenidos @Danp
                      last edited by Bytevenidos

                      @danp The POST /vbds endpoint allows configuring both "RW" or "RO" and a bootable Boolean.

                      If I need to mount an OS installation ISO and a separate provisioning VDI to the same VM, I assume I must execute two distinct POST /vbds requests:

                      For the CD-ROM (ISO): Set "mode": "RO" and "bootable": true.
                      For the provisioning VDI: Set "mode": "RW" and "bootable": false.

                      Would this work in mounting my OS .iso to my VM in the CD-ROM and also mount the VDI to the vm so it will read it on first boot?

                      {
                        "VM": "VM-UUID", 
                        "VDI": "VDI-UUID", 
                        "bootable": false,
                        "mode": "RW" 
                      }
                      
                      DanpD 1 Reply Last reply Reply Quote 0
                      • DanpD Offline
                        Danp Pro Support Team @Bytevenidos
                        last edited by

                        @Bytevenidos You can try that, but it most likely won't work.

                        I've confirmed with the dev team that the end point to mount an ISO doesn't currently exist for the REST API. However, it does exist in the older JSON-RPC API, which you can access using xo-cli --

                        vm.insertCd id=<string> cd_id=<string> [force=<boolean>]

                        BytevenidosB 1 Reply Last reply Reply Quote 0
                        • BytevenidosB Offline
                          Bytevenidos @Danp
                          last edited by

                          @Danp alright, thanks. I'll give that a try.

                          1 Reply Last reply Reply Quote 0

                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                          With your input, this post could be even better 💗

                          Register Login
                          • First post
                            Last post