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

    CLI/SSH delete VMs that were set as "Protect from accidental deletion" in XO

    Scheduled Pinned Locked Moved Solved Xen Orchestra
    16 Posts 7 Posters 7.8k Views 2 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.
    • B Offline
      bobafetthotmail
      last edited by bobafetthotmail

      I have seen that in XO, in the VM advanced settings tab I can flip some switches like "Protect from accidental deletion" and "Protect from accidental shutdown".
      This will be reflected in the VM's settings with the "blocked-operations"

      blocked-operations (MRW): (unknown operation): true; suspend: true; hard_shutdown: true; clean_shutdown: true; clean_reboot: true; pause: true; hard_reboot: true; destroy: true
      

      I've tried editing that with xe vm-param-set from SSH connection to the XCP-ng server but even if I set all of them as false I can't shut down the VM or delete it and I only get an error message

      You attempted an operation that was explicitly blocked (see the blocked_operations field of the given object).
      

      Now, I know that I can just flip the switch again from XO and it will remove these locks, then I can delete it from XO or with xe vm-uninstall uuid=<whatever> through CLI

      I was just wondering about how to disable these locks from command line, because I assume the command line interface can do it too, but I didn't find anything about that in the docs.

      L 1 Reply Last reply Reply Quote 0
      • jedimarcusJ Offline
        jedimarcus
        last edited by

        What commands did you try?

        Running

        xe vm-param-cleaner uuid=<vm_uuid> param-name=blocked-operations
        

        Will unset most of the fields and in a quick test I saw that I could reboot the machine again.

        Maybe setting something to false is just not enough.

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

          You have weird keys also. Please be sure to remove the key entirely.

          B 1 Reply Last reply Reply Quote 0
          • B Offline
            bobafetthotmail @jedimarcus
            last edited by

            @jedimarcus I just used xe vm-param-set to set all the entries in that parameter as false, I didn't see that there is also xe vm-param-cleaner.
            That works and solves the question, thank you.

            1 Reply Last reply Reply Quote 1
            • B Offline
              bobafetthotmail @olivierlambert
              last edited by

              @olivierlambert what is a "weird key" here?
              that entry was populated (or cleaned) by clicking on the "Protect from accidental deletion" and "Protect from accidental shutdown" switches in XO on a source build (in a Debian VM) with latest XCP-ng 8.2

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

                @bobafetthotmail (unknown operation): true;

                B 1 Reply Last reply Reply Quote 0
                • B Offline
                  bobafetthotmail @olivierlambert
                  last edited by bobafetthotmail

                  @olivierlambert That key is added (or removed) as part of this block of keys

                  blocked-operations (MRW): (unknown operation): true; hard_reboot: true; pause: true; suspend: true; hard_shutdown: true; clean_reboot: true; clean_shutdown: true
                  

                  when I click on the "Protect from accidental shutdown" switch in the Advanced settings of the VM in Xen Orchestra.

                  From the version page in XO I see
                  xo-server 5.71.1
                  xo-web 5.75.0

                  And I have XCP-ng at 8.2 and updated packages with yum upgrade.

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

                    Weird. Ping @julien-f

                    1 Reply Last reply Reply Quote 0
                    • julien-fJ Offline
                      julien-f Vates 🪐 Co-Founder XO Team
                      last edited by

                      @pdonias I believe this is due to https://github.com/vatesfr/xen-orchestra/blob/4a6724f664014630b41a38f820af49335f7cf3a1/packages/xo-web/src/xo-app/vm/tab-advanced.js#L71

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

                        Indeed, shutdown alone isn't a valid operation in the XAPI enum.

                        pdoniasP 1 Reply Last reply Reply Quote 0
                        • pdoniasP Offline
                          pdonias Vates 🪐 XO Team @olivierlambert
                          last edited by

                          @olivierlambert That's weird because it can be set and read with XAPI calls but not with xe and if I remove it from the blocked operations (and leave all the other operations), I'm able to stop the VM with a VM.shutdown call, which is what we're trying to avoid when the option is enabled.

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

                            @pdonias so maybe a bug in xe itself? It seems xe doesn't have the full enum in XAPI, that is indeed containing shutdown (cf https://xapi-project.github.io/xen-api/classes/vm.html😞

                            vm_operations
                            Values: 	snapshot 	refers to the operation "snapshot"
                            	clone 	refers to the operation "clone"
                            	copy 	refers to the operation "copy"
                            	create_template 	refers to the operation "create_template"
                            	revert 	refers to the operation "revert"
                            	checkpoint 	refers to the operation "checkpoint"
                            	snapshot_with_quiesce 	refers to the operation "snapshot_with_quiesce"
                            	provision 	refers to the operation "provision"
                            	start 	refers to the operation "start"
                            	start_on 	refers to the operation "start_on"
                            	pause 	refers to the operation "pause"
                            	unpause 	refers to the operation "unpause"
                            	clean_shutdown 	refers to the operation "clean_shutdown"
                            	clean_reboot 	refers to the operation "clean_reboot"
                            	hard_shutdown 	refers to the operation "hard_shutdown"
                            	power_state_reset 	refers to the operation "power_state_reset"
                            	hard_reboot 	refers to the operation "hard_reboot"
                            	suspend 	refers to the operation "suspend"
                            	csvm 	refers to the operation "csvm"
                            	resume 	refers to the operation "resume"
                            	resume_on 	refers to the operation "resume_on"
                            	pool_migrate 	refers to the operation "pool_migrate"
                            	migrate_send 	refers to the operation "migrate_send"
                            	get_boot_record 	refers to the operation "get_boot_record"
                            	send_sysrq 	refers to the operation "send_sysrq"
                            	send_trigger 	refers to the operation "send_trigger"
                            	query_services 	refers to the operation "query_services"
                            	shutdown 	refers to the operation "shutdown"
                            	call_plugin 	refers to the operation "call_plugin"
                            	changing_memory_live 	Changing the memory settings
                            	awaiting_memory_live 	Waiting for the memory settings to change
                            	changing_dynamic_range 	Changing the memory dynamic range
                            	changing_static_range 	Changing the memory static range
                            	changing_memory_limits 	Changing the memory limits
                            	changing_shadow_memory 	Changing the shadow memory for a halted VM.
                            	changing_shadow_memory_live 	Changing the shadow memory for a running VM.
                            	changing_VCPUs 	Changing VCPU settings for a halted VM.
                            	changing_VCPUs_live 	Changing VCPU settings for a running VM.
                            	changing_NVRAM 	Changing NVRAM for a halted VM.
                            	assert_operation_valid 	
                            	data_source_op 	Add, remove, query or list data sources
                            	update_allowed_operations 	
                            	make_into_template 	Turning this VM into a template
                            	import 	importing a VM from a network stream
                            	export 	exporting a VM to a network stream
                            	metadata_export 	exporting VM metadata to a network stream
                            	reverting 	Reverting the VM to a previous snapshotted state
                            	destroy 	refers to the act of uninstalling the VM
                            
                            1 Reply Last reply Reply Quote 0
                            • pdoniasP Offline
                              pdonias Vates 🪐 XO Team
                              last edited by pdonias

                              @olivierlambert It would look like it. I also tried to remove everything from blocked-operations except shutdown and I was able to xe vm-shutdown the VM. But as soon as I add clean_shutdown, xe doesn't allow the shutdown anymore.

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

                                @pdonias Yeah I think shutdown is a kind of an alias for clean_shutdown. Probably for historical reasons. It explains why xe is confused.

                                1 Reply Last reply Reply Quote 0
                                • Z Zevgeny referenced this topic on
                                • Z Offline
                                  Zevgeny
                                  last edited by

                                  I came across this post in a google search.

                                  "xe vm-param-cleaner" mentioned earlier doesnt seem to exist anymore. However the following command worked for me:

                                  xe vm-param-clear uuid=<vm_uuid> param-name=blocked-operations
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • L Offline
                                    luca steinke @bobafetthotmail
                                    last edited by

                                    I had to do the following to remove the reboot block:

                                    xe vm-param-remove param-name=blocked-operations param-key=hard_reboot uuid=$UUID
                                    

                                    And then:

                                    xe vm-reboot force=true vm=$UUID
                                    
                                    1 Reply Last reply Reply Quote 1
                                    • DanpD Danp referenced this topic on

                                    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