]> git.proxmox.com Git - proxmox-acme.git/commitdiff
Refactor extract_callenge for code reuse.
authorWolfgang Link <w.link@proxmox.com>
Mon, 6 Apr 2020 11:30:23 +0000 (13:30 +0200)
committerWolfgang Link <w.link@proxmox.com>
Wed, 15 Apr 2020 13:00:37 +0000 (15:00 +0200)
Signed-off-by: Wolfgang Link <w.link@proxmox.com>
src/PVE/ACME/Challenge.pm

index 40d32b6079b4820c6699fb29d1c6df2ecf813699..649c2284694da3f8290e4c7a5e1db489fa22048b 100644 (file)
@@ -3,10 +3,57 @@ package PVE::ACME::Challenge;
 use strict;
 use warnings;
 
+use PVE::JSONSchema qw(get_standard_option);
+
+use base qw(PVE::SectionConfig);
+
+my $defaultData = {
+    additionalProperties => 0,
+    propertyList => {
+       id => {
+           description => "ACME Plugin ID name",
+           type => 'string',
+       },
+       type => {
+           description => "ACME challenge type.",
+           type => 'string',
+       },
+       disable => {
+           description => "Flag to disable the config.",
+           type => 'boolean',
+           optional => 1,
+       },
+       nodes => get_standard_option('pve-node-list', { optional => 1 }),
+    },
+};
+
+sub private {
+    return $defaultData;
+}
+
 sub supported_challenge_types {
     return {};
 }
 
+sub extract_challenge {
+    my ($self, $challenges, $c_type) = @_;
+
+    die "no challenges defined\n" if !$challenges;
+    die "no challenge type is defined \n" if !$c_type;
+
+    my $tmp_challenges = [ grep {$_->{type} eq $c_type} @$challenges ];
+    die "no $c_type challenge defined in authorization\n"
+       if ! scalar $tmp_challenges;
+
+    my $challenge = $tmp_challenges->[0];
+
+    return $challenge;
+}
+
+sub get_subplugins {
+    return [];
+}
+
 sub setup {
     my ($class, $acme, $authorization) = @_;