Re: [PATCH 08/19] src: add constants for domain stats 'state.' parameters

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 04, 2025 at 14:51:55 +0000, Daniel P. Berrangé wrote:
> On Tue, Mar 04, 2025 at 03:48:51PM +0100, Peter Krempa wrote:
> > On Tue, Mar 04, 2025 at 14:04:03 +0000, Daniel P. Berrangé wrote:
> > > Contrary to most APIs returning typed parameters, there are no constants
> > > defined for the domain stats data keys. This is was because many of the
> > > keys needs to be dynamically constructed using one or more array index
> > > values.
> > > 
> > > It is possible to define constants while still supporting dynamic
> > > array indexes by simply defining the prefixes and suffixes as constants.
> > > The consuming code can then combine the constants with array index
> > > value.
> > > 
> > > With this approach, it is practical to add constants for the domain stats
> > > API keys.
> > > 
> > > Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx>
> > > ---
> > >  include/libvirt/libvirt-domain.h | 20 ++++++++++++++++++++
> > >  src/libvirt-domain.c             |  9 +++------
> > >  src/qemu/qemu_driver.c           |  6 ++++--
> > >  3 files changed, 27 insertions(+), 8 deletions(-)
> > > 
> > > diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
> > > index 1d988daf96..5b014adcd0 100644
> > > --- a/include/libvirt/libvirt-domain.h
> > > +++ b/include/libvirt/libvirt-domain.h
> > > @@ -2782,6 +2782,26 @@ struct _virDomainStatsRecord {
> > >      int nparams;
> > >  };
> > >  
> > > +
> > > +/**
> > > + * VIR_DOMAIN_STATS_STATE_STATE:
> > > + *
> > > + * State of the VM, returned as int from virDomainState enum.
> > > + *
> > > + * Since: 11.2.0
> > 
> > As noted in my reply to 1/19, I think we need some wording saying that
> > for the legacy constants that are being added the 'since' field applies
> > only on when the constant was added but not since when the data is
> > available.
> 
> If we did the archeology we could do
> 
>   "Since: 11.2.0 (constant only, data since 8.2.0)"
> 
> but would need to hack our API build script to ignore stuff
> in the (...) brackets ?

Given that it wasn't versioned before we could possibly also document
e.g. at the function docs block that 'anything 11.2.0' is when the
constant was introduced; but doesn't necessarily mean that it's when the
data is present.

Both APIs explicitly allow individual fields to be missing based on a
variety of factors so it's not like the user can rely on the data in any
way.




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux