]> git.proxmox.com Git - proxmox-acme.git/blame - src/PVE/ACME/Challenge.pm
Refactor extract_callenge for code reuse.
[proxmox-acme.git] / src / PVE / ACME / Challenge.pm
CommitLineData
5460050d
WL
1package PVE::ACME::Challenge;
2
3use strict;
4use warnings;
5
762af3b1
WL
6use PVE::JSONSchema qw(get_standard_option);
7
8use base qw(PVE::SectionConfig);
9
10my $defaultData = {
11 additionalProperties => 0,
12 propertyList => {
13 id => {
14 description => "ACME Plugin ID name",
15 type => 'string',
16 },
17 type => {
18 description => "ACME challenge type.",
19 type => 'string',
20 },
21 disable => {
22 description => "Flag to disable the config.",
23 type => 'boolean',
24 optional => 1,
25 },
26 nodes => get_standard_option('pve-node-list', { optional => 1 }),
27 },
28};
29
30sub private {
31 return $defaultData;
32}
33
5460050d
WL
34sub supported_challenge_types {
35 return {};
36}
37
762af3b1
WL
38sub extract_challenge {
39 my ($self, $challenges, $c_type) = @_;
40
41 die "no challenges defined\n" if !$challenges;
42 die "no challenge type is defined \n" if !$c_type;
43
44 my $tmp_challenges = [ grep {$_->{type} eq $c_type} @$challenges ];
45 die "no $c_type challenge defined in authorization\n"
46 if ! scalar $tmp_challenges;
47
48 my $challenge = $tmp_challenges->[0];
49
50 return $challenge;
51}
52
53sub get_subplugins {
54 return [];
55}
56
5460050d
WL
57sub setup {
58 my ($class, $acme, $authorization) = @_;
59
60 die "implement me\n";
61}
62
63sub teardown {
64 my ($self) = @_;
65
66 die "implement me\n";
67}
68
691;