[libvirt] [PATCH v1 2/2] Add asyncio event loop implementation

Daniel P. Berrange berrange at redhat.com
Fri Mar 17 12:03:45 UTC 2017


On Fri, Mar 17, 2017 at 02:16:37AM +0100, Wojtek Porczyk wrote:
> This is usable only on python >= 3.4 (or 3.3 with out-of-tree asyncio),
> however it should be harmless for anyone with older python versions.
> 
> In simplest case, to have the callbacks queued on the default loop:
> 
>     >>> import libvirt
>     >>> libvirt.virEventRegisterAsyncIOImpl()
> 
> The function is not present on non-compatible platforms.
> 
> Signed-off-by: Wojtek Porczyk <woju at invisiblethingslab.com>
> ---
>  libvirt-override.py    |   6 +
>  libvirt-python.spec.in |   1 +
>  libvirtaio.py          | 398 +++++++++++++++++++++++++++++++++++++++++++++++++
>  sanitytest.py          |   2 +-
>  setup.py               |  12 ++
>  5 files changed, 418 insertions(+), 1 deletion(-)
>  create mode 100644 libvirtaio.py
> 
> diff --git a/libvirt-override.py b/libvirt-override.py
> index 3d09d63..6a28336 100644
> --- a/libvirt-override.py
> +++ b/libvirt-override.py
> @@ -16,6 +16,12 @@ except ImportError:
>          if str(cyg_e).count("No module named"):
>              raise lib_e
>  
> +try:
> +    from libvirtaio import virEventAsyncIOImpl, virEventRegisterAsyncIOImpl
> +except (ImportError, SyntaxError):
> +    # python < 3.3, or 3.3 and no out-of-tree asyncio
> +    pass
> +

I don't think we need this really. IMHO apps can simply do
'import libvirtaio' directly if they know they're using a
python new enough for asyncio.

> diff --git a/libvirtaio.py b/libvirtaio.py
> new file mode 100644
> index 0000000..44c9a5b
> --- /dev/null
> +++ b/libvirtaio.py
> @@ -0,0 +1,398 @@
> +#
> +# Copyright 2017 Wojtek Porczyk <woju at invisiblethingslab.com>
> +#
> +# Licensed under the Apache License, Version 2.0 (the 'License');
> +# you may not use this file except in compliance with the License.
> +# You may obtain a copy of the License at
> +#
> +#     http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing, software
> +# distributed under the License is distributed on an 'AS IS' BASIS,
> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +# See the License for the specific language governing permissions and
> +# limitations under the License.
> +#

The libvirt python module is distributed under the LGPLv2+. Could you
resubmit this with that license header fixed.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|




More information about the libvir-list mailing list