X-Git-Url: https://git.proxmox.com/?p=pve-client.git;a=blobdiff_plain;f=PVE%2FAPIClient%2FCommands%2FGuestStatus.pm;h=92f424d1a937f86dfb1c0dcf7d52ce21c1895e77;hp=57784e58b17400ab66a434cb900c6f1c9d0b4c75;hb=42de9764b4136b003c7d2cb80e709adb7c4c22a4;hpb=b2123baa349cb0854044d6117ce612bae2d6bf10 diff --git a/PVE/APIClient/Commands/GuestStatus.pm b/PVE/APIClient/Commands/GuestStatus.pm index 57784e5..92f424d 100644 --- a/PVE/APIClient/Commands/GuestStatus.pm +++ b/PVE/APIClient/Commands/GuestStatus.pm @@ -61,6 +61,11 @@ __PACKAGE__->register_method ({ properties => { remote => get_standard_option('pveclient-remote-name'), vmid => get_standard_option('pve-vmid'), + timeout => { + description => "Timeout in seconds", + type => 'integer', + minimum => 1 + }, }, }, returns => { type => 'null'}, @@ -75,6 +80,88 @@ __PACKAGE__->register_method ({ return undef; }}); +__PACKAGE__->register_method ({ + name => 'shutdown', + path => 'shutdown', + method => 'POST', + description => "Stop a guest (VM/Container).", + parameters => { + additionalProperties => 0, + properties => { + remote => get_standard_option('pveclient-remote-name'), + vmid => get_standard_option('pve-vmid'), + force => { + description => "Make sure the Container/VM stops.", + type => 'boolean', + optional => 1, + }, + timeout => { + description => "Timeout in seconds", + type => 'integer', + minimum => 1 + }, + }, + }, + returns => { type => 'null'}, + code => sub { + my ($param) = @_; + + my $remote = PVE::APIClient::Tools::extract_param($param, 'remote'); + my $vmid = PVE::APIClient::Tools::extract_param($param, 'vmid'); + + $guest_status_command->($remote, $vmid, 'shutdown', $param); + + return undef; + }}); + +__PACKAGE__->register_method ({ + name => 'suspend', + path => 'suspend', + method => 'POST', + description => "Suspend a guest VM.", + parameters => { + additionalProperties => 0, + properties => { + remote => get_standard_option('pveclient-remote-name'), + vmid => get_standard_option('pve-vmid'), + }, + }, + returns => { type => 'null'}, + code => sub { + my ($param) = @_; + + my $remote = PVE::APIClient::Tools::extract_param($param, 'remote'); + my $vmid = PVE::APIClient::Tools::extract_param($param, 'vmid'); + + $guest_status_command->($remote, $vmid, 'suspend', $param); + + return undef; + }}); + +__PACKAGE__->register_method ({ + name => 'resume', + path => 'resume', + method => 'POST', + description => "Resume a guest VM.", + parameters => { + additionalProperties => 0, + properties => { + remote => get_standard_option('pveclient-remote-name'), + vmid => get_standard_option('pve-vmid'), + }, + }, + returns => { type => 'null'}, + code => sub { + my ($param) = @_; + + my $remote = PVE::APIClient::Tools::extract_param($param, 'remote'); + my $vmid = PVE::APIClient::Tools::extract_param($param, 'vmid'); + + $guest_status_command->($remote, $vmid, 'resume', $param); + + return undef; + }}); + __PACKAGE__->register_method ({ name => 'spice', path => 'spice',