]> git.proxmox.com Git - pve-client.git/blobdiff - PVE/APIClient/Commands/remote.pm
adopt code for changes in pve-common
[pve-client.git] / PVE / APIClient / Commands / remote.pm
index 03960af373f3a0ee48857ac357af6f0ac51ef578..2e5337aa2c9be3a2837b5019ac7a18d93f09ca79 100644 (file)
@@ -19,32 +19,54 @@ sub read_password {
    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('pve-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),
@@ -114,8 +136,8 @@ __PACKAGE__->register_method ({
     }});
 
 __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),
@@ -160,8 +182,8 @@ __PACKAGE__->register_method ({
     }});
 
 __PACKAGE__->register_method ({
-    name => 'remove',
-    path => 'remove',
+    name => 'remote_delete',
+    path => 'remote_delete',
     method => 'DELETE',
     description => "Removes a remote from your config file.",
     parameters => {
@@ -186,10 +208,12 @@ __PACKAGE__->register_method ({
     }});
 
 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;