[pve-devel] [RFC cluster v2 10/10] api/cluster: add join_info endpoint
Thomas Lamprecht
t.lamprecht at proxmox.com
Wed Dec 6 16:49:31 CET 2017
On 12/06/2017 04:25 PM, Fabian Grünbichler wrote:
> small nit inline
>
> On Mon, Dec 04, 2017 at 12:11:17PM +0100, Thomas Lamprecht wrote:
>> Returns all relevant information for joining this cluster securely
>> over the API.
>>
>> Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
>> ---
>> data/PVE/API2/ClusterConfig.pm | 42 ++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 42 insertions(+)
>>
>> diff --git a/data/PVE/API2/ClusterConfig.pm b/data/PVE/API2/ClusterConfig.pm
>> index 9bbefaf..11005e6 100644
>> --- a/data/PVE/API2/ClusterConfig.pm
>> +++ b/data/PVE/API2/ClusterConfig.pm
>> @@ -206,6 +206,48 @@ my $peer_can_use_api = sub {
>> };
>>
>> __PACKAGE__->register_method ({
>> + name => 'join_info',
>> + path => 'join',
>> + method => 'GET',
>> + description => "Returns the information needed to join this cluster.",
>> + parameters => {
>> + additionalProperties => 0,
>> + properties => { },
>> + },
>> + returns => {
>> + type => 'object',
>> + additionalProperties => 0,
>> + properties => {
>> + ip_addr => { type => 'string', format => 'ip' },
>> + fingerprint => {
>> + type => 'string',
>> + pattern => '^(:?[A-Z0-9]{2}:){31}[A-Z0-9]{2}$',
>
> might make sense to make this a proper format from the get-go - we'll
> need it once we re-start our multi-cluster-manager efforts anyway ;)
>
seems also reasonable to me.
much thanks for the initial review!!
>> + },
>> + totem => { type => 'object' },
>> + config_digest => { type => 'string' },
>> + },
>> + },
>> + code => sub {
>> + my ($param) = @_;
>> +
>> + my $nodename = PVE::INotify::nodename();
>> +
>> + PVE::Cluster::cfs_update(1);
>> + my $conf = PVE::Cluster::cfs_read_file('corosync.conf');
>> + my $totem_cfg = $conf->{main}->{totem} // {};
>> + my $corosync_config_digest = $conf->{digest};
>> +
>> + my $res = {
>> + fingerprint => PVE::Cluster::get_node_fingerprint($nodename),
>> + ip_addr => scalar(PVE::Cluster::remote_node_ip($nodename)),
>> + totem => $totem_cfg,
>> + config_digest => $corosync_config_digest,
>> + };
>> +
>> + return $res;
>> + }});
>> +
>> +__PACKAGE__->register_method ({
>> name => 'join',
>> path => 'join',
>> method => 'POST',
>> --
>> 2.11.0
>>
>>
>> _______________________________________________
>> pve-devel mailing list
>> pve-devel at pve.proxmox.com
>> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list