mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-08-06 22:49:03 +00:00
improve bash completion
This commit is contained in:
parent
65e866e5da
commit
335af808a4
@ -282,6 +282,7 @@ __PACKAGE__->register_method({
|
|||||||
storage => get_standard_option('pve-storage-id', {
|
storage => get_standard_option('pve-storage-id', {
|
||||||
description => "Default storage.",
|
description => "Default storage.",
|
||||||
optional => 1,
|
optional => 1,
|
||||||
|
completion => \&PVE::QemuServer::complete_storage,
|
||||||
}),
|
}),
|
||||||
force => {
|
force => {
|
||||||
optional => 1,
|
optional => 1,
|
||||||
@ -620,7 +621,7 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
current => {
|
current => {
|
||||||
description => "Get current values (instead of pending values).",
|
description => "Get current values (instead of pending values).",
|
||||||
optional => 1,
|
optional => 1,
|
||||||
@ -676,7 +677,7 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
returns => {
|
returns => {
|
||||||
@ -1069,7 +1070,7 @@ __PACKAGE__->register_method({
|
|||||||
properties => PVE::QemuServer::json_config_properties(
|
properties => PVE::QemuServer::json_config_properties(
|
||||||
{
|
{
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
skiplock => get_standard_option('skiplock'),
|
skiplock => get_standard_option('skiplock'),
|
||||||
delete => {
|
delete => {
|
||||||
type => 'string', format => 'pve-configid-list',
|
type => 'string', format => 'pve-configid-list',
|
||||||
@ -1118,7 +1119,7 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid_stopped }),
|
||||||
skiplock => get_standard_option('skiplock'),
|
skiplock => get_standard_option('skiplock'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -1178,7 +1179,7 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
idlist => {
|
idlist => {
|
||||||
type => 'string', format => 'pve-configid-list',
|
type => 'string', format => 'pve-configid-list',
|
||||||
description => "A list of disk IDs you want to delete.",
|
description => "A list of disk IDs you want to delete.",
|
||||||
@ -2041,7 +2042,7 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
newid => get_standard_option('pve-vmid', { description => 'VMID for the clone.' }),
|
newid => get_standard_option('pve-vmid', { description => 'VMID for the clone.' }),
|
||||||
name => {
|
name => {
|
||||||
optional => 1,
|
optional => 1,
|
||||||
@ -2322,13 +2323,16 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
disk => {
|
disk => {
|
||||||
type => 'string',
|
type => 'string',
|
||||||
description => "The disk you want to move.",
|
description => "The disk you want to move.",
|
||||||
enum => [ PVE::QemuServer::disknames() ],
|
enum => [ PVE::QemuServer::disknames() ],
|
||||||
},
|
},
|
||||||
storage => get_standard_option('pve-storage-id', { description => "Target Storage." }),
|
storage => get_standard_option('pve-storage-id', {
|
||||||
|
description => "Target storage.",
|
||||||
|
completion => \&PVE::QemuServer::complete_storage,
|
||||||
|
}),
|
||||||
'format' => {
|
'format' => {
|
||||||
type => 'string',
|
type => 'string',
|
||||||
description => "Target Format.",
|
description => "Target Format.",
|
||||||
@ -2470,8 +2474,11 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
target => get_standard_option('pve-node', { description => "Target node." }),
|
target => get_standard_option('pve-node', {
|
||||||
|
description => "Target node.",
|
||||||
|
completion => \&PVE::Cluster::complete_migration_target,
|
||||||
|
}),
|
||||||
online => {
|
online => {
|
||||||
type => 'boolean',
|
type => 'boolean',
|
||||||
description => "Use online/live migration.",
|
description => "Use online/live migration.",
|
||||||
@ -2609,7 +2616,7 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
skiplock => get_standard_option('skiplock'),
|
skiplock => get_standard_option('skiplock'),
|
||||||
disk => {
|
disk => {
|
||||||
type => 'string',
|
type => 'string',
|
||||||
@ -2788,7 +2795,7 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
snapname => get_standard_option('pve-snapshot-name'),
|
snapname => get_standard_option('pve-snapshot-name'),
|
||||||
vmstate => {
|
vmstate => {
|
||||||
optional => 1,
|
optional => 1,
|
||||||
@ -2975,7 +2982,7 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
snapname => get_standard_option('pve-snapshot-name'),
|
snapname => get_standard_option('pve-snapshot-name'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -3018,7 +3025,7 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
snapname => get_standard_option('pve-snapshot-name'),
|
snapname => get_standard_option('pve-snapshot-name'),
|
||||||
force => {
|
force => {
|
||||||
optional => 1,
|
optional => 1,
|
||||||
@ -3067,7 +3074,7 @@ __PACKAGE__->register_method({
|
|||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
node => get_standard_option('pve-node'),
|
node => get_standard_option('pve-node'),
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid_stopped }),
|
||||||
disk => {
|
disk => {
|
||||||
optional => 1,
|
optional => 1,
|
||||||
type => 'string',
|
type => 'string',
|
||||||
|
@ -83,7 +83,7 @@ __PACKAGE__->register_method ({
|
|||||||
parameters => {
|
parameters => {
|
||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
returns => { type => 'null'},
|
returns => { type => 'null'},
|
||||||
@ -104,7 +104,7 @@ __PACKAGE__->register_method ({
|
|||||||
parameters => {
|
parameters => {
|
||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
verbose => {
|
verbose => {
|
||||||
description => "Verbose output format",
|
description => "Verbose output format",
|
||||||
type => 'boolean',
|
type => 'boolean',
|
||||||
@ -144,7 +144,7 @@ __PACKAGE__->register_method ({
|
|||||||
parameters => {
|
parameters => {
|
||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid_running }),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
returns => { type => 'null'},
|
returns => { type => 'null'},
|
||||||
@ -175,7 +175,7 @@ __PACKAGE__->register_method ({
|
|||||||
parameters => {
|
parameters => {
|
||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
returns => { type => 'null'},
|
returns => { type => 'null'},
|
||||||
@ -231,7 +231,7 @@ __PACKAGE__->register_method ({
|
|||||||
parameters => {
|
parameters => {
|
||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid_running }),
|
||||||
timeout => {
|
timeout => {
|
||||||
description => "Timeout in seconds. Default is to wait forever.",
|
description => "Timeout in seconds. Default is to wait forever.",
|
||||||
type => 'integer',
|
type => 'integer',
|
||||||
@ -271,7 +271,7 @@ __PACKAGE__->register_method ({
|
|||||||
parameters => {
|
parameters => {
|
||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid_running }),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
returns => { type => 'null'},
|
returns => { type => 'null'},
|
||||||
@ -312,7 +312,10 @@ __PACKAGE__->register_method ({
|
|||||||
parameters => {
|
parameters => {
|
||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
vmid => get_standard_option('pve-vmid', {optional => 1}),
|
vmid => get_standard_option('pve-vmid', {
|
||||||
|
optional => 1,
|
||||||
|
completion => \&PVE::QemuServer::complete_vmid,
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
returns => { type => 'null'},
|
returns => { type => 'null'},
|
||||||
@ -332,7 +335,7 @@ __PACKAGE__->register_method ({
|
|||||||
parameters => {
|
parameters => {
|
||||||
additionalProperties => 0,
|
additionalProperties => 0,
|
||||||
properties => {
|
properties => {
|
||||||
vmid => get_standard_option('pve-vmid'),
|
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid_running }),
|
||||||
iface => {
|
iface => {
|
||||||
description => "Select the serial device. By default we simply use the first suitable device.",
|
description => "Select the serial device. By default we simply use the first suitable device.",
|
||||||
type => 'string',
|
type => 'string',
|
||||||
|
@ -6443,4 +6443,18 @@ sub complete_vmid_running {
|
|||||||
return &$complete_vmid_full(1);
|
return &$complete_vmid_full(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub complete_storage {
|
||||||
|
|
||||||
|
my $cfg = PVE::Storage::config();
|
||||||
|
my $ids = $cfg->{ids};
|
||||||
|
|
||||||
|
my $res = [];
|
||||||
|
foreach my $sid (keys %$ids) {
|
||||||
|
next if !PVE::Storage::storage_check_enabled($cfg, $sid, undef, 1);
|
||||||
|
push @$res, $sid;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
Loading…
Reference in New Issue
Block a user