2005-12-19 16:34:11 +00:00
<?xml version="1.0"?>
<api name= 'libvir-python' >
2006-01-31 10:24:12 +00:00
<symbols >
<function name= "virConnectListDomainsID" file= 'python' >
<info > Returns the list of the ID of the domains on the hypervisor</info>
<arg name= 'conn' type= 'virConnectPtr' info= 'pointer to the hypervisor connection' />
<return type= 'int *' info= "the list of ID or None in case of error" />
</function>
2006-11-16 00:17:10 +00:00
<function name= 'virConnectListDefinedDomains' file= 'python' >
<info > list the defined domains, stores the pointers to the names in @names</info>
<arg name= 'conn' type= 'virConnectPtr' info= 'pointer to the hypervisor connection' />
<return type= 'str *' info= 'the list of Names of None in case of error' />
</function>
2007-03-09 15:42:50 +00:00
<function name= 'virConnectListNetworks' file= 'python' >
<info > list the networks, stores the pointers to the names in @names</info>
<arg name= 'conn' type= 'virConnectPtr' info= 'pointer to the hypervisor connection' />
<return type= 'str *' info= 'the list of Names of None in case of error' />
</function>
<function name= 'virConnectListDefinedNetworks' file= 'python' >
<info > list the defined networks, stores the pointers to the names in @names</info>
<arg name= 'conn' type= 'virConnectPtr' info= 'pointer to the hypervisor connection' />
<return type= 'str *' info= 'the list of Names of None in case of error' />
</function>
2006-02-24 12:26:56 +00:00
<function name= 'virDomainLookupByUUID' file= 'python' >
<info > Try to lookup a domain on the given hypervisor based on its UUID.</info>
<return type= 'virDomainPtr' info= 'a new domain object or NULL in case of failure' />
<arg name= 'conn' type= 'virConnectPtr' info= 'pointer to the hypervisor connection' />
<arg name= 'uuid' type= 'const unsigned char *' info= 'the UUID string for the domain, must be 16 bytes' />
</function>
2007-03-09 15:42:50 +00:00
<function name= 'virNetworkLookupByUUID' file= 'python' >
<info > Try to lookup a network on the given hypervisor based on its UUID.</info>
<return type= 'virNetworkPtr' info= 'a new network object or NULL in case of failure' />
<arg name= 'conn' type= 'virNetworkPtr' info= 'pointer to the hypervisor connection' />
<arg name= 'uuid' type= 'const unsigned char *' info= 'the UUID string for the network, must be 16 bytes' />
</function>
2006-03-29 12:46:03 +00:00
<function name= 'virDomainGetInfo' file= 'python' >
2008-03-14 11:08:03 +00:00
<info > Extract information about a domain. Note that if the connection used to get the domain is limited only a partial set of the information can be extracted.</info>
<return type= 'int *' info= 'the list of information or None in case of error' />
2006-01-31 10:24:12 +00:00
<arg name= 'domain' type= 'virDomainPtr' info= 'a domain object' />
</function>
2006-03-29 12:46:03 +00:00
<function name= 'virNodeGetInfo' file= 'python' >
2008-03-14 11:08:03 +00:00
<info > Extract hardware information about the Node.</info>
<return type= 'int *' info= 'the list of information or None in case of error' />
2006-03-29 12:46:03 +00:00
<arg name= 'conn' type= 'virConnectPtr' info= 'pointer to the hypervisor connection' />
</function>
<function name= 'virDomainGetUUID' file= 'python' >
2006-02-23 11:26:17 +00:00
<info > Extract the UUID unique Identifier of a domain.</info>
<return type= 'char *' info= 'the 16 bytes string or None in case of error' />
<arg name= 'domain' type= 'virDomainPtr' info= 'a domain object' />
</function>
2008-06-10 15:20:25 +00:00
<function name= 'virDomainGetUUIDString' file= 'python' >
<info > Fetch globally unique ID of the domain as a string.</info>
<return type= 'char *' info= 'the UUID string or None in case of error' />
<arg name= 'pool' type= 'virDomainPtr' info= 'a domain object' />
</function>
2007-03-09 15:42:50 +00:00
<function name= 'virNetworkGetUUID' file= 'python' >
<info > Extract the UUID unique Identifier of a network.</info>
<return type= 'char *' info= 'the 16 bytes string or None in case of error' />
<arg name= 'domain' type= 'virNetworkPtr' info= 'a network object' />
</function>
2008-06-10 15:20:25 +00:00
<function name= 'virNetworkGetUUIDString' file= 'python' >
<info > Fetch globally unique ID of the network as a string.</info>
<return type= 'char *' info= 'the UUID string or None in case of error' />
<arg name= 'net' type= 'virNetworkPtr' info= 'a network object' />
</function>
<function name= 'virStoragePoolGetUUID' file= 'python' >
<info > Extract the UUID unique Identifier of a storage pool.</info>
<return type= 'char *' info= 'the 16 bytes string or None in case of error' />
<arg name= 'pool' type= 'virStoragePoolPtr' info= 'a storage pool object' />
</function>
<function name= 'virStoragePoolGetUUIDString' file= 'python' >
<info > Fetch globally unique ID of the storage pool as a string.</info>
<return type= 'char *' info= 'the UUID string or None in case of error' />
<arg name= 'pool' type= 'virStoragePoolPtr' info= 'a storage pool object' />
</function>
2007-04-10 23:15:58 +00:00
<function name= 'virNetworkGetAutostart' file= 'python' >
<info > Extract the autostart flag for a network.</info>
<return type= 'int' info= 'the autostart flag, or None in case of error' />
<arg name= 'domain' type= 'virNetworkPtr' info= 'a network object' />
</function>
<function name= 'virDomainGetAutostart' file= 'python' >
<info > Extract the autostart flag for a domain</info>
<return type= 'int' info= 'the autostart flag, or None in case of error' />
<arg name= 'domain' type= 'virDomainPtr' info= 'a network object' />
</function>
2008-06-11 07:49:01 +00:00
<function name= 'virStoragePoolGetAutostart' file= 'python' >
<info > Extract the autostart flag for a storage pool</info>
<return type= 'int' info= 'the autostart flag, or None in case of error' />
<arg name= 'pool' type= 'virStoragePoolPtr' info= 'a storage pool object' />
</function>
2007-09-30 20:52:13 +00:00
<function name= 'virDomainBlockStats' file= 'python' >
<info > Extracts block device statistics for a domain</info>
<return type= 'virDomainBlockStats' info= 'a tuple of statistics' />
<arg name= 'domain' type= 'virDomainPtr' info= 'a domain object' />
<arg name= 'path' type= 'char *' info= 'the path for the block device' />
</function>
<function name= 'virDomainInterfaceStats' file= 'python' >
<info > Extracts interface device statistics for a domain</info>
<return type= 'virDomainInterfaceStats' info= 'a tuple of statistics' />
<arg name= 'domain' type= 'virDomainPtr' info= 'a domain object' />
<arg name= 'path' type= 'char *' info= 'the path for the interface device' />
</function>
2007-12-07 08:41:01 +00:00
<function name= "virNodeGetCellsFreeMemory" file= 'python' >
2008-02-29 12:53:10 +00:00
<info > Returns the available memory for a list of cells</info>
2007-12-07 08:41:01 +00:00
<arg name= 'conn' type= 'virConnectPtr' info= 'pointer to the hypervisor connection' />
<arg name= 'startCell' type= 'int' info= 'first cell in the list' />
<arg name= 'maxCells' type= 'int' info= 'number of cell in the list' />
<return type= 'int *' info= "the list available memory in the cells" />
</function>
2008-01-21 15:41:15 +00:00
<function name= 'virDomainGetSchedulerParameters' file= 'python' >
<info > Get the scheduler parameters, the @params array will be filled with the values.</info>
<return type= 'int' info= '-1 in case of error, 0 in case of success.' />
<arg name= 'domain' type= 'virDomainPtr' info= 'pointer to domain object' />
</function>
<function name= 'virDomainGetSchedulerType' file= 'python' >
<info > Get the scheduler type.</info>
<return type= 'char *' info= 'NULL in case of error. The caller must free the returned string.' />
<arg name= 'domain' type= 'virDomainPtr' info= 'pointer to domain object' />
</function>
<function name= 'virDomainGetVcpus' file= 'python' >
<info > Extract information about virtual CPUs of domain, store it in info array and also in cpumaps if this pointer is' nt NULL.</info>
<return type= 'int' info= 'the number of info filled in case of success, -1 in case of failure.' />
<arg name= 'domain' type= 'virDomainPtr' info= 'pointer to domain object, or NULL for Domain0' />
</function>
<function name= 'virDomainPinVcpu' file= 'python' >
2008-02-29 12:53:10 +00:00
<info > Dynamically change the real CPUs which can be allocated to a virtual CPU. This function requires privileged access to the hypervisor.</info>
2008-01-21 15:41:15 +00:00
<return type= 'int' info= '0 in case of success, -1 in case of failure.' />
<arg name= 'domain' type= 'virDomainPtr' info= 'pointer to domain object, or NULL for Domain0' />
<arg name= 'vcpu' type= 'unsigned int' info= 'virtual CPU number' />
<arg name= 'cpumap' type= 'unsigned char *' info= 'pointer to a bit map of real CPUs (in 8-bit bytes) (IN) Each bit set to 1 means that corresponding CPU is usable. Bytes are stored in little-endian order: CPU0-7, 8-15... In each byte, lowest CPU number is least significant bit.' />
</function>
<function name= 'virDomainSetSchedulerParameters' file= 'python' >
<info > Change the scheduler parameters</info>
<return type= 'int' info= '-1 in case of error, 0 in case of success.' />
<arg name= 'domain' type= 'virDomainPtr' info= 'pointer to domain object' />
<arg name= 'params' type= 'virSchedParameterPtr' info= 'pointer to scheduler parameter objects' />
</function>
2008-05-29 14:53:58 +00:00
<function name= 'virConnectListStoragePools' file= 'python' >
<info > list the storage pools, stores the pointers to the names in @names</info>
<arg name= 'conn' type= 'virConnectPtr' info= 'pointer to the hypervisor connection' />
<return type= 'str *' info= 'the list of Names of None in case of error' />
</function>
<function name= 'virConnectListDefinedStoragePools' file= 'python' >
<info > list the defined storage pool, stores the pointers to the names in @names</info>
<arg name= 'conn' type= 'virConnectPtr' info= 'pointer to the hypervisor connection' />
<return type= 'str *' info= 'the list of Names of None in case of error' />
</function>
<function name= 'virStoragePoolListVolumes' file= 'python' >
<info > list the storage volumes, stores the pointers to the names in @names</info>
<arg name= 'pool' type= 'virStoragePoolPtr' info= 'pointer to the storage pool' />
<return type= 'str *' info= 'the list of Names of None in case of error' />
</function>
<function name= 'virStoragePoolGetInfo' file= 'python' >
<info > Extract information about a storage pool. Note that if the connection used to get the domain is limited only a partial set of the information can be extracted.</info>
<return type= 'int *' info= 'the list of information or None in case of error' />
<arg name= 'pool' type= 'virStoragePoolPtr' info= 'a storage pool object' />
</function>
<function name= 'virStorageVolGetInfo' file= 'python' >
<info > Extract information about a storage pool. Note that if the connection used to get the domain is limited only a partial set of the information can be extracted.</info>
<return type= 'int *' info= 'the list of information or None in case of error' />
<arg name= 'vol' type= 'virStorageVolPtr' info= 'a storage vol object' />
</function>
2008-11-21 12:41:15 +00:00
<function name= 'virNodeListDevices' file= 'python' >
<info > list the node devices</info>
<arg name= 'conn' type= 'virConnectPtr' info= 'pointer to the hypervisor connection' />
<arg name= 'cap' type= 'const unsigned char *' info= 'capability name' />
<arg name= 'flags' type= 'unsigned int' info= 'flags (unused; pass 0)' />
<return type= 'str *' info= 'the list of Names or None in case of error' />
</function>
<function name= 'virNodeDeviceListCaps' file= 'python' >
<info > list the node device's capabilities</info>
<arg name= 'dev' type= 'virNodeDevicePtr' info= 'pointer to the node device' />
<return type= 'str *' info= 'the list of Names or None in case of error' />
</function>
Secret manipulation API docs refresh & wire up python generator
Sample session:
>>> import libvirt
>>> c = libvirt.open('qemu:///session')
>>> c.listSecrets()
['12247729-47d2-a783-88ce-b329d4781cd3', 'reee', 'abc']
>>> s = c.secretDefineXML("<secret ephemeral='no' private='no'>\n<description>Something for use</description>\n<volume>/foo/bar</volume>\n</secret>\n")
>>> s.UUIDString()
'340c2dfb-811b-eda8-da9e-25ccd7bfd650'
>>> s.XMLDesc()
"<secret ephemeral='no' private='no'>\n <uuid>340c2dfb-811b-eda8-da9e-25ccd7bfd650</uuid>\n <description>Something for use</description>\n <volume>/foo/bar</volume>\n</secret>\n"
>>> s.setValue('abc\0xx\xffx')
0
>>> s.value()
'abc\x00xx\xffx'
>>> s.undefine()
0
* python/generator.py: Add rules for virSecret APIs
* python/libvir.c, python/libvirt-python-api.xml: Manual impl of
virSecretSetValue, virSecretGetValue$ and virConnectListSecrets APIs
* python/libvirt_wrap.h, python/types.c: Wrapper for virSecret objects
* docs/libvirt-api.xml, docs/libvirt-refs.xml,
docs/html/libvirt-virterror.html, docs/html/libvirt-libvirt.html,
docs/devhelp/libvirt-virterror.html, docs/devhelp/libvirt-libvirt.html:
Re-generate with 'make api'
2009-08-04 18:38:21 +00:00
<function name= 'virSecretGetValue' file= 'libvirt' module= 'libvirt' >
<info > Fetches the value associated with a secret.</info>
<return type= 'char *' info= 'the secret value or None in case of error' />
<arg name= 'secret' type= 'virSecretPtr' info= 'virSecret secret' />
<arg name= 'flags' type= 'unsigned int' info= 'flags (unused; pass 0)' />
</function>
<function name= 'virConnectListSecrets' file= 'libvirt' module= 'libvirt' >
<info > List the defined secret IDs</info>
<arg name= 'conn' type= 'virConnectPtr' info= 'virConnect connection' />
<return type= 'str *' info= 'the list of secret IDs or None in case of error' />
</function>
<function name= 'virSecretSetValue' file= 'libvirt' module= 'libvirt' >
<info > Associates a value with a secret.</info>
<return type= 'int' info= '0 on success, -1 on failure.' />
<arg name= 'secret' type= 'virSecretPtr' info= 'virSecret secret' />
<arg name= 'value' type= 'const char *' info= 'The secret value' />
<arg name= 'flags' type= 'unsigned int' info= 'flags (unused; pass 0)' />
</function>
Fix UUID handling in secrets/storage encryption APIs
Convert all the secret/storage encryption APIs / wire format to
handle UUIDs in raw format instead of non-canonical printable
format. Guarentees data format correctness.
* docs/schemas/storageencryption.rng: Make UUID mandatory for a secret
and validate fully
* docs/schemas/secret.rng: Fully validate UUID
* include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add
virSecretLookupByUUID and virSecretGetUUID. Make
virSecretGetUUIDString follow normal API design pattern
* python/generator.py: Skip generation of virSecretGetUUID,
virSecretGetUUIDString and virSecretLookupByUUID
* python/libvir.c, python/libvirt-python-api.xml: Manual impl
of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID
* qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/
Fix get_nonnull_secret/make_nonnull_secret to use unsigned char
* qemud/remote_protocol.x: Fix remote_nonnull_secret to use a
remote_uuid instead of remote_nonnull_string for UUID field.
Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to
REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an
remote_uuid value
* qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h,
qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h,
qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate
* src/datatypes.h, src/datatypes.c: Store UUID in raw format instead
of printable. Change virGetSecret to use raw format UUID
* src/driver.h: Rename virDrvSecretLookupByUUIDString to
virDrvSecretLookupByUUID and use raw format UUID
* src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID
and re-implement virSecretLookupByUUIDString and
virSecretGetUUIDString in terms of those
* src/libvirt_public.syms: Add virSecretLookupByUUID and
virSecretGetUUID
* src/remote_internal.c: Rename remoteSecretLookupByUUIDString
to remoteSecretLookupByUUID. Fix typo in args for
remoteSecretDefineXML impl. Use raw UUID format for
get_nonnull_secret and make_nonnull_secret
* src/storage_encryption_conf.c, src/storage_encryption_conf.h:
Storage UUID in raw format, and require it to be present in
XML. Use UUID parser to validate.
* secret_conf.h, secret_conf.c: Generate a UUID if none is provided.
Storage UUID in raw format.
* src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets
in a filed with printable UUID, instead of base64 UUID.
* src/virsh.c: Adjust for changed public API contract of
virSecretGetUUIDString.
* src/storage_Backend.c: DOn't undefine secret we just generated
upon successful volume creation. Fix to handle raw UUIDs. Generate
a non-clashing UUID
* src/qemu_driver.c: Change to use lookupByUUID instead of
lookupByUUIDString
2009-09-10 16:44:12 +00:00
<function name= 'virSecretLookupByUUID' file= 'python' >
<info > Try to lookup a secret on the given hypervisor based on its UUID.</info>
<return type= 'virSecretPtr' info= 'a new secret object or NULL in case of failure' />
<arg name= 'conn' type= 'virConnectPtr' info= 'pointer to the hypervisor connection' />
<arg name= 'uuid' type= 'const unsigned char *' info= 'the UUID string for the secret, must be 16 bytes' />
</function>
<function name= 'virSecretGetUUID' file= 'python' >
<info > Extract the UUID unique Identifier of a secret.</info>
<return type= 'char *' info= 'the 16 bytes string or None in case of error' />
<arg name= 'secret' type= 'virSecretPtr' info= 'a secret object' />
</function>
<function name= 'virSecretGetUUIDString' file= 'python' >
<info > Fetch globally unique ID of the secret as a string.</info>
<return type= 'char *' info= 'the UUID string or None in case of error' />
<arg name= 'secret' type= 'virSecretPtr' info= 'a secret object' />
</function>
2006-01-31 10:24:12 +00:00
</symbols>
2005-12-19 16:34:11 +00:00
</api>