[pve-devel] [Patch V3 acme 08/13] Refactor extract_callenge for code reuse.
Wolfgang Link
w.link at proxmox.com
Thu Apr 16 07:18:35 CEST 2020
Signed-off-by: Wolfgang Link <w.link at 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
More information about the pve-devel
mailing list