On October 14, 2019 1:08 pm, Wolfgang Link wrote:
> The validating have to be done in the Plugin to be generic.

NAK - this was already designed with plugins in mind?

1.) call plugin->setup()
2.) request validation by ACME server
3.) check validation status
4.) repeat 3 until OK or error
5.) call plugin->teardown()

1/5 are plugin specific
2-4 are the same for all validation methods.

possibly we need to look at what setup() returns (post-setup delay? 
inter-check delay? better name for value that is used for requesting the 
validation?), or what teardown get's passed (probably the full return 
value of ->setup(), so that the plugin can determine what it needs for 
teardown) if we now integrate actual other plugins.

but moving the whole setup->validation->teardown sequence into each 
plugin is the wrong direction to go for sure..

> ---
>  PVE/API2/ACME.pm | 27 +--------------------------
>  1 file changed, 1 insertion(+), 26 deletions(-)
> 
> diff --git a/PVE/API2/ACME.pm b/PVE/API2/ACME.pm
> index 2c05db9b..db94586d 100644
> --- a/PVE/API2/ACME.pm
> +++ b/PVE/API2/ACME.pm
> @@ -59,32 +59,7 @@ my $order_certificate = sub {
>           print "... already validated!\n";
>       } else {
>           print "... pending!\n";
> -         print "Setting up webserver\n";
> -         my $validation = eval { PVE::ACME::StandAlone->setup($acme, $auth) 
> };
> -         die "failed setting up webserver - $@\n" if $@;
> -
> -         print "Triggering validation\n";
> -         eval {
> -             $acme->request_challenge_validation($validation->{url}, 
> $validation->{key_auth});
> -             print "Sleeping for 5 seconds\n";
> -             sleep 5;
> -             while (1) {
> -                 $auth = $acme->get_authorization($auth_url);
> -                 if ($auth->{status} eq 'pending') {
> -                     print "Status is still 'pending', trying again in 30 
> seconds\n";
> -                     sleep 30;
> -                     next;
> -                 } elsif ($auth->{status} eq 'valid') {
> -                     print "Status is 'valid'!\n";
> -                     last;
> -                 }
> -                 die "validating challenge '$auth_url' failed\n";
> -             }
> -         };
> -         my $err = $@;
> -         eval { $validation->teardown() };
> -         warn "$@\n" if $@;
> -         die $err if $err;
> +         PVE::ACME::validating_url($acme, $auth, $auth_url, $node_config);
>       }
>      }
>      print "\nAll domains validated!\n";
> -- 
> 2.20.1
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel@pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> 
> 

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

Reply via email to