[pve-devel] [PATCH manager 3/3] api: ceph: update return value definitions

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Dec 21 15:06:47 CET 2022


On 21/12/2022 14:30, Aaron Lauterer wrote:
> to have at either a more accurate description or some description at
> all. For objects returning a lot of data, for example individual Ceph
> services, a full description has been omitted as I think that this would
> be a bit much.
> 
> Signed-off-by: Aaron Lauterer <a.lauterer at proxmox.com>
> ---
>  PVE/API2/Ceph.pm         |  7 ++++++-
>  PVE/API2/Ceph/MON.pm     | 14 +++++++++++---
>  PVE/API2/Ceph/OSD.pm     | 13 +++++++++++++
>  PVE/API2/Cluster/Ceph.pm | 23 ++++++++++++++++++++++-
>  4 files changed, 52 insertions(+), 5 deletions(-)
> 
> diff --git a/PVE/API2/Ceph.pm b/PVE/API2/Ceph.pm
> index 55220324..cc8720b2 100644
> --- a/PVE/API2/Ceph.pm
> +++ b/PVE/API2/Ceph.pm
> @@ -622,7 +622,12 @@ __PACKAGE__->register_method ({
>  	type => 'array',
>  	items => {
>  	    type => "object",
> -	    properties => {},
> +	    properties => {
> +		name => {
> +		    description => "Name of the CRUSH rule.",
> +		    type => "string",
> +		}
> +	    },
>  	},
>  	links => [ { rel => 'child', href => "{name}" } ],
>      },
> diff --git a/PVE/API2/Ceph/MON.pm b/PVE/API2/Ceph/MON.pm
> index 5771bb46..b452045c 100644
> --- a/PVE/API2/Ceph/MON.pm
> +++ b/PVE/API2/Ceph/MON.pm
> @@ -212,9 +212,17 @@ __PACKAGE__->register_method ({
>  	items => {
>  	    type => "object",
>  	    properties => {
> -		name => { type => 'string' },
> -		addr => { type => 'string', optional => 1 },
> -		host => { type => 'string', optional => 1 },
> +		name		    => { type => 'string' },
> +		addr		    => { type => 'string', optional => 1 },
> +		host		    => { type => 'boolean', optional => 1 },
> +		direxists	    => { type => 'string', optional => 1 },
> +		quorum		    => { type => 'boolean', optional => 1 },
> +		host		    => { type => 'string', optional => 1 },
> +		rank		    => { type => 'integer', optional => 1 },
> +		service		    => { type => 'integer', optional => 1 },
> +		state		    => { type => 'string', optional => 1 },
> +		ceph_version	    => { type => 'string', optional => 1 },
> +		ceph_version_short  => { type => 'string', optional => 1 },

please avoid that code formatting style! It looks very out of place in PVE
source and would require touching unrelated lines if a longer variant gets
added or the longest one gets removed, which is just a nuisance and messes
with git history without any real benefit.

>  	    },
>  	},
>  	links => [ { rel => 'child', href => "{name}" } ],
> diff --git a/PVE/API2/Ceph/OSD.pm b/PVE/API2/Ceph/OSD.pm
> index 93433b3a..ce1281d9 100644
> --- a/PVE/API2/Ceph/OSD.pm
> +++ b/PVE/API2/Ceph/OSD.pm
> @@ -88,6 +88,19 @@ __PACKAGE__->register_method ({
>      # fixme: return a list instead of extjs tree format ?
>      returns => {
>  	type => "object",
> +	items => {
> +	    type => "object",
> +	    properties => {
> +		flags => { type => "string" },
> +		root => {
> +		    type => "object",
> +		    description => "extjs formatted grid tree",

It's ExtJS, but actually not really sure why that is relevant here, the ExtJS
tree store format is a very simple and relatively common serialization format
for a tree.

> +		},
> +	    },
> +	},
> +
> +
> +	}
>      },
>      code => sub {
>  	my ($param) = @_;
> diff --git a/PVE/API2/Cluster/Ceph.pm b/PVE/API2/Cluster/Ceph.pm
> index 7f825003..49f84b24 100644
> --- a/PVE/API2/Cluster/Ceph.pm
> +++ b/PVE/API2/Cluster/Ceph.pm
> @@ -68,7 +68,20 @@ __PACKAGE__->register_method ({
>  	    },
>  	},
>      },
> -    returns => { type => 'object' },
> +    returns => {
> +	type => 'object'
> +	description => "Items for each type of service containing objects for each instance.",
> +	items => {
> +	    type => "object",
> +	    properties => {
> +		mds => { type => "object" },
> +		mgr => { type => "object" },
> +		mon => { type => "object" },
> +		node => { type => "object" },
> +		osd => { type => "object" },

description (e.g., it might not be clear that "node" holds the ceph version on
that node), optionality and maybe (some common/most-useful) sub-properties could
be great to have too.

> +	    }
> +	},
> +    },
>      code => sub {
>  	my ($param) = @_;
>  
> @@ -181,6 +194,14 @@ __PACKAGE__->register_method ({
>  		    description => "Flag name.",
>  		    type => 'string', enum => $possible_flags_list,
>  		},
> +		description => {
> +		    description => "Flag description.",
> +		    type => 'string',
> +		},
> +		value => {
> +		    description => "Flag value.",
> +		    type => 'boolean',
> +		},
>  	    },
>  	},
>  	links => [ { rel => 'child', href => "{name}" } ],






More information about the pve-devel mailing list