# HG changeset patch
# User Jay Gagnon <grendel(a)linux.vnet.ibm.com>
# Date 1209666871 14400
# Node ID 9616af4ad2341ecb47dc0b139017636d14e0e86a
# Parent bd075f76943a0facc8aa69d7788f3d6a1a2f8d8c
Update web content to match
libvirt.org
Signed-off-by: Jay Gagnon <grendel(a)linux.vnet.ibm.com>
diff -r bd075f76943a -r 9616af4ad234 doc/Makefile.am
--- a/doc/Makefile.am Thu Apr 24 10:25:48 2008 -0400
+++ b/doc/Makefile.am Thu May 01 14:34:31 2008 -0400
@@ -1,23 +1,26 @@ XSLTPROC = /usr/bin/xsltproc
XSLTPROC = /usr/bin/xsltproc
+XMLLINT = /usr/bin/xmllint
-WEB_PAGES = index.html \
- architecture.html \
- downloads.html \
- intro.html \
- news.html \
- patches.html \
- platforms.html \
- schema.html
+dot_html_in = $(wildcard *.html.in)
+dot_html = $(dot_html_in:%.html.in=%.html)
-EXTRA_DIST = site.xsl libvirt-cim.html $(WEB_PAGES)
-
-$(WEB_PAGES): libvirt-cim.html site.xsl
- -@(if [ -x $(XSLTPROC) ]; then \
- $(XSLTPROC) --nonet --html $(top_srcdir)/doc/site.xsl
$(top_srcdir)/doc/libvirt-cim.html > index.html; \
- fi);
+EXTRA_DIST = site.xsl $(dot_html) $(dot_html_in)
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)
@INSTALL@ -m 0644 $(srcdir)/*.html $(DESTDIR)$(HTML_DIR)
-all: $(WEB_PAGES)
+all: $(dot_html)
+
+%.html.tmp: %.html.in site.xsl page.xsl sitemap.html.in
+ @(if [ -x $(XSLTPROC) ] ; then \
+ echo "Generating $@"; \
+ name=`echo $@ | sed -e 's/.tmp//'`; \
+ echo "name: $$name"; \
+ $(XSLTPROC) --stringparam pagename $$name --nonet --html $(top_srcdir)/doc/site.xsl
$< > $@ || (rm $@ && exit 1) ; fi )
+
+
+%.html: %.html.tmp
+ @(if [ -x $(XMLLINT) ] ; then \
+ echo "Validating $@" ; \
+ $(XMLLINT) --nonet --format --valid $< > $@ || : ; fi );
diff -r bd075f76943a -r 9616af4ad234 doc/architecture.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/architecture.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,30 @@
+<html>
+ <body>
+ <h1>Architecture</h1>
+
+ <p>
+ The libvirt-cim provider consists of two major parts:
+ </p>
+ <ul>
+ <li>
+ The provider classes themselves (<tt>src/</tt>)
+ </li>
+ <li>
+ A helper library of common components (<tt>libxkutil/</tt>)
+ </li>
+ </ul>
+ <p>
+ The provider classes implement the actual CIM class model. Some of
+ the provider libraries implement one CIM class and one providier.
+ However, many of them perform more than one task. For example,
+ the <tt>Virt_Device</tt> and <tt>Virt_DevicePool</tt>
providers
+ implement the device and device pool classes for each of the major
+ device types: Memory, Processor, Network, and Disk.
+ </p>
+ <p>
+ The helper library contains common routines that almost all of the
+ providers use, such as libvirt connection type detection and device
+ and system XML parsing.
+ </p>
+ </body>
+</html>
diff -r bd075f76943a -r 9616af4ad234 doc/downloads.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/downloads.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,27 @@
+<html>
+ <body>
+ <h1>Downloads</h1>
+
+ <p>
+ Official releases can be found on the
libvirt.org
+ <a
href="ftp://libvirt.org/libvirt-cim">FTP</a> server.
Alternatively,
+ you can grab a
+ <a
href="http://libvirt.org/hg/libvirt-cim/archive/tip.tar.gz">...
or
+ <a
href="http://libvirt.org/hg/libvirt-cim/archive/tip.zip">zip... file
+ snapshot of the development repository. These snapshots will have the
+ latest features (and bugs).
+ </p>
+ <p>
+ The libvirt-cim development tree can be found in the
+ <a
href="http://libvirt.org/hg">libvirt.org/hg</a>
repository.
+ </p>
+ <p>
+ To get a copy of the development tree, use
+ <a
href="http://www.selenic.com/mercurial/wiki/">mercurial</... clone
+ feature:
+ </p>
+ <pre>
+ $ hg clone
http://libvirt.org/hg/libvirt-cim
+ </pre>
+ </body>
+</html>
diff -r bd075f76943a -r 9616af4ad234 doc/generic.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/generic.css Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,75 @@
+
+body {
+ margin: 0em;
+ padding: 0px;
+ color: rgb(0,0,0);
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 80%;
+// font-size: 83%;
+}
+
+p, ul, ol, dl {
+ padding: 0px;
+ margin: 0px;
+}
+
+ol,ul {
+ margin-left: 3em;
+}
+
+ol,ul,dl,p {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+p:first-line {
+ margin-right: 1em;
+}
+
+div.body p:first-letter {
+ font-size: 1.2em;
+ font-weight: bold;
+}
+
+h1,h2,h3,h4,h5,h6 {
+ font-weight: bold;
+ margin: 0px;
+ padding: 0px;
+ margin-top: 0.5em;
+}
+
+div.footer {
+ margin-top: 1em;
+}
+
+h1 {
+ font-size: 2em;
+}
+h2 {
+ font-size: 1.6em;
+}
+h3 {
+ font-size: 1.4em;
+}
+h4 {
+ font-size: 1.2em;
+}
+h5 {
+ font-size: 1em;
+}
+h6 {
+ font-size: 0.8em;
+}
+
+dl dt {
+ margin-left: 1em;
+ margin-right: 2em;
+ font-weight: bold;
+ font-size: larger;
+}
+
+dl dd {
+ margin-left: 2em;
+ margin-right: 2em;
+ margin-bottom: 0.5em;
+}
diff -r bd075f76943a -r 9616af4ad234 doc/index.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/index.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,25 @@
+<html>
+ <body>
+ <h1>What is <strong>libvirt-cim</strong>?</h1>
+ <p>
+ Libvirt-CIM is a CIM provider for managing linux virtualization platforms
+ using libvirt. It is written in C and should work in any CIMOM that
+ supports CMPI 2.0 providers. The intent is to implement the SVPC
+ virtualization class model currently available in the DMTF Experimental
+ 2.16 schema.
+ </p>
+ <p>
+ Libvirt-CIM is a CIM provider for managing linux virtualization platforms
+ using libvirt. It is written in C and should work in any CIMOM that
+ supports CMPI 2.0 providers. The intent is to implement the SVPC
+ virtualization class model currently available in the DMTF Experimental 2.
+ 16 schema.
+ </p>
+ <p>
+ The providers are currently under heavy development. Focus is on Xen
+ support right now, which means some of the providers have some
"shortcuts"
+ hard-coded to Xen right now. The long-term goal is to support all of the
+ platforms that libvirt supports with minimal differences.
+ </p>
+ </body>
+</html>
diff -r bd075f76943a -r 9616af4ad234 doc/libvirt.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/libvirt.css Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,343 @@
+
+
+h1 {
+ font-weight: normal;
+ color: #3c857c;
+}
+h1 strong {
+ font-weight: bold;
+}
+
+h2, h3, h4, h5, h6 {
+ color: #3c857c;
+}
+
+#header {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ margin: 0px;
+ height: 104px;
+ width: 100%;
+ background: url(libvirt-header-bg.png);
+ border: 0px;
+}
+
+#body {
+ position: relative;
+ border: 0px;
+ padding-top: 104px;
+ left: 0px;
+ margin: 0px;
+ padding-left: 250px;
+}
+
+#content {
+ float: right;
+ padding: 0px;
+ width: 100%;
+ padding-bottom: 1em;
+}
+
+#menu {
+ border: 0px;
+ margin-left: -250px;
+ position: relative;
+ margin-top: 0px;
+ left: 0px;
+ width: 220px;
+ margin-bottom: 1em;
+}
+
+#menu ul {
+ margin: 0px;
+ padding: 0px;
+ margin-left: 40px;
+}
+
+#menu li ul {
+ margin-left: 0px;
+}
+
+#menu ul li {
+ list-style: none;
+ color: black;
+ padding: 0px;
+ font-weight: bold;
+ font-size: 1.2em;
+}
+
+#menu li ul li {
+ font-size: 1em;
+}
+
+#menu ul li a, #menu ul li span {
+ text-decoration: inherit;
+ color: inherit;
+ display: block;
+ padding: 6px;
+ margin: 2px;
+}
+
+#menu ul li .active {
+ background: #a4c6c2;
+}
+
+#menu ul.l0 li .inactive {
+ background: #c5dbd8;
+}
+
+
+#menu ul.l1 li .inactive,
+#menu ul.l2 li .inactive {
+ background: #dfebea;
+ border-left: 8px solid #dfebea;
+}
+
+#menu ul.l1 li .inactive,
+#menu ul.l1 li .active {
+ padding-left: 1em;
+}
+
+#menu ul.l1 li .inactive {
+ border-left: 6px solid #dfebea;
+}
+#menu ul.l1 li .active {
+ border-left: 6px solid #a5c6c2;
+}
+
+#menu ul.l2 li .inactive,
+#menu ul.l2 li .active {
+ padding-left: 2em;
+ border-left: 8px solid #c5dbd8;
+}
+
+
+#headerLogo {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ height: 104px;
+ width: 400px;
+ background: url(libvirt-header-logo.png);
+}
+#headerSearch {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ padding: 2em;
+ z-index: 10;
+}
+
+#headerSearch input {
+ border: 1px solid #999999;
+ color: #999999;
+ background: white;
+ padding: 3px;
+ font-size: 1em;
+}
+
+#headerSearch #submit {
+ border: 1px solid #999999;
+ background: #eeeeee;
+ color: black;
+ padding: 3px;
+ font-size: 1em;
+}
+
+
+#sitemap ul li {
+ list-style: none;
+}
+
+#sitemap ul {
+ margin: 1em;
+ padding: 0em;
+}
+
+#sitemap ul ul {
+ padding-left: 2em;
+}
+
+#sitemap li {
+ margin: 0.5em;
+}
+
+#sitemap a {
+ color: inherit;
+ text-decoration: underline;
+ font-weight: bold;
+}
+
+pre {
+ border: 1px solid #999999;
+ background: #eeeeee;
+ color: black;
+ padding: 1em;
+}
+
+a {
+ color: #566866;
+}
+
+
+div.api {
+ border: 1px solid #999999;
+ background: #eeeeee;
+ color: black;
+}
+
+div.api pre {
+ margin: 0px;
+ border: 0px;
+ background: inherit;
+}
+
+div.api table {
+ margin: 0px;
+ padding-left: 2em;
+ font-family: fixed;
+ whitespace: pre;
+}
+
+
+h1 a, h2 a, h3 a, h4 a, h5 a {
+ color: inherit;
+ text-decoration: inherit;
+}
+
+#changelog .author {
+ color: #3c857c;
+ font-weight: bold;
+}
+
+p.image {
+ text-align: center;
+}
+
+.top_table {
+ border-collapse: collapse;
+}
+
+.top_table th {
+ background: #a4c6c2;
+}
+
+.top_table th a {
+ color: inherit;
+ text-decoration: inherit;
+}
+
+.top_table td, .top_table th {
+ border: 1px solid #999999;
+}
+
+.top_table tr:hover td, .top_table col:hover td {
+ background: #eeeeee;
+}
+
+.top_table tr td:hover {
+ background: #c5dbd8;
+}
+
+#footer {
+ clear: both;
+ position: relative;
+ margin: 0px;
+ padding: 0px;
+ border: 0px;
+ width: 100%;
+ background: #757575 url(footer_pattern.png) repeat-x;
+ height: 180px;
+}
+
+#footer p {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ margin: 0px;
+ border: 0px solid red;
+ width: 220px;
+ text-align: center;
+}
+
+#footer p a img {
+ border: 0px;
+}
+
+#projects {
+ margin: 0px;
+ border: 0px;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 100%;
+}
+
+
+#projects dl {
+ margin: 0px;
+ border: 0px solid white;
+ background: url(footer_corner.png) no-repeat;
+ height: 180px;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+}
+
+
+#projects #p1 {
+ margin-left: 25%;
+ width: 75%;
+}
+
+#projects #p2 {
+ margin-left: 50%;
+ width: 50%;
+}
+
+#projects #p3 {
+ margin-left: 75%;
+ width: 25%;
+}
+
+#projects dt, #projects dd {
+ padding: 0px;
+ margin: 0px;
+}
+
+#projects #p1 dt, #projects #p1 dd {
+ width: 33%;
+}
+#projects #p2 dt, #projects #p2 dd {
+ width: 50%;
+}
+#projects #p3 dt, #projects #p3 dd {
+ width: 99%;
+}
+
+#projects {
+}
+
+#projects span {
+ font-size: 0.8em;
+ display: block;
+ padding-left: 1em;
+ padding-top: 0.5em;
+}
+
+#projects a {
+ font-size: 0.8em;
+ display: block;
+ padding-left: 0.8em;
+ padding-top: 1em;
+}
+
+#projects a {
+ color: white;
+ text-decoration: inherit;
+}
+
+#projects span {
+ color: #ccc;
+}
diff -r bd075f76943a -r 9616af4ad234 doc/main.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/main.css Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,2 @@
+@import url(generic.css);
+@import url(libvirt.css);
diff -r bd075f76943a -r 9616af4ad234 doc/page.xsl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/page.xsl Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,127 @@
+<?xml version="1.0"?>
+<xsl:stylesheet
+
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+
xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="xsl exsl"
+ version="1.0">
+
+ <!-- The sitemap.html.in page contains the master navigation structure -->
+ <xsl:variable name="sitemap"
select="document('sitemap.html.in')/html/body/div[@id='sitemap']"/>
+
+ <!-- This processes the sitemap to form a context sensitive
+ navigation menu for the current page -->
+ <xsl:template match="ul" mode="menu">
+ <xsl:param name="pagename"/>
+ <xsl:param name="level"/>
+ <ul class="{concat('l', $level)}">
+ <xsl:for-each select="li">
+ <li>
+ <!-- A menu is active if there is an 'a' tag with
+ a href matching this pagename at this level
+ or a child menu -->
+ <xsl:variable name="class">
+ <xsl:choose>
+ <xsl:when test="count(.//a[@href = $pagename]) > 0">
+ <xsl:text>active</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>inactive</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- A menu should use a 'span' instead of 'a' if
+ the immediate 'a' tag has href matching the
+ current pagename -->
+ <xsl:choose>
+ <xsl:when test="$pagename = a/@href">
+ <span class="{$class}"><xsl:value-of
select="a"/></span>
+ </xsl:when>
+ <xsl:when test="a/@href =
'http://wiki.libvirt.org'">
+ <a title="{./span}" class="{$class}"
href="{a/@href}"><xsl:value-of select="a"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a title="{./span}" class="{$class}"
href="{concat($href_base, a/@href)}"><xsl:value-of
select="a"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <!-- A sub-menu should only be expanded it contains
+ an 'a' tag with href matching this pagename -->
+ <xsl:if test="count(.//a[@href = $pagename]) > 0">
+ <xsl:apply-templates select="ul" mode="menu">
+ <xsl:with-param name="pagename"
select="$pagename"/>
+ <xsl:with-param name="level" select="$level +
1"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:template>
+
+ <!-- This is the master page structure -->
+ <xsl:template match="/" mode="page">
+ <xsl:param name="pagename"/>
+ <html>
+ <xsl:comment>
+ This file is autogenerated from <xsl:value-of
select="$pagename"/>.in
+ Do not edit this file. Changes will be lost.
+ </xsl:comment>
+ <head>
+ <link rel="stylesheet" type="text/css"
href="{$href_base}main.css"/>
+ <link rel="SHORTCUT ICON"
href="{$href_base}32favicon.png"/>
+ <title>libvirt: <xsl:value-of
select="html/body/h1"/></title>
+ <meta name="description" content="libvirt, virtualization,
virtualization API"/>
+ </head>
+ <body>
+ <div id="header">
+ <div id="headerLogo"/>
+ <div id="headerSearch">
+ <form action="{$href_base}search.php"
enctype="application/x-www-form-urlencoded" method="get">
+ <input id="query" name="query" type="text"
size="12" value=""/>
+ <input id="submit" name="submit"
type="submit" value="Search"/>
+ </form>
+ </div>
+ </div>
+ <div id="body">
+ <div id="content">
+ <xsl:copy-of select="html/body/*"/>
+ </div>
+ <div id="menu">
+ <xsl:apply-templates select="exsl:node-set($sitemap)/ul"
mode="menu">
+ <xsl:with-param name="pagename"
select="$pagename"/>
+ <xsl:with-param name="level" select="0"/>
+ </xsl:apply-templates>
+ </div>
+ </div>
+ <div id="footer">
+ <div id="projects">
+ <dl id="p1">
+ <dt><a
href="http://augeas.net/">Augeas</a></dt>
+ <dd><span>A configuration editing tool and
API</span></dd>
+ <dt><a
href="http://libvirt.org/">libvirt</a></dt>
+ <dd><span>The open source virtualization
API</span></dd>
+ </dl>
+ <dl id="p2">
+ <dt><a
href="http://cobbler.et.redhat.com/">Cobbler</a></d...
+ <dd><span>OS provisioning and profile
management</span></dd>
+ <dt><a
href="http://ovirt.org/">oVirt</a></dt>
+ <dd><span>Virtualization management across the data
center</span></dd>
+ </dl>
+ <dl id="p3">
+ <dt><a
href="http://freeipa.org/">FreeIPA</a></dt>
+ <dd><span>Identity, policy and audit
management</span></dd>
+ <dt><a
href="http://virt-manager.org/">Virtual
Machine Manager</a></dt>
+ <dd><span>Virtualization management from the
desktop</span></dd>
+ </dl>
+ </div>
+ <!--
+ <p id="et">
+ <a
href="http://et.redhat.com/"><img
src="{$href_base}et_logo.png" alt="A Red Hat Emerging Technology
Project"/></a>
+ </p>
+ -->
+ </div>
+ </body>
+ </html>
+ </xsl:template>
+
+</xsl:stylesheet>
diff -r bd075f76943a -r 9616af4ad234 doc/patches.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/patches.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,195 @@
+<html>
+ <body>
+ <h1>Patches</h1>
+
+ <p>
+ To submit patches to libvirt-cim, you must follow the DCO process,
+ outlined below:
+ </p>
+ <h3>Developer's Certificate of Origin 1.1</h3>
+ <p>
+ By making a contribution to this project, I certify that:
+ </p>
+ <ol>
+ <li>
+ <p>
+ The contribution was created in whole or in part by me and I have the
+ right to submit it under the open source license indicated in the
+ file; or
+ </p>
+ </li>
+ <li>
+ <p>
+ The contribution is based upon previous work that, to the best of my
+ knowledge, is covered under an appropriate open source license and I
+ have the right under that license to submit that work with
+ modifications, whether created in whole or in part by me, under the
+ same open source license (unless I am permitted to submit under a
+ different license), as indicated in the file; or
+ </p>
+ </li>
+ <li>
+ <p>
+ The contribution was provided directly to me by some other person who
+ certified (1), (2) or (3) and I have not modified it.
+ </p>
+ </li>
+ <li>
+ <p>
+ I understand and agree that this project and the contribution are
+ public and that a record of the contribution (including all personal
+ information I submit with it, including my sign-off) is maintained
+ indefinitely and may be redistributed consistent with this project or
+ the open source license(s) involved.
+ </p>
+ </li>
+ </ol>
+ <p>
+ then you just add a line saying
+ </p>
+ <p>
+ Signed-off-by: Random J Developer &lt;random(a)developer.example.org&gt;
+ </p>
+ <p>
+ using your real name (sorry, no pseudonyms or anonymous contributions.)
+ </p>
+ <h3>Guidelines for Submitting Patches.</h3><p>
+ Patches should be submitted using Mercurial's patchbomb extension, and we
+ recommend using the queues extension as well. On top of that, we have some
+ guidelines you should follow when submitting patches. This makes reviewing
+ patches easier, which in turns improves the chances of your patch being
+ accepted in a timely fashion.
+ </p>
+ <p>
+ For help on how to use the patchbomb extension, see
+ <a
href="http://hgbook.red-bean.com/hgbookch14.html">Section
14.4</a> of
+ <i>Distributed revision control with Mercurial</i>.
+ </p>
+ <p>
+ For help on the queues extension, see
+ <a
href="http://hgbook.red-bean.com/hgbookch12.html">Chapter
12</a>.
+ </p>
+ <h4>Single Patches:</h4>
+ <ol>
+ <li>
+ <p>
+ When you add a patch to the queue you have an idea of where
+ you're going with it, and the commit message should reflect
+ that. Be specific. Avoid just saying something like,
+ "Various fixes to AllocationCapabilities." Add a list of
+ what was actually fixed, like, "Add EnumInstanceNames
+ support," and, "Eliminate duplicate instances."
+ </p>
+ </li>
+ <li>
+ <p>
+ The first line of your commit message will be the subject of
+ the patch email when you send it out, so write it like a
+ subject. Keep it short and to the point, then start a new
+ line and feel free to be as verbose as you need to be. The
+ entire commit message will be included in the patch.
+ </p>
+ </li>
+ <li>
+ <p>
+ Stay on task with a patch. If you notice other problems
+ while you are working on a patch, and they are not most
+ definitely specific to your patch, they should be another
+ patch. The same goes for nitpicking. While it might be
+ only a line or two here and there that is off track, this is
+ actually one of the easiest ways to make a patch difficult
+ to review. All the trivial changes hide what is really
+ going on. Make the unrelated changes a new patch or don't
+ make them at all.
+ </p>
+ </li>
+ <li>
+ <p>
+ If your patch addresses a strange issue or a rare edge case
+ that the reviewers are unlikely to be familiar with, make
+ sure the commit message include some example testcase with
+ results, so the reviewers can verify your patch more
+ quickly.
+ </p>
+ </li>
+ <li>
+ <p>
+ Before you email, export. If you have a patch called
+ "alloc_fixes", which would be emailed with "hg email
+ alloc_fixes", you should first run "hg export alloc_fixes".
+ This lets you review your patch. Does it have any typos in
+ the comments? Did you accidentally include an irrelevant
+ change? Is your commit message still accurate and useful?
+ This is the single biggest step in ensuring you have a good
+ patch.
+ </p>
+ </li>
+ <li>
+ <p>
+ If your patch needs to be reworked and resent, prepend a
+ "version number" to the first line of the commit message.
+ For example, "Add EnumInstance to RASD," becomes "#2 Add
+ EnumInstance to RASD." This helps mail readers thread
+ discussions correctly and helps maintainers know they are
+ applying the right version of your patch. At the end of the
+ commit message, explain what is different from one version
+ to the next. Nobody likes having to diff a diff.
+ </p>
+ </li>
+ <li>
+ <p>
+ If your patch depends on a patch that exists on the mailing
+ list but not in the tree, it is okay to send your patch to
+ the list as long as your commit message mentions the
+ dependency. It is also a good idea to import the patch into
+ your tree before you make your patch. For example, a new
+ patch called "cu_statusf API change" is on the list, and
+ your patch needs the new API. Save the email (no need to
+ trim headers) as api_change.eml, then do "hg qimport
+ api_change.eml" and "hg qpush" so that the patch is applied
+ to your tree. Now write your patch on top of it. You
+ should still indicate the dependency in your commit message.
+ </p></li>
+ </ol><h4>Patchsets:</h4><ol><li>
+ <p>
+ When you send a group of patches, Mercurial's email
+ extension will create a "header" email. Make the subject
+ and body of that email meaningful, so we know how the
+ patches relate. It's easy to say, "Each patch has a commit
+ message, it's obvious how they work together," but the rest
+ of the list usually won't agree with that. If the commit
+ messages for each patch are good, you shouldn't need more
+ than a sentence or two to tie them all together, but you do
+ need it.
+ </p>
+ </li>
+ <li>
+ <p>
+ If any of your patches are rejected and you rework them,
+ resend the entire set. This prevents things like, "So use
+ patch 1 of 4 from the set I sent yesterday, 2 and 3 of 4
+ from the patch I sent an hour later, and patch 4 of 4 from
+ today."
+ </p>
+ </li>
+ <li>
+ <p>
+ If you resend a patchset, apply part (6) of the Single
+ Patches guidelines to your "Patch [0 of 3]" header email,
+ for all the same reasons.
+ </p>
+ </li>
+ </ol>
+ <p>
+ Questions/Comments on the Guidelines should be directed to:
+ </p>
+ <p>
+ Jay Gagnon <
+ <a href="mailto:grendel@linux.vnet.ibm.com">
+ grendel(a)linux.vnet.ibm.com
+ </a>>
+ <br />
+ Patch Compliance Officer
+ </p>
+ </body>
+</html>
diff -r bd075f76943a -r 9616af4ad234 doc/platforms.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/platforms.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,47 @@
+<html>
+ <body>
+ <h1>Platform Support</h1>
+ <p>
+ Currently, libvirt-cim is targeting Xen as its primary support
+ platform because is has the largest installed user base. The
+ long-term plan is to support many others (hopefully any that libvirt
+ supports). This includes KVM and containers.
+ </p>
+ <p>
+ The code base currently has many Xen-specific "shortcuts" that need
+ to be resolved and generalized in order to support other platforms.
+ A short list of these may include:
+ </p>
+ <ul>
+ <li>
+ The XML generation and parsing code and the related device
+ modeling code.
+ </li>
+ <li>
+ The libvirt connection logic. Right now, (in most places) we
+ detect the current hypervisor in use and connect to libvirt
+ appropriately. This may or may not be the correct behavior in a
+ situation where you could need to support containers and QEMU
+ virtual machines.
+ </li>
+ <li>
+ Some lingering hard-coded "Xen_Foo" class names.
+ </li>
+ </ul>
+ <p>
+ Further, supporting new platforms have some registration and
+ modeling implications:
+ </p>
+ <ul>
+ <li>
+ Additions to the MOF and registration files for "branded"
+ classes (Xen_Foo, KVM_Foo, etc)
+ </li>
+ <li>
+ Modifications to some of the association providers that register
+ separate CMPI provider structures for each class type they handle
+ (to avoid duplicate results in the general case)
+ </li>
+ </ul>
+ </body>
+</html>
diff -r bd075f76943a -r 9616af4ad234 doc/releases.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/releases.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,25 @@
+<html>
+ <body>
+ <h1>Releases</h1>
+
+ <p>
+ <strong>livirt-cim-0.1: Jan 14 2008</strong>
+ <ul>
+ <li>
+ Initial Release
+ </li>
+ <li>
+ Focused on Xen paravirtual guest support
+ </li>
+ </ul>
+ </p>
+ <p>
+ <strong>libcmpiutil-0.1: Nov 30 2007</strong>
+ <ul>
+ <li>
+ Initial Release
+ </li>
+ </ul>
+ </p>
+ </body>
+</html>
diff -r bd075f76943a -r 9616af4ad234 doc/schema.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/schema.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,82 @@
+<html>
+ <body>
+ <h1>Schema</h1>
+ <p>
+ The libvirt-cim provider depends on an installed
+ <a
href="http://www.dmtf.org/standards/cim/cim_schema_v216/">DMTF
+ CIM v2.16</a> Experimental schema. The package can be obtained
+ <a
href="http://www.dmtf.org/standards/cim/cim_schema_v216/cimv216Exper...
+ here
+ </a>.
+ </p>
+
+ <h4>To install the schema in Pegasus:</h4>
+ <p>
+ <pre>
+ $ PEGASUS_REPO=/var/lib/Pegasus # adjust this as needed
+ $ mkdir cim216
+ $ cd cim216
+ $ unzip $PATH_TO_ZIPFILE
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt cimv216.mof
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt qualifiers.mof
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt qualifiers_optional.mof
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/interop cimv216-interop.mof
+ </pre>
+ </p>
+
+ <h4>To install the schema in SFCB:</h4>
+ <p>
+ <pre>
+ $ SFCB_CIM=/usr/local/share/sfcb/CIM # adjust this as needed
+ $ mkdir cim216
+ $ cd cim216
+ $ unzip $PATH_TO_ZIPFILE
+ $ mv cimv216.mof CIM_Schema.mof
+ $ sudo cp * $SFCB_CIM
+ $ sudo sfcbrepos
+ </pre>
+ </p>
+ <p>
+ <strong>Note:</strong> in both cases, the CIM v2.16 schema seems to
have a
+ few classes that don't register correctly. You may need to
+ disable installation of classes with something like the
+ following:
+ </p>
+ <p>
+ <pre>
+ --- CIM_Schema.mof 2007-10-15 00:15:44.000000000 -0700
+ +++ cimv216.mof 2007-10-22 10:11:19.000000000 -0700
+ @@ -507,3 +507,3 @@
+ #pragma include ("Policy/CIM_SharedSecretAuthentication.mof")
+ -#pragma include ("Security/CIM_SecurityIndication.mof")
+ +//#pragma include ("Security/CIM_SecurityIndication.mof")
+ #pragma include ("Support/PRS_Activity.mof")
+ @@ -728,4 +728,4 @@
+ #pragma include ("Policy/CIM_PolicyConditionInPolicyRule.mof")
+ -#pragma include ("Security/CIM_IPNetworkSecurityIndication.mof")
+ -#pragma include ("Security/CIM_IPPacketFilterIndication.mof")
+ +//#pragma include ("Security/CIM_IPNetworkSecurityIndication.mof")
+ +//#pragma include ("Security/CIM_IPPacketFilterIndication.mof")
+ #pragma include ("Support/PRS_ActivityContact.mof")
+ </pre>
+ </p>
+ <p>
+ <strong>cimv216-interop.mof</strong> is not part of the official DMTF
+ CIM v2.16 schema package. Please create with the following content:
+ </p>
+ <p>
+ <pre>
+ #pragma locale ("en_US")
+ #pragma include ("qualifiers.mof")
+ #pragma include ("qualifiers_optional.mof")
+ #pragma include ("Core/CIM_ManagedElement.mof")
+ #pragma include ("Interop/CIM_RegisteredProfile.mof")
+ #pragma include ("Interop/CIM_RegisteredSubProfile.mof")
+ #pragma include ("Core/CIM_Dependency.mof")
+ #pragma include ("Interop/CIM_ElementConformsToProfile.mof")
+ #pragma include ("Interop/CIM_ReferencedProfile.mof")
+ #pragma include ("Interop/CIM_SubProfileRequiresProfile.mof")
+ </pre>
+ </p>
+ </body>
+</html>
diff -r bd075f76943a -r 9616af4ad234 doc/site.xsl
--- a/doc/site.xsl Thu Apr 24 10:25:48 2008 -0400
+++ b/doc/site.xsl Thu May 01 14:34:31 2008 -0400
@@ -1,258 +1,25 @@
<?xml version="1.0"?>
-<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
- <xsl:output method="xml" encoding="ISO-8859-1"
indent="yes"
- doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
-
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional....
+<xsl:stylesheet
+
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+
xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="xsl exsl"
+ version="1.0">
+
+ <xsl:import href="page.xsl"/>
+
+ <xsl:output
+ method="xml"
+ encoding="ISO-8859-1"
+ indent="yes"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional....
<xsl:variable name="href_base" select="''"/>
- <xsl:variable name="menu_name">Main Menu</xsl:variable>
-<!--
- - returns the filename associated to an ID in the original file
- -->
- <xsl:template name="filename">
- <xsl:param name="name" select="string(@href)"/>
- <xsl:choose>
- <xsl:when test="$name = '#Introducti'">
- <xsl:text>intro.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#Documentat'">
- <xsl:text>docs.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#Reporting'">
- <xsl:text>development.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#help'">
- <xsl:text>help.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#Help'">
- <xsl:text>help.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#Errors'">
- <xsl:text>errors.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#Downloads'">
- <xsl:text>downloads.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#News'">
- <xsl:text>news.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#Contributi'">
- <xsl:text>development.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#architecture'">
- <xsl:text>architecture.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#FAQ'">
- <xsl:text>FAQ.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#Platforms'">
- <xsl:text>platforms.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#Schema'">
- <xsl:text>schema.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = '#Patches'">
- <xsl:text>patches.html</xsl:text>
- </xsl:when>
- <xsl:when test="$name = ''">
- <xsl:text>unknown.html</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$name"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-<!--
- - The global title
- -->
- <xsl:variable name="globaltitle"
select="string(/html/body/h1[1])"/>
-<!--
- the main menu box
- -->
- <xsl:template name="linkList">
- <div class="linkList2">
- <div class="llinks2">
- <h3 class="links2"><span>main menu</span></h3>
- <ul>
- <li><a
href="{$href_base}index.html">Home</a></li>
- <xsl:for-each select="/html/body/h2">
- <xsl:variable name="filename">
- <xsl:call-template name="filename">
- <xsl:with-param name="name" select="concat('#',
string(a[1]/@name))"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:if test="$filename != ''">
- <li>
- <xsl:element name="a">
- <xsl:attribute name="href">
- <xsl:value-of select="$filename"/>
- </xsl:attribute>
- <xsl:if test="$filename = 'docs.html'">
- <xsl:attribute
name="style">font-weight:bold</xsl:attribute>
- </xsl:if>
- <xsl:value-of select="."/>
- </xsl:element>
- </li>
- </xsl:if>
- </xsl:for-each>
- </ul>
- </div>
- <div class="llinks2">
- <h3 class="links2"><span>related
links</span></h3>
- <ul>
- <li> <a
href="https://www.redhat.com/mailman/listinfo/libvirt-cim/">...
list</a></li>
- <li> <a
href="http://libvirt.org/">libvirt</a></li>
- <li><a
href="http://xmlsoft.org/"> <img
src="http://libvirt.org/Libxml2-Logo-90x34.gif" alt="Made with Libxml2
Logo" /></a></li>
- </ul>
- <p class='credits'>Graphics and design by <a
href="mail:dfong@redhat.com">Diana Fong</a></p>
- </div>
- </div>
+ <xsl:template match="/">
+ <xsl:apply-templates select="." mode="page">
+ <xsl:with-param name="pagename" select="$pagename"/>
+ </xsl:apply-templates>
</xsl:template>
-<!--
- the page title
- -->
-
- <xsl:template name="titlebox">
- <xsl:param name="title"/>
- <h1 class="style1"><xsl:value-of
select="$title"/></h1>
- </xsl:template>
-
-<!--
- - Write the styles in the head
- -->
- <xsl:template name="style">
- <link rel="stylesheet" type="text/css"
href="http://libvirt.org/libvirt.css" />
- <link rel="SHORTCUT ICON" href="/32favicon.png" />
- </xsl:template>
-
-<!--
- - The top section
- -->
- <xsl:template name="top">
- <div id="top">
- <img src="{$href_base}libvirtHeader.png" alt="Libvirt the
virtualization API" />
- </div>
- </xsl:template>
-
-<!--
- - The top section for the main page
- -->
- <xsl:template name="topmain">
- <div id="topmain">
- <img src="{$href_base}libvirtLogo.png" alt="Libvirt the
virtualization API" />
- </div>
- </xsl:template>
-
-<!--
- - The bottom section
- -->
- <xsl:template name="bottom">
- <div id="bottom">
- <p class="p1"></p>
- </div>
- </xsl:template>
-
-<!--
- - Handling of nodes in the body after an H2
- - Open a new file and dump all the siblings up to the next H2
- -->
- <xsl:template name="subfile">
- <xsl:param name="header"
select="following-sibling::h2[1]"/>
- <xsl:variable name="filename">
- <xsl:call-template name="filename">
- <xsl:with-param name="name" select="concat('#',
string($header/a[1]/@name))"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="title">
- <xsl:value-of select="$header"/>
- </xsl:variable>
- <xsl:document href="{$filename}" method="xml"
encoding="ISO-8859-1"
- doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
-
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional....
- <html>
- <head>
- <xsl:call-template name="style"/>
- <xsl:element name="title">
- <xsl:value-of select="$title"/>
- </xsl:element>
- </head>
- <body>
- <div id="container">
- <div id="intro">
- <div id="adjustments"/>
- <div id="pageHeader"/>
- <div id="content2">
- <xsl:call-template name="titlebox">
- <xsl:with-param name="title" select="$title"/>
- </xsl:call-template>
- <xsl:apply-templates mode="subfile"
select="$header/following-sibling::*[preceding-sibling::h2[1] = $header and name() !=
'h2' ]"/>
- </div>
- </div>
- <xsl:call-template name="linkList"/>
- <xsl:call-template name="bottom"/>
- </div>
- </body>
- </html>
- </xsl:document>
- </xsl:template>
-
- <xsl:template mode="subcontent" match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates mode="subcontent"
select="@*|node()"/>
- </xsl:copy>
- </xsl:template>
-
- <xsl:template mode="content" match="@*|node()">
- <xsl:if test="name() != 'h1' and name() != 'h2'">
- <xsl:copy>
- <xsl:apply-templates mode="subcontent"
select="@*|node()"/>
- </xsl:copy>
- </xsl:if>
- </xsl:template>
-
- <xsl:template mode="subfile" match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates mode="content" select="@*|node()"/>
- </xsl:copy>
- </xsl:template>
-
-<!--
- - Handling of the initial body and head HTML document
- -->
- <xsl:template match="body">
- <xsl:variable name="firsth2" select="./h2[1]"/>
- <body>
- <div id="container">
- <div id="intro">
- <div id="adjustments">
- <p class="p1"></p>
- </div>
- <div id="content">
- <xsl:apply-templates mode="content"
select="($firsth2/preceding-sibling::*)"/>
- <xsl:for-each select="./h2">
- <xsl:call-template name="subfile">
- <xsl:with-param name="header" select="."/>
- </xsl:call-template>
- </xsl:for-each>
- </div>
- </div>
- <xsl:call-template name="linkList"/>
- <xsl:call-template name="bottom"/>
- </div>
- </body>
- </xsl:template>
- <xsl:template match="head">
- </xsl:template>
- <xsl:template match="html">
- <xsl:message>Generating the Web pages</xsl:message>
- <html>
- <head>
- <xsl:call-template name="style"/>
- <title>the virtualization API</title>
- </head>
- <xsl:apply-templates/>
- </html>
- </xsl:template>
</xsl:stylesheet>
diff -r bd075f76943a -r 9616af4ad234 doc/sitemap.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/sitemap.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,50 @@
+<html>
+ <body>
+ <h1>Sitemap</h1>
+
+ <div id="sitemap">
+ <ul>
+ <li>
+ <a href="index.html">CIM</a>
+ <span>The libvirt-cim CIM providers</span>
+ <ul>
+ <li>
+ <a href="releases.html">Releases</a>
+ <span>Official releases</span>
+ </li>
+ <li>
+ <a href="downloads.html">Downloads</a>
+ <span>Development code</span>
+ </li>
+ <li>
+ <a href="patches.html">Patches</a>
+ <span>How to contribute</span>
+ </li>
+ <li>
+ <a href="schema.html">Schema</a>
+ <span>Required CIM Schema for the providers</span>
+ </li>
+ <li>
+ <a href="platforms.html">Platform Support</a>
+ <span>Target platforms</span>
+ </li>
+ <li>
+ <a href="architecture.html">Architecture</a>
+ <span>Basic code structure</span>
+ </li>
+ <li>
+ <a
href="https://www.redhat.com/mailman/listinfo/libvirt-cim/">
+ Mailing List
+ </a>
+ <span>Report bugs, discuss development</span>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="sitemap.html">Sitemap</a>
+ <span>Overview of all content on the website</span>
+ </li>
+ </ul>
+ </div>
+ </body>
+</html>