Is qm agent proxmox is different than virsh qemu-agent-command ??

Enigmazflo

Member
Jul 9, 2020
3
0
6
27
Howdy,
Hope you all are doing good!
So recently i heard from my friend about qemu guest agent and wondered if proxmox had it too. Upon reading your documentation I did find a fair bit of information, however proxmox dosent have virsh and uses qm agent to manage calls. I learnt a fair bit information on it and successfully installed guest agent on my VM.
So here is my info,

qm agent 1687 info
root@prox7 ~ # qm agent 1687 info
{
"supported_commands" : [
{
"enabled" : true,
"name" : "guest-get-osinfo",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-get-timezone",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-get-users",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-get-host-name",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-exec",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-exec-status",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-get-memory-block-info",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-set-memory-blocks",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-get-memory-blocks",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-set-user-password",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-get-fsinfo",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-set-vcpus",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-get-vcpus",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-network-get-interfaces",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-suspend-hybrid",
"success-response" : false
},
{
"enabled" : true,
"name" : "guest-suspend-ram",
"success-response" : false
},
{
"enabled" : true,
"name" : "guest-suspend-disk",
"success-response" : false
},
{
"enabled" : true,
"name" : "guest-fstrim",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-fsfreeze-thaw",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-fsfreeze-freeze-list",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-fsfreeze-freeze",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-fsfreeze-status",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-file-flush",
"success-response" : true
},
{
"enabled" : false,
"name" : "guest-file-seek",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-file-write",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-file-read",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-file-close",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-file-open",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-shutdown",
"success-response" : false
},
{
"enabled" : true,
"name" : "guest-info",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-set-time",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-get-time",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-ping",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-sync",
"success-response" : true
},
{
"enabled" : true,
"name" : "guest-sync-delimited",
"success-response" : true
}
],
"version" : "2.12.0"
}


root@prox7 ~ # qm agent 1687 'get-osinfo'
{
"id" : "centos",
"kernel-release" : "3.10.0-1160.42.2.el7.x86_64",
"kernel-version" : "#1 SMP Tue Sep 7 14:49:57 UTC 2021",
"machine" : "x86_64",
"name" : "CentOS Linux",
"pretty-name" : "CentOS Linux 7 (Core)",
"version" : "7 (Core)",
"version-id" : "7"
}

So my question is how do I use "guest-file-open" and provide arguments to this .i.e its path and mode.
When i simply try to do this,
root@prox7 ~ # qm agent 1687 guest-file-open
400 Parameter verification failed.
command: value 'guest-file-open' does not have a value in the enumeration 'fsfreeze-freeze, fsfreeze-status, fsfreeze-thaw, fstrim, get-fsinfo, get-host-name, get-memory-block-info, get-memory-blocks, get-osinfo, get-time, get-timezone, get-users, get-vcpus, info, network-get-interfaces, ping, shutdown, suspend-disk, suspend-hybrid, suspend-ram'


Its very confusing and I could fetch any info web, yet.
Can you please tell me what exactly I am doing wrong ? I know that for virsh command we can do this
'virsh qemu-agent-command v10687 {"execute":"guest-network-get-interfaces"} to get interfaces and
to read file we need a process id and then we can use guest-file-read to get contents.
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!