[pve-devel] [PATCH pve-manager 1/2] api2 : cluster: add sdn api endpoint

Alexandre DERUMIER aderumier at odiso.com
Mon Jun 24 07:52:09 CEST 2019


>>But, to not hinder you to much we could go a "include and register 
>>API if it's installed" approach, e.g., someting like pve-firewall 
>>does for qemu-server and container (it does it for other reasons but, 
>>the principle would stay the same): 

Yes, no problem , good idea. (Like this users could also test/review it).
I'll test that today, but I think it should work without problem.


I'll try to send patch for pvestatd too this week, I'll do it the same way.






----- Mail original -----
De: "Thomas Lamprecht" <t.lamprecht at proxmox.com>
À: "pve-devel" <pve-devel at pve.proxmox.com>, "aderumier" <aderumier at odiso.com>
Envoyé: Lundi 24 Juin 2019 07:31:03
Objet: Re: [pve-devel] [PATCH pve-manager 1/2] api2 : cluster: add sdn api endpoint

On 6/21/19 3:54 PM, Alexandre Derumier wrote: 
> Signed-off-by: Alexandre Derumier <aderumier at odiso.com> 

I would really like to avoid any hard dependency for now, until this 
is not more ready and more tested (@Stoiko ;)). 

But, to not hinder you to much we could go a "include and register 
API if it's installed" approach, e.g., someting like pve-firewall 
does for qemu-server and container (it does it for other reasons but, 
the principle would stay the same): 

https://git.proxmox.com/?p=pve-firewall.git;a=blob;f=src/PVE/Firewall.pm;h=b08cea57312b9e6a54680e24abced4e4de4c47be;hb=HEAD#l30 

So do a guarded include, if it works also register the SDN api 
endpoint and return the "sdn" entry in the index call. With that one 
would simply needs to install pve-network to make the API available and 
test it quite easily. Would that sound OK for you? 

> --- 
> PVE/API2/Cluster.pm | 7 +++++++ 
> debian/control | 1 + 
> 2 files changed, 8 insertions(+) 
> 
> diff --git a/PVE/API2/Cluster.pm b/PVE/API2/Cluster.pm 
> index 8af5f3f0..c826aecf 100644 
> --- a/PVE/API2/Cluster.pm 
> +++ b/PVE/API2/Cluster.pm 
> @@ -23,6 +23,7 @@ use PVE::Firewall; 
> use PVE::API2::Firewall::Cluster; 
> use PVE::API2::ReplicationConfig; 
> use PVE::API2::ACMEAccount; 
> +use PVE::API2::Network::SDN; 
> 
> use base qw(PVE::RESTHandler); 
> 
> @@ -56,6 +57,11 @@ __PACKAGE__->register_method ({ 
> path => 'acme', 
> }); 
> 
> +__PACKAGE__->register_method ({ 
> + subclass => "PVE::API2::Network::SDN", 
> + path => 'sdn', 
> +}); 
> + 
> my $dc_schema = PVE::Cluster::get_datacenter_schema(); 
> my $dc_properties = { 
> delete => { 
> @@ -103,6 +109,7 @@ __PACKAGE__->register_method ({ 
> { name => 'config' }, 
> { name => 'acme' }, 
> { name => 'ceph' }, 
> + { name => 'sdn' }, 
> ]; 
> 
> return $result; 
> diff --git a/debian/control b/debian/control 
> index 9ab0a7cd..1d94d3c8 100644 
> --- a/debian/control 
> +++ b/debian/control 
> @@ -47,6 +47,7 @@ Depends: apt-transport-https, 
> libpve-guest-common-perl (>= 2.0-14), 
> libpve-http-server-perl (>= 2.0-12), 
> libpve-storage-perl (>= 6.0-1), 
> + libpve-network-perl, 
> librados2-perl, 
> libtemplate-perl, 
> libterm-readline-gnu-perl, 
> 




More information about the pve-devel mailing list