improve bash completion

This commit is contained in:
Dietmar Maurer 2015-09-07 08:13:07 +02:00
parent 65e866e5da
commit 335af808a4
3 changed files with 47 additions and 23 deletions

View File

@ -282,6 +282,7 @@ __PACKAGE__->register_method({
storage => get_standard_option('pve-storage-id', {
description => "Default storage.",
optional => 1,
completion => \&PVE::QemuServer::complete_storage,
}),
force => {
optional => 1,
@ -620,7 +621,7 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
node => get_standard_option('pve-node'),
vmid => get_standard_option('pve-vmid'),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
current => {
description => "Get current values (instead of pending values).",
optional => 1,
@ -676,7 +677,7 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
node => get_standard_option('pve-node'),
vmid => get_standard_option('pve-vmid'),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
},
},
returns => {
@ -1069,7 +1070,7 @@ __PACKAGE__->register_method({
properties => PVE::QemuServer::json_config_properties(
{
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'),
delete => {
type => 'string', format => 'pve-configid-list',
@ -1118,7 +1119,7 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
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'),
},
},
@ -1178,7 +1179,7 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
node => get_standard_option('pve-node'),
vmid => get_standard_option('pve-vmid'),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
idlist => {
type => 'string', format => 'pve-configid-list',
description => "A list of disk IDs you want to delete.",
@ -2041,7 +2042,7 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
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.' }),
name => {
optional => 1,
@ -2322,13 +2323,16 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
node => get_standard_option('pve-node'),
vmid => get_standard_option('pve-vmid'),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
disk => {
type => 'string',
description => "The disk you want to move.",
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' => {
type => 'string',
description => "Target Format.",
@ -2470,8 +2474,11 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
node => get_standard_option('pve-node'),
vmid => get_standard_option('pve-vmid'),
target => get_standard_option('pve-node', { description => "Target node." }),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
target => get_standard_option('pve-node', {
description => "Target node.",
completion => \&PVE::Cluster::complete_migration_target,
}),
online => {
type => 'boolean',
description => "Use online/live migration.",
@ -2609,7 +2616,7 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
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'),
disk => {
type => 'string',
@ -2788,7 +2795,7 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
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'),
vmstate => {
optional => 1,
@ -2975,7 +2982,7 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
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'),
},
},
@ -3018,7 +3025,7 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
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'),
force => {
optional => 1,
@ -3067,7 +3074,7 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
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 => {
optional => 1,
type => 'string',

View File

@ -83,7 +83,7 @@ __PACKAGE__->register_method ({
parameters => {
additionalProperties => 0,
properties => {
vmid => get_standard_option('pve-vmid'),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
},
},
returns => { type => 'null'},
@ -104,7 +104,7 @@ __PACKAGE__->register_method ({
parameters => {
additionalProperties => 0,
properties => {
vmid => get_standard_option('pve-vmid'),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
verbose => {
description => "Verbose output format",
type => 'boolean',
@ -144,7 +144,7 @@ __PACKAGE__->register_method ({
parameters => {
additionalProperties => 0,
properties => {
vmid => get_standard_option('pve-vmid'),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid_running }),
},
},
returns => { type => 'null'},
@ -175,7 +175,7 @@ __PACKAGE__->register_method ({
parameters => {
additionalProperties => 0,
properties => {
vmid => get_standard_option('pve-vmid'),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid }),
},
},
returns => { type => 'null'},
@ -231,7 +231,7 @@ __PACKAGE__->register_method ({
parameters => {
additionalProperties => 0,
properties => {
vmid => get_standard_option('pve-vmid'),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid_running }),
timeout => {
description => "Timeout in seconds. Default is to wait forever.",
type => 'integer',
@ -271,7 +271,7 @@ __PACKAGE__->register_method ({
parameters => {
additionalProperties => 0,
properties => {
vmid => get_standard_option('pve-vmid'),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid_running }),
},
},
returns => { type => 'null'},
@ -312,7 +312,10 @@ __PACKAGE__->register_method ({
parameters => {
additionalProperties => 0,
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'},
@ -332,7 +335,7 @@ __PACKAGE__->register_method ({
parameters => {
additionalProperties => 0,
properties => {
vmid => get_standard_option('pve-vmid'),
vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid_running }),
iface => {
description => "Select the serial device. By default we simply use the first suitable device.",
type => 'string',

View File

@ -6443,4 +6443,18 @@ sub complete_vmid_running {
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;