]>
git.proxmox.com Git - pve-client.git/blob - PVE/APIClient/Commands/GuestStatus.pm
7903a2b7d59d7eddc99b63c137bb1c9a89175ad1
1 package PVE
::APIClient
::Commands
::GuestStatus
;
6 use PVE
::APIClient
::Helpers
;
7 use PVE
::APIClient
::Config
;
9 use PVE
::JSONSchema
qw(get_standard_option);
13 use base
qw(PVE::CLIHandler);
15 my $guest_status_command = sub {
16 my ($remote, $vmid, $cmd, $param) = @_,
18 my $config = PVE
::APIClient
::Config-
>load();
19 my $conn = PVE
::APIClient
::Config-
>remote_conn($config, $remote);
21 my $resource = PVE
::APIClient
::Helpers
::get_vmid_resource
($conn, $vmid);
23 my $upid = $conn->post("api2/json/nodes/$resource->{node}/$resource->{type}/$resource->{vmid}/status/$cmd", $param);
25 print PVE
::APIClient
::Helpers
::poll_task
($conn, $resource->{node
}, $upid) . "\n";
28 __PACKAGE__-
>register_method ({
32 description
=> "Start a guest (VM/Container).",
34 additionalProperties
=> 0,
36 remote
=> get_standard_option
('pveclient-remote-name'),
37 vmid
=> get_standard_option
('pve-vmid'),
40 returns
=> { type
=> 'null'},
44 my $remote = PVE
::Tools
::extract_param
($param, 'remote');
45 my $vmid = PVE
::Tools
::extract_param
($param, 'vmid');
47 $guest_status_command->($remote, $vmid, 'start', $param);
52 __PACKAGE__-
>register_method ({
56 description
=> "Stop a guest (VM/Container).",
58 additionalProperties
=> 0,
60 remote
=> get_standard_option
('pveclient-remote-name'),
61 vmid
=> get_standard_option
('pve-vmid'),
64 returns
=> { type
=> 'null'},
68 my $remote = PVE
::Tools
::extract_param
($param, 'remote');
69 my $vmid = PVE
::Tools
::extract_param
($param, 'vmid');
71 $guest_status_command->($remote, $vmid, 'stop', $param);