parted/LVM for ET [Re: [Libvir] Storage manager initial requirements and thoughts
Jim Meyering
jim at meyering.net
Thu Mar 22 12:41:18 UTC 2007
"Richard W.M. Jones" <rjones at redhat.com> wrote:
> Secondly there is an API of sorts for lvm2. I think Alasdair called it
> "libcmd", but maybe I got that wrong because Google doesn't seem to turn
> up anything. In any case, all it is is a wrapper around the command
> line tools, so it seems doubtful that this is going to be any better
> than just invoking the command line tools ourselves.
lvm2cmd is what you're looking for.
It is only slightly higher-level than "system".
Here's an example of that interface,
from the lvm2 repo, doc/example_cmdlib.c:
#include "lvm2cmd.h"
/* All output gets passed to this function line-by-line */
void test_log_fn(int level, const char *file, int line, const char *format)
{
/* Extract and process output here rather than printing it */
if (level != 4)
return;
printf("%s\n", format);
return;
}
int main(int argc, char **argv)
{
void *handle;
int r;
lvm2_log_fn(test_log_fn);
handle = lvm2_init();
lvm2_log_level(handle, 1);
r = lvm2_run(handle, "vgs --noheadings vg1");
/* More commands here */
lvm2_exit(handle);
return r;
}
More information about the libvir-list
mailing list