libvirt-python 12.3.0__tar.gz → 12.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/ChangeLog +34 -0
  2. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/PKG-INFO +1 -1
  3. libvirt_python-12.5.0/VERSION +1 -0
  4. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/event-test.py +12 -0
  5. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/generator.py +1 -0
  6. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-api.xml +8 -0
  7. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virConnect.py +19 -0
  8. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override.c +172 -0
  9. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-python.spec +1 -1
  10. libvirt_python-12.3.0/VERSION +0 -1
  11. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/AUTHORS +0 -0
  12. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/CONTRIBUTING.rst +0 -0
  13. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/COPYING +0 -0
  14. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/HACKING +0 -0
  15. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/MANIFEST.in +0 -0
  16. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/Makefile +0 -0
  17. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/README +0 -0
  18. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/build/libvirt_python.egg-info/SOURCES.txt +0 -0
  19. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/README +0 -0
  20. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/consolecallback.py +0 -0
  21. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/dhcpleases.py +0 -0
  22. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/dominfo.py +0 -0
  23. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/domipaddrs.py +0 -0
  24. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/domrestore.py +0 -0
  25. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/domsave.py +0 -0
  26. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/domstart.py +0 -0
  27. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/esxlist.py +0 -0
  28. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/guest-vcpus/guest-vcpu-daemon.py +0 -0
  29. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/guest-vcpus/guest-vcpu.py +0 -0
  30. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/nodestats.py +0 -0
  31. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/sparsestream.py +0 -0
  32. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/topology.py +0 -0
  33. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-lxc-override-api.xml +0 -0
  34. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-lxc-override.c +0 -0
  35. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virDomain.py +0 -0
  36. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virDomainCheckpoint.py +0 -0
  37. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virDomainSnapshot.py +0 -0
  38. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virNetwork.py +0 -0
  39. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virStoragePool.py +0 -0
  40. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virStream.py +0 -0
  41. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override.py +0 -0
  42. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-qemu-override-api.xml +0 -0
  43. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-qemu-override.c +0 -0
  44. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-qemu-override.py +0 -0
  45. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-utils.c +0 -0
  46. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-utils.h +0 -0
  47. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirtaio.py +0 -0
  48. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/pyproject.toml +0 -0
  49. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/requirements-test.txt +0 -0
  50. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/setup.cfg +0 -0
  51. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/setup.py +0 -0
  52. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/eventmock.py +0 -0
  53. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_aio.py +0 -0
  54. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_api_coverage.py +0 -0
  55. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_conn.py +0 -0
  56. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_domain.py +0 -0
  57. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_domain_checkpoint.py +0 -0
  58. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_domain_snapshot.py +0 -0
  59. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_interface.py +0 -0
  60. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_network.py +0 -0
  61. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_nodedev.py +0 -0
  62. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_storage.py +0 -0
  63. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tox.ini +0 -0
  64. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/typewrappers.c +0 -0
  65. {libvirt_python-12.3.0 → libvirt_python-12.5.0}/typewrappers.h +0 -0
@@ -1,3 +1,37 @@
1
+ 2026- 6- 9 Michal Privoznik <mprivozn@redhat.com>
2
+
3
+ Add support for virDomainAnnounceInterface() API
4
+
5
+
6
+ 2026- 6- 1 Jiri Denemark <jdenemar@redhat.com>
7
+
8
+ Post-release version bump to 12.5.0
9
+
10
+
11
+ 2026- 5- 25 Michal Privoznik <mprivozn@redhat.com>
12
+
13
+ Add support for domain channel lifecycle event
14
+
15
+
16
+ 2026- 5- 14 Michal Privoznik <mprivozn@redhat.com>
17
+
18
+ Add support for domain vCPU removed event
19
+
20
+
21
+ 2026- 5- 11 Takashi Kajinami <kajinamit@oss.nttdata.com>
22
+
23
+ ci: regenerate with 'lcitool manifest'
24
+ - Drop Fedora 42, add Fedora 44
25
+ - Drop Ubuntu 22.04, add Ubuntu 26.04
26
+ - Add Debian 13
27
+
28
+
29
+
30
+ 2026- 5- 1 Jiri Denemark <jdenemar@redhat.com>
31
+
32
+ Post-release version bump to 12.4.0
33
+
34
+
1
35
  2026- 4- 1 Jiri Denemark <jdenemar@redhat.com>
2
36
 
3
37
  Post-release version bump to 12.3.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: libvirt-python
3
- Version: 12.3.0
3
+ Version: 12.5.0
4
4
  Summary: The libvirt virtualization API python binding
5
5
  Home-page: http://www.libvirt.org
6
6
  Maintainer: Libvirt Maintainers
@@ -0,0 +1 @@
1
+ 12.5.0
@@ -514,6 +514,8 @@ AGENT_REASONS = Description("unknown", "domain started", "channel event")
514
514
  GRAPHICS_PHASES = Description("Connect", "Initialize", "Disconnect")
515
515
  DISK_EVENTS = Description("Change missing on start", "Drop missing on start")
516
516
  TRAY_EVENTS = Description("Opened", "Closed")
517
+ CHANNEL_STATES = Description("unknown", "connected", "disconnected")
518
+ CHANNEL_REASONS = Description("unknown", "domain started", "channel event")
517
519
 
518
520
 
519
521
  def myDomainEventCallback(conn: libvirt.virConnect, dom: libvirt.virDomain, event: int, detail: int, opaque: _T) -> None:
@@ -652,6 +654,14 @@ def myDomainEventNICMACChangeCallback(conn: libvirt.virConnect, dom: libvirt.vir
652
654
  print("myDomainEventNICMACChangeCallback: Domain %s(%s) NIC MAC change alias %s old MAC: %s new MAC: %s" % (
653
655
  dom.name(), dom.ID(), alias, oldMAC, newMAC))
654
656
 
657
+ def myDomainEventVcpuRemovedCallback(conn: libvirt.virConnect, dom: libvirt.virDomain, vcpuid: int, opaque: _T) -> None:
658
+ print("myDomainEventVcpuRemovedCallback: Domain %s(%s) vCPU removed %d" % (
659
+ dom.name(), dom.ID(), vcpuid))
660
+
661
+ def myDomainEventChannelLifecycleCallback(conn: libvirt.virConnect, dom: libvirt.virDomain, state: int, reason: int, opaque: _T) -> None:
662
+ print("myDomainEventChannelLifecycleCallback: Domain %s(%s) %s %s" % (
663
+ dom.name(), dom.ID(), CHANNEL_STATES[state], CHANNEL_REASONS[reason]))
664
+
655
665
 
656
666
  ##########################################################################
657
667
  # Network events
@@ -811,6 +821,8 @@ def main() -> None:
811
821
  vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_MEMORY_FAILURE, myDomainEventMemoryFailureCallback, None),
812
822
  vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_MEMORY_DEVICE_SIZE_CHANGE, myDomainEventMemoryDeviceSizeChangeCallback, None),
813
823
  vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_NIC_MAC_CHANGE, myDomainEventNICMACChangeCallback, None),
824
+ vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_VCPU_REMOVED, myDomainEventVcpuRemovedCallback, None),
825
+ vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE, myDomainEventChannelLifecycleCallback, None),
814
826
  ]
815
827
 
816
828
  netcallbacks = [
@@ -463,6 +463,7 @@ skip_impl = {
463
463
  'virDomainRestoreParams',
464
464
  'virDomainGetAutostartOnce',
465
465
  'virDomainSetThrottleGroup',
466
+ 'virDomainAnnounceInterface',
466
467
 
467
468
  'virDomainLxcOpenNamespace',
468
469
 
@@ -879,5 +879,13 @@
879
879
  <arg name='params' type='virTypedParameterPtr' info='pointer to blkio parameter objects'/>
880
880
  <arg name='flags' type='int' info='an OR&apos;ed set of virDomainModificationImpact'/>
881
881
  </function>
882
+ <function name='virDomainAnnounceInterface' file='python'>
883
+ <info>Cause this domain to "announce" its network interfaces by injecting a series of "gratuitous ARP" packets into the outgoing data stream for the interface matching @device (or all interfaces).</info>
884
+ <return type='int' info='0 in case of success and -1 in case of failure'/>
885
+ <arg name='domain' type='virDomainPtr' info='pointer to domain object'/>
886
+ <arg name='device' type='const char *' info='the interface name or mac address, or None to announce all interfaces'/>
887
+ <arg name='params' type='virTypedParameterPtr' info='parameters containing announce attributes'/>
888
+ <arg name='flags' type='unsigned int' info='currently unused, pass 0'/>
889
+ </function>
882
890
  </symbols>
883
891
  </api>
@@ -288,6 +288,15 @@
288
288
  cb(self, virDomain(self, _obj=dom), alias, oldMAC, newMAC, opaque)
289
289
  return 0
290
290
 
291
+ def _dispatchDomainEventVcpuRemovedCallback(self, dom: 'virDomain', vcpuid: int, cbData: Dict[str, Any]) -> int:
292
+ """Dispatches event to python user domain vCPU removal event callbacks
293
+ """
294
+ cb = cbData["cb"]
295
+ opaque = cbData["opaque"]
296
+
297
+ cb(self, virDomain(self, _obj=dom), vcpuid, opaque)
298
+ return 0
299
+
291
300
  def domainEventDeregisterAny(self, callbackID: int) -> None:
292
301
  """Removes a Domain Event Callback. De-registering for a
293
302
  domain callback will disable delivery of this event type """
@@ -317,6 +326,16 @@
317
326
  cb(self, virNetwork(self, _obj=dom), mtype, nsuri, opaque)
318
327
  return 0
319
328
 
329
+ def _dispatchDomainEventChannelLifecycleCallback(self, dom: 'virDomain', state: int, reason: int, cbData: Dict[str, Any]) -> int:
330
+ """Dispatches event to python user domain channel lifecycle event callback
331
+ """
332
+
333
+ cb = cbData["cb"]
334
+ opaque = cbData["opaque"]
335
+
336
+ cb(self, virDomain(self, _obj=dom), state, reason, opaque)
337
+ return 0
338
+
320
339
  def networkEventDeregisterAny(self, callbackID: int) -> None:
321
340
  """Removes a Network Event Callback. De-registering for a
322
341
  network callback will disable delivery of this event type"""
@@ -7451,6 +7451,114 @@ libvirt_virConnectDomainEventNICMACChangeCallback(virConnectPtr conn ATTRIBUTE_U
7451
7451
  #endif /* VIR_DOMAIN_EVENT_ID_NIC_MAC_CHANGE */
7452
7452
 
7453
7453
 
7454
+ #ifdef VIR_DOMAIN_EVENT_ID_VCPU_REMOVED
7455
+ static int
7456
+ libvirt_virConnectDomainEventVcpuRemovedCallback(virConnectPtr conn ATTRIBUTE_UNUSED,
7457
+ virDomainPtr dom,
7458
+ unsigned int vcpuid,
7459
+ void *opaque)
7460
+ {
7461
+ PyObject *pyobj_cbData = (PyObject*)opaque;
7462
+ PyObject *pyobj_dom;
7463
+ PyObject *pyobj_ret = NULL;
7464
+ PyObject *pyobj_conn;
7465
+ PyObject *dictKey;
7466
+ int ret = -1;
7467
+
7468
+ LIBVIRT_ENSURE_THREAD_STATE;
7469
+
7470
+ if (!(dictKey = libvirt_constcharPtrWrap("conn")))
7471
+ goto cleanup;
7472
+ pyobj_conn = PyDict_GetItem(pyobj_cbData, dictKey);
7473
+ Py_DECREF(dictKey);
7474
+
7475
+ /* Create a python instance of this virDomainPtr */
7476
+ virDomainRef(dom);
7477
+ if (!(pyobj_dom = libvirt_virDomainPtrWrap(dom))) {
7478
+ virDomainFree(dom);
7479
+ goto cleanup;
7480
+ }
7481
+ Py_INCREF(pyobj_cbData);
7482
+
7483
+ /* Call the Callback Dispatcher */
7484
+ pyobj_ret = PyObject_CallMethod(pyobj_conn,
7485
+ (char*)"_dispatchDomainEventVcpuRemovedCallback",
7486
+ (char*)"OiO",
7487
+ pyobj_dom, vcpuid, pyobj_cbData);
7488
+
7489
+ Py_DECREF(pyobj_cbData);
7490
+ Py_DECREF(pyobj_dom);
7491
+
7492
+ cleanup:
7493
+ if (!pyobj_ret) {
7494
+ DEBUG("%s - ret:%p\n", __FUNCTION__, pyobj_ret);
7495
+ PyErr_Print();
7496
+ } else {
7497
+ Py_DECREF(pyobj_ret);
7498
+ ret = 0;
7499
+ }
7500
+
7501
+ LIBVIRT_RELEASE_THREAD_STATE;
7502
+ return ret;
7503
+ }
7504
+ #endif /* VIR_DOMAIN_EVENT_ID_VCPU_REMOVED */
7505
+
7506
+
7507
+ #ifdef VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE
7508
+ static int
7509
+ libvirt_virConnectDomainEventChannelLifecycleCallback(virConnectPtr conn ATTRIBUTE_UNUSED,
7510
+ virDomainPtr dom,
7511
+ int state,
7512
+ int reason,
7513
+ void *opaque)
7514
+ {
7515
+ PyObject *pyobj_cbData = (PyObject*)opaque;
7516
+ PyObject *pyobj_dom;
7517
+ PyObject *pyobj_ret = NULL;
7518
+ PyObject *pyobj_conn;
7519
+ PyObject *dictKey;
7520
+ int ret = -1;
7521
+
7522
+ LIBVIRT_ENSURE_THREAD_STATE;
7523
+
7524
+ if (!(dictKey = libvirt_constcharPtrWrap("conn")))
7525
+ goto cleanup;
7526
+ pyobj_conn = PyDict_GetItem(pyobj_cbData, dictKey);
7527
+ Py_DECREF(dictKey);
7528
+
7529
+ /* Create a python instance of this virDomainPtr */
7530
+ virDomainRef(dom);
7531
+ if (!(pyobj_dom = libvirt_virDomainPtrWrap(dom))) {
7532
+ virDomainFree(dom);
7533
+ goto cleanup;
7534
+ }
7535
+ Py_INCREF(pyobj_cbData);
7536
+
7537
+ /* Call the Callback Dispatcher */
7538
+ pyobj_ret = PyObject_CallMethod(pyobj_conn,
7539
+ (char*)"_dispatchDomainEventChannelLifecycleCallback",
7540
+ (char*)"OiiO",
7541
+ pyobj_dom, state, reason, pyobj_cbData);
7542
+
7543
+ Py_DECREF(pyobj_cbData);
7544
+ Py_DECREF(pyobj_dom);
7545
+
7546
+ cleanup:
7547
+ if (!pyobj_ret) {
7548
+ DEBUG("%s - ret:%p\n", __FUNCTION__, pyobj_ret);
7549
+ PyErr_Print();
7550
+ } else {
7551
+ Py_DECREF(pyobj_ret);
7552
+ ret = 0;
7553
+ }
7554
+
7555
+ LIBVIRT_RELEASE_THREAD_STATE;
7556
+ return ret;
7557
+
7558
+ }
7559
+ #endif /* VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE */
7560
+
7561
+
7454
7562
  static PyObject *
7455
7563
  libvirt_virConnectDomainEventRegisterAny(PyObject *self ATTRIBUTE_UNUSED,
7456
7564
  PyObject *args)
@@ -7591,6 +7699,16 @@ libvirt_virConnectDomainEventRegisterAny(PyObject *self ATTRIBUTE_UNUSED,
7591
7699
  cb = VIR_DOMAIN_EVENT_CALLBACK(libvirt_virConnectDomainEventNICMACChangeCallback);
7592
7700
  break;
7593
7701
  #endif /* VIR_DOMAIN_EVENT_ID_NIC_MAC_CHANGE */
7702
+ #ifdef VIR_DOMAIN_EVENT_ID_VCPU_REMOVED
7703
+ case VIR_DOMAIN_EVENT_ID_VCPU_REMOVED:
7704
+ cb = VIR_DOMAIN_EVENT_CALLBACK(libvirt_virConnectDomainEventVcpuRemovedCallback);
7705
+ break;
7706
+ #endif /* VIR_DOMAIN_EVENT_ID_VCPU_REMOVED */
7707
+ #ifdef VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE
7708
+ case VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE:
7709
+ cb = VIR_DOMAIN_EVENT_CALLBACK(libvirt_virConnectDomainEventChannelLifecycleCallback);
7710
+ break;
7711
+ #endif /* VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE */
7594
7712
  case VIR_DOMAIN_EVENT_ID_LAST:
7595
7713
  break;
7596
7714
  }
@@ -11047,6 +11165,57 @@ libvirt_virDomainSetThrottleGroup(PyObject *self ATTRIBUTE_UNUSED,
11047
11165
  #endif /* LIBVIR_CHECK_VERSION(11, 2, 0) */
11048
11166
 
11049
11167
 
11168
+ #if LIBVIR_CHECK_VERSION(12, 5, 0)
11169
+ static virPyTypedParamsHint virPyDomainAnnounceInterfaceParams[] = {
11170
+ { VIR_DOMAIN_ANNOUNCE_INTERFACE_INITIAL, VIR_TYPED_PARAM_UINT },
11171
+ { VIR_DOMAIN_ANNOUNCE_INTERFACE_MAX, VIR_TYPED_PARAM_UINT },
11172
+ { VIR_DOMAIN_ANNOUNCE_INTERFACE_ROUNDS, VIR_TYPED_PARAM_UINT },
11173
+ { VIR_DOMAIN_ANNOUNCE_INTERFACE_STEP, VIR_TYPED_PARAM_UINT },
11174
+ };
11175
+
11176
+
11177
+ static PyObject *
11178
+ libvirt_virDomainAnnounceInterface(PyObject *self ATTRIBUTE_UNUSED,
11179
+ PyObject *args)
11180
+ {
11181
+ PyObject *pyobj_dom = NULL;
11182
+ PyObject *pyobj_dict = NULL;
11183
+ virDomainPtr dom = NULL;
11184
+ const char *device = NULL;
11185
+ virTypedParameterPtr params = NULL;
11186
+ int nparams = 0;
11187
+ unsigned int flags = 0;
11188
+ int c_retval;
11189
+
11190
+ if (!PyArg_ParseTuple(args, (char *)"OzO|I:virDomainAnnounceInterface",
11191
+ &pyobj_dom, &device, &pyobj_dict, &flags))
11192
+ return NULL;
11193
+
11194
+ if (PyDict_Check(pyobj_dict)) {
11195
+ if (virPyDictToTypedParams(pyobj_dict, &params, &nparams,
11196
+ virPyDomainAnnounceInterfaceParams,
11197
+ VIR_N_ELEMENTS(virPyDomainAnnounceInterfaceParams)) < 0) {
11198
+ return NULL;
11199
+ }
11200
+ } else {
11201
+ PyErr_Format(PyExc_TypeError, "Announce params must be a dictionary");
11202
+ return NULL;
11203
+ }
11204
+
11205
+ dom = (virDomainPtr) PyvirDomain_Get(pyobj_dom);
11206
+
11207
+ LIBVIRT_BEGIN_ALLOW_THREADS;
11208
+ c_retval = virDomainAnnounceInterface(dom, device, params, nparams, flags);
11209
+ LIBVIRT_END_ALLOW_THREADS;
11210
+
11211
+ virTypedParamsFree(params, nparams);
11212
+
11213
+ return libvirt_intWrap(c_retval);
11214
+ }
11215
+ #endif /* LIBVIR_CHECK_VERSION(12, 5, 0) */
11216
+
11217
+
11218
+
11050
11219
  /************************************************************************
11051
11220
  * *
11052
11221
  * The registration stuff *
@@ -11335,6 +11504,9 @@ static PyMethodDef libvirtMethods[] = {
11335
11504
  {(char *) "virDomainGetAutostartOnce", libvirt_virDomainGetAutostartOnce, METH_VARARGS, NULL},
11336
11505
  {(char *) "virDomainSetThrottleGroup", libvirt_virDomainSetThrottleGroup, METH_VARARGS, NULL},
11337
11506
  #endif /* LIBVIR_CHECK_VERSION(11, 2, 0) */
11507
+ #if LIBVIR_CHECK_VERSION(12, 5, 0)
11508
+ {(char *) "virDomainAnnounceInterface", libvirt_virDomainAnnounceInterface, METH_VARARGS, NULL},
11509
+ #endif /* LIBVIR_CHECK_VERSION(12, 5, 0) */
11338
11510
  {NULL, NULL, 0, NULL}
11339
11511
  };
11340
11512
 
@@ -16,7 +16,7 @@
16
16
 
17
17
  Summary: The libvirt virtualization API python3 binding
18
18
  Name: libvirt-python
19
- Version: 12.3.0
19
+ Version: 12.5.0
20
20
  Release: 1%{?dist}
21
21
  Source0: https://libvirt.org/sources/python/%{dist_name}-%{version}.tar.gz
22
22
  Url: https://libvirt.org
@@ -1 +0,0 @@
1
- 12.3.0
File without changes
File without changes
File without changes
File without changes
File without changes