[pve-devel] [PATCH pve-client v3] Add per remote configurable defaults
René Jochum
r.jochum at proxmox.com
Thu Jun 21 09:25:30 CEST 2018
Signed-off-by: René Jochum <r.jochum at proxmox.com>
---
v2: Added defaults per remote.
v3: Simplified code by using "pveclient remote set"
PVE/APIClient/Commands/lxc.pm | 16 ++++++++++++++--
PVE/APIClient/Config.pm | 29 +++++++++++++++++++++++------
2 files changed, 37 insertions(+), 8 deletions(-)
diff --git a/PVE/APIClient/Commands/lxc.pm b/PVE/APIClient/Commands/lxc.pm
index 3add2dd..0601453 100644
--- a/PVE/APIClient/Commands/lxc.pm
+++ b/PVE/APIClient/Commands/lxc.pm
@@ -428,7 +428,12 @@ __PACKAGE__->register_method ({
'/nodes/{node}/lxc', 'POST', {
remote => get_standard_option('pveclient-remote-name'),
vmid => get_standard_option('pve-vmid'),
- node => get_standard_option('pve-node'),
+ node => {
+ description => "The cluster node name.",
+ type => 'string', format => 'pve-node',
+ optional => 1,
+ default => 'localhost | default node'
+ },
quiet => {
description => "Suppress log output.",
type => 'boolean',
@@ -453,6 +458,13 @@ __PACKAGE__->register_method ({
my $background = PVE::APIClient::Tools::extract_param($param, 'background');
my $config = PVE::APIClient::Config->load();
+ my $remote_config = PVE::APIClient::Config->lookup_remote($config, $remote);
+
+ if (!$node) {
+ $node = $remote_config->{default_node} // 'localhost';
+ }
+ $param->{storage} = $param->{storage} // $remote_config->{default_storage} // 'local';
+
my $conn = PVE::APIClient::Config->remote_conn($config, $remote);
my $upid = $conn->post("/nodes/$node/lxc", $param);
@@ -496,7 +508,7 @@ __PACKAGE__->register_method ({
}});
our $cmddef = {
- create => [ __PACKAGE__, 'create', ['remote', 'vmid', 'node']],
+ create => [ __PACKAGE__, 'create', ['remote', 'vmid']],
destroy => [ __PACKAGE__, 'destroy', ['remote', 'vmid']],
enter => [ __PACKAGE__, 'enter', ['remote', 'vmid']],
};
diff --git a/PVE/APIClient/Config.pm b/PVE/APIClient/Config.pm
index a783ab3..73e8f5d 100644
--- a/PVE/APIClient/Config.pm
+++ b/PVE/APIClient/Config.pm
@@ -261,18 +261,36 @@ sub properties {
optional => 1,
maxLength => 4096,
},
+
+ default_node => {
+ description => "The default Node to create guests on.",
+ type => 'string',
+ optional => 1,
+ maxLength => 4096,
+ default => 'localhost',
+ },
+ default_storage => {
+ description => "The default storage to create guests on.",
+ type => 'string',
+ optional => 1,
+ maxLength => 4096,
+ default => 'local',
+ },
};
}
sub options {
return {
- name => { optional => 0 },
- host => { optional => 0 },
+ name => { optional => 1 },
+ host => { optional => 0, fixed => 1 },
comment => { optional => 1 },
- username => { optional => 0 },
+ username => { optional => 0, fixed => 1 },
password => { optional => 1 },
- port => { optional => 1 },
- fingerprint => { optional => 1 },
+ port => { optional => 1, fixed => 1 },
+ fingerprint => { optional => 0, fixed => 1 },
+
+ default_node => { optional => 1 },
+ default_storage => { optional => 1 },
};
}
@@ -295,7 +313,6 @@ sub type {
sub options {
return {
- name => { optional => 1 },
username => { optional => 1 },
port => { optional => 1 },
};
--
2.11.0
More information about the pve-devel
mailing list