[Libosinfo] [osinfo-db/libosinfo PATCH 00/18] Deal with "deprecated" and "removed" devices

Fabiano Fidêncio fidencio at redhat.com
Mon Nov 12 09:47:44 UTC 2018


On Mon, 2018-11-12 at 09:31 +0000, Daniel P. Berrangé wrote:
> On Thu, Nov 08, 2018 at 07:55:19AM +0100, Fabiano Fidêncio wrote:
> > This patchseries aim to have OSes properly dealing with deprecated
> > and
> > removed devices. The path I've taken is:
> 
> The notion of "removed" devices makes sense as a break to stop the
> inheritance from earlier OS version.
> 
> I'm more interested in the notion of deprecated devices though. Can
> you give a clear example of where that would be used. To me this
> feels
> like an overly crude/coarse concept and so not convinced we should
> have
> that.

I have to admit that I don't have a concret example that could be used
right now. However, what I had in mind while working on those patches
was the case of a, for instance, cpu.

Let me try to explain ... *if* we have the "pc" type as part of osinfo-
db, we could just mark it as "deprecated" and apps would have a quite
easy way to check that instead of having to check different devices in
order to decide what to use (as done right now with q35).

As this is *not* something that we'd have a practical use soon, I'm
more than fine on just dropping the patches related to the "deprecated"
notion.

Do you want a v2 with the patches dropped?

> 
> > - Use OsinfoDeviceLink to store whether the device is
> > deprecated/removed
> > - Add a new API in OsinfoOs that says whether a device is
> > deprecated or
> >   not
> > - Filter out the removed devices from _get_devices(),
> >   _get_device_links(), _get_all_devices() and
> > _get_all_device_links()
> > - A bunch of tests to ensure I'm not breaking anything, neither
> > that
> >   something will end up broken in the future;
> > 
> > Now, questions ...
> > - Shall we do the same for platform and deployment?
> > - I've introduced and exposed osinfo_os_get_all_device_links(), and
> > the
> >   rationale for exposing it is basically for coherence with the
> >   osinfo_os_get_all_devices() .... However, it could totally be a
> >   private method. What's the preference here?
> > 
> > *osinfo-db:
> >   Fabiano Fidêncio (2):
> >     schema: Add "deprecated" attribute to device element
> >     schema: Add "removed" attribute to devices element
> > 
> >    data/schema/osinfo.rng.in | 10 ++++++++++
> >    1 file changed, 10 insertions(+)
> > 
> > *libosinfo:
> >   Fabiano Fidêncio (16):
> >     devicelinklist: Fix _get_devices()
> >     tests: Add basic tests for devicelinklist
> >     test-devicelinklist: Add _get_devices() test
> >     tests-os: Add test_devices_inheritance_basic()
> >     loader: Deal with "deprecated" devices for an OS
> >     os: Add osinfo_os_get_all_device_links()
> >     test-os: Add test_devices_inheritance_deprecation()
> >     loader: Deal with "removed" devices for an OS
> >     os: Add osinfo_os_get_devices_internal()
> >     os: Add osinfo_os_get_device_links_internal()
> >     os: Add osinfo_os_get_all_device_links_internal()
> >     os: Use get_devices_internal in _get_all callback
> >     os: Use get_device_links_internal in _get_all callback
> >     os: Add add_entity_to_list_check()
> >     os: Deal with "removed" devices
> >     test-os: Add test_devices_inheritance_removal()
> > 
> >    osinfo/libosinfo.syms                         |   4 +
> >    osinfo/osinfo_devicelink.h                    |   2 +
> >    osinfo/osinfo_devicelinklist.c                |   6 +-
> >    osinfo/osinfo_loader.c                        |  18 +
> >    osinfo/osinfo_os.c                            | 265
> > +++++++++++++--
> >    osinfo/osinfo_os.h                            |   2 +
> >    tests/Makefile.am                             |   5 +
> >    .../device/libosinfo.org/test-device-one.xml  |   7 +
> >    .../libosinfo.org/test-os-devices-basic-1.xml |  13 +
> >    .../test-os-devices-basic-2-clone.xml         |  10 +
> >    .../libosinfo.org/test-os-devices-basic-2.xml |  10 +
> >    .../test-os-devices-deprecated-1.xml          |  14 +
> >    .../test-os-devices-deprecated-2-clone.xml    |  10 +
> >    .../test-os-devices-deprecated-2.xml          |  10 +
> >    .../test-os-devices-deprecated-3.xml          |  14 +
> >    .../test-os-devices-deprecated-4-clone.xml    |  10 +
> >    .../test-os-devices-deprecated-4.xml          |  10 +
> >    .../test-os-devices-removed-1.xml             |  14 +
> >    .../test-os-devices-removed-2-clone.xml       |  10 +
> >    .../test-os-devices-removed-2.xml             |  10 +
> >    .../test-os-devices-removed-3.xml             |  14 +
> >    .../test-os-devices-removed-4-clone.xml       |  10 +
> >    .../test-os-devices-removed-4.xml             |  10 +
> >    tests/test-devicelinklist.c                   | 313
> > ++++++++++++++++++
> >    tests/test-os.c                               | 268
> > +++++++++++++++
> >    25 files changed, 1032 insertions(+), 27 deletions(-)
> >    create mode 100644 tests/dbdata/device/libosinfo.org/test-
> > device-one.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-basic-1.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-basic-2-clone.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-basic-2.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-deprecated-1.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-deprecated-2-clone.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-deprecated-2.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-deprecated-3.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-deprecated-4-clone.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-deprecated-4.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-removed-1.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-removed-2-clone.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-removed-2.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-removed-3.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-removed-4-clone.xml
> >    create mode 100644 tests/dbdata/os/libosinfo.org/test-os-
> > devices-removed-4.xml
> >    create mode 100644 tests/test-devicelinklist.c
> > 
> > -- 
> > 2.19.1
> > 
> > _______________________________________________
> > Libosinfo mailing list
> > Libosinfo at redhat.com
> > https://www.redhat.com/mailman/listinfo/libosinfo
> 
> Regards,
> Daniel




More information about the Libosinfo mailing list