--- .gitignore | 1 + examples/Makefile.am | 11 ++++ examples/virtxml.pod | 121 ++++++++++++++++++++++++++++++++++++++++++++++ libvirt-designer.spec.in | 1 + 4 files changed, 134 insertions(+), 0 deletions(-) create mode 100644 examples/virtxml.pod diff --git a/.gitignore b/.gitignore index 4272672..03b75ce 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,4 @@ docs/*.interfaces docs/*.prerequisites docs/*.signals docs/*.types +examples/*.1 diff --git a/examples/Makefile.am b/examples/Makefile.am index 32549a0..de0603b 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -18,6 +18,17 @@ virtxml_LDFLAGS = \ $(LIBVIRT_GCONFIG_LIBS) \ $(LIBVIRT_GOBJECT_LIBS) +POD2MAN = pod2man -c "Virtualization Support" -r "$(PACKAGE)-$(VERSION)" + +virtxml.1: virtxml.pod + $(AM_V_GEN)$(POD2MAN) $< $@ + if WITH_EXAMPLES bin_PROGRAMS = virtxml + +EXTRA_DIST = virtxml.pod + +man1_MANS = virtxml.1 + +CLEANFILES = $(man1_MANS) endif diff --git a/examples/virtxml.pod b/examples/virtxml.pod new file mode 100644 index 0000000..80a4edf --- /dev/null +++ b/examples/virtxml.pod @@ -0,0 +1,121 @@ +=head1 NAME + +virtxml - Generate domain XML + +=head1 SYNOPSIS + +B<virrtxml> [I<OPTION>]... + +=head1 DESCRIPTION + +The B<virtxml> is a command line tool for generating XML documents for +libvirt domains. However, it cooperates with libosinfo database to guess +the correct combination of attributes (e.g. disk driver, NIC model). + +The B<virtxml> does not feed libvirt with generated XML though. For now, +it's a proof of concept. + +=head1 OPTIONS + +The basic structure of arguments passed to B<virtxml> is: + + virtxml [-c URI] [OPTION] [OPTION] ... + +However, arguments have no pre-defined order so users can type them +in any order they like. + +=head2 General Options + +=over 2 + +=item -c URI, --connect=URI + +The libvirt connection URI which is used for querying capabilities of the +host. + +=item --list-os + +List IDs of operating systems known to libosinfo + +=item --list-platform + +List IDs of platforms known to libosinfo + +=item -o OS, --os=OS + +Specify operating system that will be ran on the domain. I<OS> is an ID +which can be obtained via B<--list-os>. + +=item -p PLATFORM, --platform=PLATFORM + +Specify platform (hypervisor) under which will the domain run. I<PLATFORM> +is and ID which can be obtained via I<--list-platform>. + +=item -a ARCH, --architecture=ARCH + +Set domain's architecture + +=item -d PATH[,FORMAT] --disk=PATH[,FORMAT] + +Add I<PATH> as a disk to the domain. To specify its format (e.g. raw, +qcow2, phy) use I<FORMAT>. + +=item -i NETWORK[,ARG=VAL] + +Add an interface of type network with I<NETWORK> source. Moreover, some +other configuration knobs can be set (possible I<ARG>s): I<mac>, +I<link>={up|down} + +=item -r RESOURCE, --resources=RESOURCES + +Set I<minimal> or I<recommended> resources on the domain XML. By default, +the I<recommended> is used. + +=back + +Usually, both B<--os> and B<--platform> are required as they are needed to +make the right decision on driver, model, ... when adding a new device. +However, when adding a disk which is installation medium (e.g. a CD-ROM or +DVD), B<virtxml> tries to guess the OS. Something similar is done with +platform. Usually, the platform is guessed from connection URI. + +=head1 EXAMPLES + +Domain with Fedora 17 from locally stored ISO and one NIC with mac +00:11:22:33:44:55 and link set down: + + # virtxml -d Fedora-17-x86_64-Live-KDE.iso \ + -i default,mac=00:11:22:33:44:55,link=down + +To add multiple devices just use appropriate argument multiple times: + + # virtxml -d /tmp/Fedora-17-x86_64-Live-KDE.iso,raw \ + -d /var/lib/libvirt/images/f17.img,qcow2 \ + -i default,mac=00:11:22:33:44:55,link=down \ + -i blue_network \ + -r minimal + +=head1 AUTHORS + +Written by Michal Privoznik, Daniel P. Berrange and team of other +contributors. See the AUTHORS file in the source distribution for the +complete list of credits. + +=head1 BUGS + +Report any bugs discovered to the libvirt community via the mailing +list C<http://libvirt.org/contact.html> or bug tracker C<http://libvirt.org/bugs.html>. +Alternatively report bugs to your software distributor / vendor. + +=head1 COPYRIGHT + +Copyright (C) 2012 Red Hat, Inc. and various contributors. +This is free software. You may redistribute copies of it under the terms of +the GNU General Public License C<http://www.gnu.org/licenses/gpl.html>. There +is NO WARRANTY, to the extent permitted by law. + +=head1 SEE ALSO + +C<virsh(1)>, C<virt-clone(1)>, C<virt-manager(1)>, the project website C<http://virt-manager.org> + +=cut diff --git a/libvirt-designer.spec.in b/libvirt-designer.spec.in index 1d5f4b6..ede7185 100644 --- a/libvirt-designer.spec.in +++ b/libvirt-designer.spec.in @@ -78,6 +78,7 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %{_bindir}/virtxml +%{_mandir}/man1/virtxml.1* %files libs %defattr(-,root,root,-) -- 1.7.8.6 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list