return PVE::APIClient::PTY::read_password("Remote password: ")
}
+# define as array to keep ordering
+my $remote_list_returns_properties = [
+ name => get_standard_option('pveclient-remote-name'),
+ host => { type => 'string', format => 'address' },
+ username => { type => 'string' },
+ port => { type => 'integer', optional => 1 },
+ fingerprint => { type => 'string', optional => 1 },
+ ];
+
__PACKAGE__->register_method ({
- name => 'list',
- path => 'list',
+ name => 'remote_list',
+ path => 'remote_list',
method => 'GET',
description => "List remotes from your config file.",
parameters => {
additionalProperties => 0,
+ properties => {
+ 'format' => get_standard_option('pveclient-output-format'),
+ },
+ },
+ returns => {
+ type => 'array',
+ items => {
+ type => 'object',
+ properties => { @$remote_list_returns_properties },
+ },
},
- returns => { type => 'null' },
code => sub {
+ my ($param) = @_;
+
+ my $format = PVE::APIClient::Tools::extract_param($param, 'format');
+ PVE::APIClient::Helpers::set_output_format($format);
+
my $config = PVE::APIClient::Config->load();
- printf("%10s %10s %10s %10s %100s\n", "Name", "Host", "Port", "Username", "Fingerprint");
+ my $res = [];
for my $name (keys %{$config->{ids}}) {
my $data = $config->{ids}->{$name};
next if $data->{type} ne 'remote';
- printf("%10s %10s %10s %10s %100s\n", $name, $data->{'host'},
- $data->{'port'} // '-', $data->{'username'}, $data->{'fingerprint'} // '-');
+ push @$res, $data;
}
- return undef;
+ return $res;
}});
__PACKAGE__->register_method ({
- name => 'add',
- path => 'add',
+ name => 'remote_add',
+ path => 'remote_add',
method => 'POST',
description => "Add a remote to your config file.",
parameters => PVE::APIClient::RemoteConfig->createSchema(1),
}});
__PACKAGE__->register_method ({
- name => 'update',
- path => 'update',
+ name => 'remote_set',
+ path => 'remote_set',
method => 'PUT',
description => "Update a remote configuration.",
parameters => PVE::APIClient::RemoteConfig->updateSchema(1),
}});
__PACKAGE__->register_method ({
- name => 'remove',
- path => 'remove',
+ name => 'remote_delete',
+ path => 'remote_delete',
method => 'DELETE',
description => "Removes a remote from your config file.",
parameters => {
}});
our $cmddef = {
- add => [ __PACKAGE__, 'add', ['name', 'host', 'username']],
- update => [ __PACKAGE__, 'update', ['name']],
- remove => [ __PACKAGE__, 'remove', ['name']],
- list => [__PACKAGE__, 'list'],
+ add => [ __PACKAGE__, 'remote_add', ['name', 'host', 'username']],
+ set => [ __PACKAGE__, 'remote_set', ['name']],
+ delete => [ __PACKAGE__, 'remote_delete', ['name']],
+ list => [__PACKAGE__, 'remote_list', undef, {}, sub {
+ PVE::APIClient::Helpers::print_ordered_result($remote_list_returns_properties, @_);
+ }],
};
1;