[pve-devel] [pve-manager 4/5] pvenode: use print_api_result to print certificate information
Dietmar Maurer
dietmar at proxmox.com
Thu Jul 26 11:04:04 CEST 2018
Signed-off-by: Dietmar Maurer <dietmar at proxmox.com>
---
PVE/CLI/pvenode.pm | 42 +++++++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 19 deletions(-)
diff --git a/PVE/CLI/pvenode.pm b/PVE/CLI/pvenode.pm
index 9dee6ce9..8a6a924d 100644
--- a/PVE/CLI/pvenode.pm
+++ b/PVE/CLI/pvenode.pm
@@ -121,21 +121,11 @@ __PACKAGE__->register_method({
}});
my $print_cert_info = sub {
- my ($cert) = @_;
-
- print "Certificate '$cert->{filename}'\n";
- print "\tFP: '$cert->{fingerprint}'\n" if $cert->{fingerprint};
- print "\tSubject: '$cert->{subject}'\n" if $cert->{subject};
- print "\tIssuer: '$cert->{issuer}'\n" if $cert->{issuer};
- print "\tnotBefore: " . localtime($cert->{notbefore}) . "\n" if $cert->{notbefore};
- print "\tnotAfter: " . localtime($cert->{notafter}) . "\n" if $cert->{notafter};
- if (scalar(@{$cert->{san}})) {
- print "\tSubjectAlternativeNames:\n";
- for my $name (@{$cert->{san}}) {
- print "\t\t-$name\n";
- }
- }
- print "\n";
+ my ($schema, $cert, $options) = @_;
+
+ my $order = [qw(filename fingerprint subject issuer notbefore notafter san)];
+ PVE::CLIFormatter::print_api_result(
+ $cert, $schema, $order, { %$options, noheader => 1, sort_key => 0 });
};
my $print_acme_account = sub {
@@ -176,10 +166,24 @@ our $cmddef = {
cert => {
info => [ 'PVE::API2::Certificates', 'info', [], { node => $nodename }, sub {
- my ($res) = @_;
- for my $cert (@$res) { $print_cert_info->($cert); }
- }],
- set => [ 'PVE::API2::Certificates', 'upload_custom_cert', ['certificates', 'key'], { node => $nodename }, $print_cert_info ],
+ my ($res, $schema, $options) = @_;
+
+ PVE::CLIFormatter::query_terminal_options($options);
+
+ if (!$options->{'output-format'} || $options->{'output-format'} eq 'text') {
+ for my $cert (sort { $a->{filename} cmp $b->{filename} } @$res) {
+ $print_cert_info->($schema->{items}, $cert, $options);
+ }
+ } else {
+ PVE::CLIFormatter::print_api_result($res, $schema, undef, $options);
+ }
+
+ }, $PVE::RESTHandler::standard_output_options],
+ set => [ 'PVE::API2::Certificates', 'upload_custom_cert', ['certificates', 'key'], { node => $nodename }, sub {
+ my ($res, $schema, $options) = @_;
+ PVE::CLIFormatter::query_terminal_options($options);
+ $print_cert_info->($schema, $res, $options);
+ }, $PVE::RESTHandler::standard_output_options],
delete => [ 'PVE::API2::Certificates', 'remove_custom_cert', ['restart'], { node => $nodename } ],
},
--
2.11.0
More information about the pve-devel
mailing list