On 11/22/19 1:54 PM, Richard W.M. Jones wrote:
However this does not implement can_cache, since that is not a simple
boolean.
---
  plugins/python/nbdkit-python-plugin.pod | 14 +++++++++-
  plugins/python/python.c                 | 34 +++++++++++++++++++++++++
  2 files changed, 47 insertions(+), 1 deletion(-)


+static int
+py_cache (void *handle, uint32_t count, uint64_t offset, uint32_t flags)
+{
+  PyObject *obj = handle;
+  PyObject *fn;
+  PyObject *r;
+
+  if (callback_defined ("cache", &fn)) {
+    PyErr_Clear ();
+
+    switch (py_api_version) {
+    case 1:
+      nbdkit_error ("%s can only be called when using api_version >= 2",
+                    "cache");
+      return -1;

Why? The signature doesn't change. Yes, it's unusual to write an API version 1 C plugin that provides a .cache callback, but it is not impossible. Instead of erroring out, we could just always support this function in both versions of Python plugin.

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org

_______________________________________________
Libguestfs mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libguestfs

Reply via email to