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.
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/ChangeLog +34 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/PKG-INFO +1 -1
- libvirt_python-12.5.0/VERSION +1 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/event-test.py +12 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/generator.py +1 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-api.xml +8 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virConnect.py +19 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override.c +172 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-python.spec +1 -1
- libvirt_python-12.3.0/VERSION +0 -1
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/AUTHORS +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/CONTRIBUTING.rst +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/COPYING +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/HACKING +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/MANIFEST.in +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/Makefile +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/README +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/build/libvirt_python.egg-info/SOURCES.txt +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/README +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/consolecallback.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/dhcpleases.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/dominfo.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/domipaddrs.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/domrestore.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/domsave.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/domstart.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/esxlist.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/guest-vcpus/guest-vcpu-daemon.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/guest-vcpus/guest-vcpu.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/nodestats.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/sparsestream.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/examples/topology.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-lxc-override-api.xml +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-lxc-override.c +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virDomain.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virDomainCheckpoint.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virDomainSnapshot.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virNetwork.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virStoragePool.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override-virStream.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-override.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-qemu-override-api.xml +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-qemu-override.c +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-qemu-override.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-utils.c +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirt-utils.h +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/libvirtaio.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/pyproject.toml +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/requirements-test.txt +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/setup.cfg +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/setup.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/eventmock.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_aio.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_api_coverage.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_conn.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_domain.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_domain_checkpoint.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_domain_snapshot.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_interface.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_network.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_nodedev.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tests/test_storage.py +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/tox.ini +0 -0
- {libvirt_python-12.3.0 → libvirt_python-12.5.0}/typewrappers.c +0 -0
- {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
|
|
@@ -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 = [
|
|
@@ -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'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, ¶ms, &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
|
|
libvirt_python-12.3.0/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
12.3.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|