fix(engine-b): run guest-agent commands through /bin/sh -c
The Proxmox guest agent execs a program directly; our compound commands (cd/&&/pipes/redirects/env) need an explicit shell. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>feat/portal-design
parent
f43ade79b0
commit
e0e4c4e18d
|
|
@ -95,8 +95,11 @@ class HttpProxmoxClient implements ProxmoxClient
|
||||||
|
|
||||||
public function guestExec(string $node, int $vmid, string $command): array
|
public function guestExec(string $node, int $vmid, string $command): array
|
||||||
{
|
{
|
||||||
$pid = $this->http()->asForm()
|
// The guest agent runs a program directly, not a shell — wrap compound
|
||||||
->post("/nodes/{$node}/qemu/{$vmid}/agent/exec", ['command' => $command])
|
// commands (cd/&&/pipes/redirects/env) in an explicit shell. command is a
|
||||||
|
// JSON array so each argument is passed safely without re-quoting.
|
||||||
|
$pid = $this->http()
|
||||||
|
->post("/nodes/{$node}/qemu/{$vmid}/agent/exec", ['command' => ['/bin/sh', '-c', $command]])
|
||||||
->throw()->json('data.pid');
|
->throw()->json('data.pid');
|
||||||
|
|
||||||
// Poll exec-status until the command has exited.
|
// Poll exec-status until the command has exited.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue