
# HG changeset patch # User Jay Gagnon <grendel@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@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">tarball</a> or + <a href="http://libvirt.org/hg/libvirt-cim/archive/tip.zip">zip</a> 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</a>'s 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></dt> + <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 <random@developer.example.org> + </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@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/cimv216Experimental-MOFs.zip"> + 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.dtd"/> +<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.dtd"/> <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/">Mailing 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.dtd"> - <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>