From: Stoiko Ivanov Date: Mon, 15 Mar 2021 22:01:33 +0000 (+0100) Subject: cluster: add trigger_update_fingerprints X-Git-Url: https://git.proxmox.com/?p=pmg-api.git;a=commitdiff_plain;h=b61378e12b9956e284fbb50a00c51dacd8a6c51c cluster: add trigger_update_fingerprints this commit adds a method that sends a POST request to '/config/cluster/update-fingerprints' on the master node in a cluster. Signed-off-by: Stoiko Ivanov Signed-off-by: Thomas Lamprecht --- diff --git a/src/PMG/Cluster.pm b/src/PMG/Cluster.pm index 49ba7d9..e9217fe 100644 --- a/src/PMG/Cluster.pm +++ b/src/PMG/Cluster.pm @@ -310,6 +310,32 @@ sub get_remote_cert_fingerprint { return $fp; } +sub trigger_update_fingerprints { + my ($cinfo) = @_; + + my $master = $cinfo->{master} || die "unable to lookup master node\n"; + my $master_fp = $master->{fingerprint}; + + # if running on master the current fingerprint for the API-connection is needed + if ($cinfo->{local}->{type} eq 'master') { + $master_fp = PMG::Cluster::read_local_ssl_cert_fingerprint(); + } + + my $ticket = PMG::Ticket::assemble_ticket('root@pam'); + my $csrftoken = PMG::Ticket::assemble_csrf_prevention_token('root@pam'); + my $conn = PVE::APIClient::LWP->new( + ticket => $ticket, + csrftoken => $csrftoken, + cookie_name => 'PMGAuthCookie', + host => $master->{ip}, + cached_fingerprints => { + $master_fp => 1, + }); + + $conn->post("/config/cluster/update-fingerprints", {}); + return undef; +} + my $rsync_command = sub { my ($host_key_alias, @args) = @_;