Signed-off-by: Wolfgang Link <w.l...@proxmox.com>
---
 src/PVE/ACME/Challenge.pm | 47 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/src/PVE/ACME/Challenge.pm b/src/PVE/ACME/Challenge.pm
index 40d32b6..649c228 100644
--- a/src/PVE/ACME/Challenge.pm
+++ b/src/PVE/ACME/Challenge.pm
@@ -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) = @_;
 
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to