From 762af3b15c68c9a06eaaeed46a6094f85155c6ca Mon Sep 17 00:00:00 2001 From: Wolfgang Link Date: Mon, 6 Apr 2020 13:30:23 +0200 Subject: [PATCH] Refactor extract_callenge for code reuse. Signed-off-by: Wolfgang Link --- 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.39.2