[Libguestfs] [PATCH 3/3] Add APIs for resolving the appliance kernel/initrd

Richard W.M. Jones rjones at redhat.com
Tue Jul 6 07:30:21 UTC 2010


On Mon, Jul 05, 2010 at 12:26:01PM -0400, Daniel P. Berrange wrote:
> +  ("find_appliance", (RErr, []), -1, [FishAlias "find_appliance"],
> +   [],
> +   "find the appliance kernel/initrd",
> +   "\
> +Find the guest daemon appliance kernel and initrd images.
> +
> +This prefers to build a super-min appliance, but falls
> +back to a traditional appliance if the former was not found.");

I think you should add to this documentation that most users will not
need to call this.  Same for get_kernel and get_initrd.

Also on the documentation front we need a section added to
src/guestfs.pod to explain how to use all of this.

> +  ("get_kernel", (RConstString "kernel", []), -1, [],

RConstString is the wrong type to use here, I think.

If users should call find_appliance before this, then it should be an
error not to have called it, so RString would be the correct return
type.

See also:

http://git.annexia.org/?p=libguestfs.git;a=blob;f=src/generator.ml;h=d640343e7a407543401dc30c58451f7c6e7a74ae;hb=HEAD#l75

(Note that use of RConstString elsewhere in your code was, I think,
correct).

> +  ("get_initrd", (RConstString "initrd", []), -1, [],

RString also.

> +const char *
> +guestfs__get_kernel (guestfs_h *g)
> +{
> +  return g->kernel;
> +}
> +
> +const char *
> +guestfs__get_initrd (guestfs_h *g)
> +{
> +  return g->initrd;
> +}

If the above becomes RString, then you need to check for error here
(and call error / return NULL if so), and also strdup the non-NULL
returned value.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top




More information about the Libguestfs mailing list